Анализ данных во временных рядах существенно отличается от стандартных подходов, в первую очередь из-за сложностей, связанных с временной зависимостью, с которыми сталкивается каждый специалист по данным.
А что, если с помощью подходящего промпта можно ускорить и усовершенствовать процесс анализа?
Большие языковые модели (LLM) уже радикально меняют подходы к анализу временных рядов. Если объединить их с грамотной инженерией промптов, это откроет доступ к методам, которые многие аналитики еще не пробовали.
Такие модели отлично справляются с выявлением закономерностей, обнаружением отклонений и прогнозированием.
Это руководство собирает проверенные стратегии, начиная от базовой подготовки данных и заканчивая сложной верификацией моделей. В итоге вы получите практические инструменты, которые дадут преимущество.
Все рекомендации основаны на научных исследованиях и примерах из практики, поэтому вы уйдете с реальными инструментами, а не только теорией.
Это первая статья из двухчастной серии, посвященной тому, как инженерия промптов усиливает анализ временных рядов:
- Часть 1: Промпты для ключевых стратегий в анализе временных рядов (текущая статья)
- Часть 2: Промпты для продвинутой разработки моделей
Все промпты из этой статьи собраны в конце в виде шпаргалки.
В статье:
- Основные стратегии инженерии промптов для временных рядов
- Промпты для предобработки и анализа временных рядов
- Обнаружение аномалий с помощью LLM
- Инженерия признаков для данных с временной зависимостью
- Шпаргалка по инженерии промптов!
1. Основные стратегии инженерии промптов для временных рядов
1.1 Промптинг на основе патчей для прогнозирования
Фреймворк Patch Instruct
Полезный прием заключается в разделении временного ряда на пересекающиеся "патчи" и передаче их в LLM через структурированные промпты. Этот метод, известный как PatchInstruct, демонстрирует высокую эффективность и сохраняет точность на прежнем уровне.
Пример реализации:
## System You are a time-series forecasting expert in meteorology and sequential modeling. Input: overlapping patches of size 3, reverse chronological (most recent first). ## User Patches: - Patch 1: [8.35, 8.36, 8.32] - Patch 2: [8.45, 8.35, 8.25] - Patch 3: [8.55, 8.45, 8.40] ... - Patch N: [7.85, 7.95, 8.05] ## Task 1. Forecast next 3 values. 2. In ≤40 words, explain recent trend. ## Constraints - Output: Markdown list, 2 decimals. - Ensure predictions align with observed trend. ## Example - Input: [5.0, 5.1, 5.2] → Output: [5.3, 5.4, 5.5]. ## Evaluation Hook Add: "Confidence: X/10. Assumptions: [...]". Почему это эффективно:
- LLM улавливает краткосрочные временные закономерности в данных.
- Требует меньше токенов по сравнению с передачей сырых данных (экономия затрат).
- Обеспечивает интерпретируемость, поскольку патчи можно восстановить позже.
1.2 Нулевой промптинг с контекстными инструкциями
Предположим, требуется быстрый базовый прогноз.
Нулевой промптинг с добавлением контекста подходит для этого. Достаточно предоставить модели четкое описание набора данных, частоты и горизонта прогнозирования, и она выявит закономерности без дополнительного обучения.
## System You are a time-series analysis expert specializing in [domain]. Your task is to identify patterns, trends, and seasonality to forecast accurately. ## User Analyze this time series: [x1, x2, ..., x96] - Dataset: [Weather/Traffic/Sales/etc.] - Frequency: [Daily/Hourly/etc.] - Features: [List features] - Horizon: [Number] periods ahead ## Task 1. Forecast [Number] periods ahead. 2. Note key seasonal or trend patterns. ## Constraints - Output: Markdown list of predictions (2 decimals). - Add ≤40-word explanation of drivers. ## Evaluation Hook End with: "Confidence: X/10. Assumptions: [...]". 1.3 Промптинг с дополнением соседними рядами
Иногда одного временного ряда недостаточно. Можно добавить "соседние" ряды, похожие по характеристикам, чтобы LLM обнаружила общие структуры и улучшила прогнозы.
## System You are a time-series analyst with access to 5 similar historical series. Use these neighbors to identify shared patterns and refine predictions. ## User Target series: [current time series data] Neighbors: - Series 1: [ ... ] - Series 2: [ ... ] ... ## Task 1. Predict the next [h] values of the target. 2. Explain in ≤40 words how neighbors influenced the forecast. ## Constraints - Output: Markdown list of [h] predictions (2 decimals). - Highlight any divergences from neighbors. ## Evaluation Hook End with: "Confidence: X/10. Assumptions: [...]". 2. Промпты для предобработки и анализа временных рядов
2.1 Тестирование стационарности и трансформации
Одним из начальных шагов для специалистов по данным перед моделированием временных рядов является проверка на стационарность.
Если ряд нестационарен, применяются трансформации, такие как дифференцирование, логарифмирование или Box-Cox.
Промпт для проверки стационарности и применения трансформаций
## System You are a time-series analyst. ## User Dataset: [N] observations - Time period: [specify] - Frequency: [specify] - Suspected trend: [linear / non-linear / seasonal] - Business context: [domain] ## Task 1. Explain how to test for stationarity using: - Augmented Dickey-Fuller - KPSS - Visual inspection 2. If non-stationary, suggest transformations: differencing, log, Box-Cox. 3. Provide Python code (statsmodels + pandas). ## Constraints - Keep explanation ≤120 words. - Code should be copy-paste ready. ## Evaluation Hook End with: "Confidence: X/10. Assumptions: [...]". 2.2 Анализ автокорреляции и лаговых признаков
Автокорреляция во временных рядах оценивает степень связи текущих значений с прошлыми на различных лагах.
С помощью графиков (ACF/PACF) можно определить значимые лаги и создать на их основе признаки.
Промпт для автокорреляции
## System You are a time-series expert. ## User Dataset: [brief description] - Length: [N] observations - Frequency: [daily/hourly/etc.] - Raw sample: [first 20–30 values] ## Task 1. Provide Python code to generate ACF & PACF plots. 2. Explain how to interpret: - AR lags - MA components - Seasonal patterns 3. Recommend lag features based on significant lags. 4. Show Python code to engineer these lags (handle missing values). ## Constraints - Output: ≤150 words explanation + Python snippets. - Use statsmodels + pandas. ## Evaluation Hook End with: "Confidence: X/10. Key lags flagged: [list]". 2.3 Декомпозиция сезонности и анализ тренда
Декомпозиция позволяет разложить данные на компоненты: тренд, сезонность и остатки, раскрывая скрытые аспекты.
Промпт для декомпозиции сезонности
## System You are a time-series expert. ## User Data: [time series] - Suspected seasonality: [daily/weekly/yearly] - Business context: [domain] ## Task 1. Apply STL decomposition. 2. Compute: - Seasonal strength Qs = 1 - Var(Residual)/Var(Seasonal+Residual) - Trend strength Qt = 1 - Var(Residual)/Var(Trend+Residual) 3. Interpret trend & seasonality for business insights. 4. Recommend modeling approaches. 5. Provide Python code for visualization. ## Constraints - Keep explanation ≤150 words. - Code should use statsmodels + matplotlib. ## Evaluation Hook End with: "Confidence: X/10. Key business implications: [...]". 3. Обнаружение аномалий с помощью LLM
3.1 Прямой промптинг для обнаружения аномалий
Обнаружение аномалий в временных рядах часто бывает трудоемким процессом.
LLM могут выступать в роли бдительного аналитика, выявляя необычные значения в данных.
Промпт для обнаружения аномалий
## System You are a senior data scientist specializing in time-series anomaly detection. ## User Context: - Domain: [Financial/IoT/Healthcare/etc.] - Normal operating range: [specify if known] - Time period: [specify] - Sampling frequency: [specify] - Data: [time series values] ## Task 1. Detect anomalies with timestamps/indices. 2. Classify as: - Point anomalies - Contextual anomalies - Collective anomalies 3. Assign confidence scores (1–10). 4. Explain reasoning for each detection. 5. Suggest potential causes (domain-specific). ## Constraints - Output: Markdown table (columns: Index, Type, Confidence, Explanation, Possible Cause). - Keep narrative ≤150 words. ## Evaluation Hook End with: "Overall confidence: X/10. Further data needed: [...]". 3.2 Обнаружение аномалий на основе прогнозирования
Вместо прямого поиска аномалий полезно сначала спрогнозировать ожидаемые значения, а затем сравнить их с реальными, чтобы выявить отклонения.
Такие расхождения подчеркивают аномалии, которые иначе могли остаться незамеченными.
Вот готовый промпт для тестирования:
## System You are an expert in forecasting-based anomaly detection. ## User - Historical data: [time series] - Forecast horizon: [N periods] ## Method 1. Forecast the next [N] periods. 2. Compare actual vs forecasted values. 3. Compute residuals (errors). 4. Flag anomalies where |actual - forecast| > threshold. 5. Use z-score & IQR methods to set thresholds. ## Task Provide: - Forecasted values - 95% prediction intervals - Anomaly flags with severity levels - Recommended threshold values ## Constraints - Output: Markdown table (columns: Period, Forecast, Interval, Actual, Residual, Anomaly Flag, Severity). - Keep explanation ≤120 words. ## Evaluation Hook End with: "Confidence: X/10. Threshold method used: [z-score/IQR]". 4. Инженерия признаков для данных с временной зависимостью
Грамотные признаки определяют успех модели.
Вариантов множество: от лагов и скользящих окон до циклических признаков и внешних переменных, чтобы уловить временные связи.
4.1 Автоматизированное создание признаков
Настоящая ценность возникает при создании значимых признаков, отражающих тренды, сезонность и динамику времени. LLM способны автоматизировать этот процесс, генерируя разнообразные полезные признаки.
Комплексный промпт для инженерии признаков:
## System You are a feature engineering expert for time series. ## User Dataset: [description] - Target variable: [specify] - Temporal granularity: [hourly/daily/etc.] - Business domain: [context] ## Task Create temporal features across 5 categories: 1. **Lag Features** - Simple lags, seasonal lags, cross-variable lags 2. **Rolling Window Features** - Moving averages, std/min/max, quantiles 3. **Time-based Features** - Hour, day, month, quarter, year, DOW, WOY, is_weekend, is_holiday, time since events 4. **Seasonal & Cyclical Features** - Fourier terms, sine/cosine transforms, interactions 5. **Change-based Features** - Differences, pct changes, volatility measures ## Constraints - Output: Python code using pandas/numpy. - Add short guidance on feature selection (importance/collinearity). ## Evaluation Hook End with: "Confidence: X/10. Features most impactful for [domain]: [...]". 4.2 Интеграция внешних переменных
Целевой ряд не всегда раскрывает полную картину.
Внешние факторы, такие как погода, экономические индикаторы или события, часто влияют на данные, добавляя контекст и повышая качество прогнозов.
Ключ в правильной интеграции без нарушения временных правил. Вот промпт для включения экзогенных переменных в анализ.
Промпт для экзогенных переменных:
## System You are a time-series modeling expert. Task: Integrate external variables (exogenous features) into a forecasting pipeline. ## User Primary series: [target variable] External variables: [list] Data availability: [past only / future known / mixed] ## Task 1. Assess variable relevance (correlation, cross-correlation). 2. Align frequencies and handle resampling. 3. Create interaction features between external & target. 4. Apply time-aware cross-validation. 5. Select features suited for time-series models. 6. Handle missing values in external variables. ## Constraints - Output: Python code for - Data alignment & resampling - Cross-correlation analysis - Feature engineering with external vars - Model integration: - ARIMA (with exogenous vars) - Prophet (with regressors) - ML models (with external features) ## Evaluation Hook End with: "Confidence: X/10. Most impactful external variables: [...]". Заключительные замечания
Надеюсь, это руководство предоставило много полезной информации для экспериментов.
Это набор проверенных техник на основе исследований для применения LLM в анализе временных рядов.
Успех в работе с данными временных рядов достигается уважением к особенностям временных данных, созданием промптов, подчеркивающих эти особенности, и тщательной верификацией с подходящими методами оценки.
Шпаргалка по инженерии промптов
Здесь собраны все промпты из статьи для удобства использования. Они охватывают ключевые аспекты от прогнозирования до инженерии признаков и обнаружения аномалий.
- Промпт 1.1: Patch-Based Prompting для прогнозирования
- Промпт 1.2: Zero-Shot с контекстом
- Промпт 1.3: Neighbor-Augmented
- Промпт 2.1: Stationarity Testing
- Промпт 2.2: Autocorrelation Analysis
- Промпт 2.3: Seasonal Decomposition
- Промпт 3.1: Direct Anomaly Detection
- Промпт 3.2: Forecasting-Based Anomaly
- Промпт 4.1: Automated Feature Creation
- Промпт 4.2: External Variable Integration