Прогнозирование

Материал из MachineLearning.

(Перенаправлено с Прогноз)
Перейти к: навигация, поиск
Статья расширена с использованием LLM Gemini 3.5 Flash и проверена участником Vsevolod Peretiatko 23:58, 15 июня 2026 (MSD)


Прогнозирование (англ. forecasting) — область машинного обучения и прикладной статистики, задача которой заключается в предсказании будущих значений целевого процесса или величины на основе исторических данных, а также доступной сопутствующей информации.

В контексте анализа данных прогнозирование чаще всего сводится к анализу временных рядов (англ. time series forecasting). Главное отличие задачи прогнозирования от классической задачи регрессии заключается в нарушении предположения о независимости и одинаковой распределённости наблюдений (i.i.d.): данные в прогнозировании упорядочены во времени и обладают внутренней зависимостью (автокорреляцией). Качественный прогноз требует не просто аппроксимации функции, но и выявления скрытых структурных компонентов ряда: долгосрочных трендов, циклических и сезонных закономерностей, а также адаптации к случайным шокам и структурным сдвигам в данных.

Содержание

Математическая постановка задачи

Пусть задан случайный процесс, наблюдаемый в дискретные моменты времени t = 1, 2, \dots, T. Значение целевой переменной в момент времени t обозначим как y_t \in \mathbb{R}.

Также в каждый момент времени может быть доступен вектор экзогенных (внешних) факторов \mathbf{x}_t \in \mathbb{R}^d, которые влияют на целевую переменную, но сами от неё не зависят (например, метеоусловия для прогноза энергопотребления).

Задача прогнозирования заключается в построении модели (алгоритма) f, которая по известной предыстории длины k предсказывает значения целевой переменной на h шагов вперёд. Величина h \ge 1 называется горизонтом прогнозирования (англ. forecasting horizon).

Точечный прогноз

Для фиксированного момента времени T (настоящее время) точечный прогноз на момент времени T+h вычисляется как: \hat{y}_{T+h} = f(y_T, y_{T-1}, \dots, y_{T-k+1}; \mathbf{x}_{T+h}, \mathbf{x}_{T+h-1}, \dots, \mathbf{x}_{1})

В зависимости от доступности экзогенных факторов на шаге T+h, их значения могут быть либо известны заранее (например, календарные признаки: день недели, праздники), либо сами являться результатами других прогнозных моделей.

Интервальный и вероятностный прогноз

Помимо точечного значения \hat{y}_{T+h}, в современных задачах машинного обучения часто требуется оценить неопределённость.

  • Интервальный прогноз задаёт границы [L_{T+h}, U_{T+h}], в которые истинное значение попадёт с заданной вероятностью 1 - \alpha.
  • Вероятностный прогноз (англ. probabilistic forecasting) строит оценку условной плотности распределения целевой переменной в будущем на основе всей известной информации: p(y_{T+h} \mid y_1, \dots, y_T; \mathbf{x}_1, \dots, \mathbf{x}_{T+h})
Визуализация точечного, интервального и вероятностного прогнозов. Веерный график (Fan Chart) наглядно демонстрирует расширение доверительных интервалов (80% и 95%) по мере увеличения горизонта прогнозирования h.
Визуализация точечного, интервального и вероятностного прогнозов. Веерный график (Fan Chart) наглядно демонстрирует расширение доверительных интервалов (80% и 95%) по мере увеличения горизонта прогнозирования h.

Обучение модели f заключается в минимизации ожидаемого риска (эмпирического функционала качества) на обучающей выборке по заданной функции потерь \mathcal{L}(y, \hat{y}).

Предварительная обработка временных рядов

Специфика временных рядов требует особых методов очистки и подготовки данных перед подачей их в алгоритмы машинного обучения или статистические модели, так как игнорирование внутренней структуры ряда приводит к ложным предсказаниям.

Обеспечение стационарности

Многие классические модели (например, ARIMA) требуют стационарности ряда — независимости математического ожидания, дисперсии и автоковариации от времени. Для строгой проверки ряда на стационарность чаще всего используется расширенный тест Дики — Фуллера (англ. Augmented Dickey-Fuller test, ADF). Если ряд нестационарен (присутствует единичный корень), применяют:

  • Дифференцирование (англ. differencing): переход от самих значений к их разностям (приращениям): y'_t = y_t - y_{t-1}. При сильно выраженной сезонности применяется сезонное дифференцирование: y'_t = y_t - y_{t-m}, где m — период сезонности (например, m = 12 для месячных данных).
  • Выделение компонент: явное моделирование и вычитание детерминированного тренда (линейного, полиномиального) или сезонных профилей.

Стабилизация дисперсии

Если амплитуда колебаний ряда или дисперсия остатков возрастают по мере увеличения общего уровня ряда (эффект гетероскедастичности), применяется преобразование Бокса — Кокса. Наиболее частым его частным случаем на практике является логарифмирование ряда y'_t = \ln(y_t), которое позволяет перевести сложную мультипликативную зависимость компонент ряда в более простую аддитивную:

\ln(\text{Trend} \times \text{Seasonality}) = \ln(\text{Trend}) + \ln(\text{Seasonality})

Классификация подходов к прогнозированию

Методы прогнозирования временных рядов можно разделить на три парадигмы, каждая из которых эффективна в своём классе задач.

Классические статистические методы

Основаны на предположении о наличии фиксированной математической структуры в ряду (тренд, сезонность, циклы) и стационарности случайного процесса (или возможности свести его к стационарному через разности).

Аддитивная декомпозиция временного ряда (Time Series Decomposition) на долгосрочный тренд, сезонную компоненту и случайный шум (остатки), лежащая в основе классических статистических подходов.
Аддитивная декомпозиция временного ряда (Time Series Decomposition) на долгосрочный тренд, сезонную компоненту и случайный шум (остатки), лежащая в основе классических статистических подходов.

Эти методы эффективны для коротких и единичных временных рядов, обладают высокой интерпретируемостью, но плохо адаптируются к сложным нелинейным зависимостям и большим объёмам внешних данных.

Классическое машинное обучение

Переход от одномерного временного ряда к стандартной постановке задачи обучения с учителем (supervised learning) осуществляется с помощью метода скользящего окна (англ. sliding window). Непрерывная последовательность \{y_1, y_2, \dots, T\} трансформируется в табличную матрицу «объект-признак». Для каждой временной точки t целевым вектором (таргетом) становится значение y_t (или вектор [y_t, \dots, y_{t+h}]), а в качестве признаков (фичей) выступает фиксированная ретроспектива (исторический контекст).

Эффективность моделей классического машинного обучения целиком зависит от этапа конструирования признаков (feature engineering). Выделяют следующие базовые группы признаков:

  • Лаговые признаки (англ. lag features): значения ряда в фиксированных прошлых моментах времени: y_{t-1}, y_{t-2}, \dots, y_{t-k}. Они напрямую транслируют автокорреляционную структуру процесса.
  • Оконные агрегаты (англ. rolling window statistics): статистические показатели, рассчитанные по скользящему историческому окну переменной длины. К ним относятся скользящее среднее (rolling mean), скользящее стандартное отклонение (rolling std), а также экспоненциально взвешенные метрики. Они позволяют модели улавливать локальные тренды и изменения волатильности, сглаживая высокочастотный шум.
  • Детерминированные и календарные признаки: извлекаются из самой временной метки t (индекс часа, дня недели, месяца, признак выходного дня). Для предотвращения разрыва между циклическими границами (например, между 23:00 и 00:00 или воскресеньем и понедельником) применяется тригонометрическое кодирование:
\mathbf{x}_{t,\text{cyclic}} = \left( \sin\left(\frac{2\pi \cdot \text{val}}{P}\right), \cos\left(\frac{2\pi \cdot \text{val}}{P}\right) \right)

где \text{val} — текущее календарное значение, а P — период цикла (7 для дней недели, 24 для часов).

  • Экзогенные признаки: делятся на динамические (внешние меняющиеся факторы, например, прогноз погоды, запланированные скидки) и статические мета-признаки (категория товара, географический регион магазина).

Ансамблевые алгоритмы, такие как Градиентный бустинг над решающими деревьями (LightGBM, XGBoost, CatBoost) и Случайный лес (Random Forest), являются признанным индустриальным стандартом для табличных данных.

Их главное преимущество в прогнозировании заключается в концепции глобальных моделей (cross-series learning): один ансамбль деревьев способен одновременно обучаться на миллионах разнородных временных рядов (например, на всей номенклатуре товаров ритейлера). Деревья решений эффективно восстанавливают сложные нелинейные зависимости и взаимодействия между признаками (interaction effects), устойчивы к мультиколлинеарности лагов и масштабу данных. Однако они принципиально не способны экстраполировать линейные тренды за пределы максимального значения в обучающей выборке, что требует предварительного детрендирования данных.

Глубокое обучение

Методы глубокого обучения (Deep Learning) автоматизируют этап конструирования признаков, самостоятельно извлекая латентные представления (эмбеддинги) временного контекста через специализированные слои.

Исторически первые глубокие архитектуры для последовательностей. Они обрабатывают элементы ряда пошагово, аккумулируя историю в скрытом векторе состояния (hidden state) \mathbf{h}_t = \sigma(W \mathbf{x}_t + U \mathbf{h}_{t-1}). За счёт механизмов вентилей (gates) в LSTM удаётся сохранять информацию о долгосрочных зависимостях.

  • Ограничения: Пошаговая (последовательная) природа вычислений делает невозможной параллелизацию обучения по временной оси на GPU. Кроме того, при экстремально длинных последовательностях скрытый вектор становится «узким горлышком» (bottleneck), теряя ранний контекст из-за затухания градиентов.

Альтернатива RNN, использующая одномерные свёртки (1D CNN) вдоль временной оси. Архитектура базируется на двух принципах:

  1. Причинные свёртки (causal convolutions): слой спроектирован так, что вычисление эмбеддинга в момент t зависит только от элементов из слоёв на шагах \le t, что полностью исключает утечку данных из будущего.
  2. Разреженные свёртки (dilated convolutions): фильтр свёртки применяется с регулируемым шагом (пропуском элементов) d. За счёт экспоненциального увеличения зазора (d = 2^l на слое l) поле восприятия (receptive field) сети растёт экспоненциально с ростом глубины, позволяя охватывать огромные исторические контексты без вычислительных перегрузок. TCN полностью параллелизуемы при обучении.

Современный State-of-the-Art, адаптирующий механизм внутреннего внимания (Self-Attention) для взвешивания значимости прошлых событий независимо от их удалённости по времени.

  1. Temporal Fusion Transformer (TFT): специализированная индустриальная архитектура, объединяющая Self-Attention для долгосрочных связей с рекуррентными слоями локального контекста. Содержит специализированные блоки фильтрации признаков (gating mechanisms), позволяющие автоматически отсеивать нерелевантные экзогенные факторы на разных горизонтах.
  2. PatchTST: архитектура, перевернувшая подход к применению трансформеров в прогнозировании. Вместо подачи единичных временных шагов в качестве токенов, ряд разбивается на перекрывающиеся подпоследовательности — «патчи» (patches). Это решает проблему квадратичной сложности внимания \mathcal{O}(T^2), снижая её до числа патчей, а также позволяет механизму внимания оперировать локальной семантикой (формами трендов), а не зашумлёнными точечными значениями. Дополнительно использует концепцию независимости каналов (Channel Independence), обрабатывая многомерные ряды по отдельности.
  3. Foundation-модели (Chronos, MOIRAI): представляют собой парадигму Zero-shot forecasting. Непрерывные значения временного ряда квантуются (разбиваются по бинам) и преобразуются в дискретные токены. После этого задача прогнозирования сводится к классической задаче генеративного языкового моделирования (по аналогии с GPT), оптимизируемой через кросс-энтропию. Такие модели, будучи обученными на миллиардах синтетических и реальных временных рядов из разных доменов, способны строить качественные вероятностные прогнозы для абсолютно новых рядов вообще без дополнительного дообучения (финтюнинга).

Стратегии многошагового прогнозирования

Классические алгоритмы машинного обучения (линейная регрессия, деревья решений) по своей математической природе предсказывают только одно значение целевой переменной (англ. single-output). Для прогнозирования на горизонт h > 1 (многошаговый прогноз) применяются специализированные мета-стратегии конструирования признакового пространства и архитектуры моделей.

Рекурсивная стратегия (Recursive strategy)

Обучается ровно одна модель f для прогноза на один шаг вперёд. Для получения прогноза на последующие шаги предсказанное значение условно принимается за истинное и подаётся обратно на вход модели в качестве нового исторического признака (лага):

\hat{y}_{T+1} = f(y_T, y_{T-1}, \dots)
\hat{y}_{T+2} = f(\hat{y}_{T+1}, y_T, y_{T-1}, \dots)
  • Достоинства: экономия вычислительных ресурсов (требуется обучить только одну модель).
  • Недостатки: быстрое экспоненциальное накопление ошибки. Отклонения на первых шагах лавинообразно искажают прогнозы на отдалённых горизонтах.

Прямая стратегия (Direct strategy)

Обучается h независимых моделей, каждая из которых специализируется на прогнозировании строго своего шага в будущем k \in \{1, \dots, h\} на основе одних и тех же исторических данных:

\hat{y}_{T+k} = f_k(y_T, y_{T-1}, \dots)
  • Достоинства: отсутствие рекурсивного накопления ошибок.
  • Недостатки: игнорируются статистические зависимости между соседними будущими точками (прогнозы \hat{y}_{T+1} и \hat{y}_{T+2} могут получиться структурно противоречивыми); высокие затраты времени на обучение h моделей.

Прямо-рекурсивная стратегия (DirRec)

Гибридный подход. Обучается h моделей, но каждая последующая модель использует прогнозы всех предыдущих моделей как дополнительные независимые признаки:

\hat{y}_{T+k} = f_k(\hat{y}_{T+k-1}, \dots, \hat{y}_{T+1}, y_T, \dots)

Эта стратегия пытается совместить устойчивость прямого метода с сохранением временного контекста из рекурсивного подхода.

Многовыходовая стратегия (Multiple Output strategy)

Модель на уровне своей внутренней математической архитектуры способна выдавать целый вектор прогнозов за один проход:

[\hat{y}_{T+1}, \dots, \hat{y}_{T+h}] = f(y_T, y_{T-1}, \dots)

Этот подход является индустриальным стандартом для глубокого обучения (архитектуры Seq2Seq) и многомерных ансамблевых деревьев. Он органично сохраняет корреляции между будущими шагами и исключает необходимость дробить задачу на десятки побочных моделей.

Иерархическое прогнозирование

В масштабных бизнес-задачах (ритейл, логистика, энергетика) прогнозируемые временные ряды образуют многоуровневую структуру (англ. Hierarchical Time Series). Например: общие продажи сети \to продажи по регионам \to продажи по магазинам \to продажи по товарным категориям.

Главное требование к таким прогнозам — когерентность (согласованность): сумма прогнозов на нижних уровнях обязана строго равняться прогнозу на охватывающем верхнем уровне. Для обеспечения когерентности применяются методы согласования (англ. reconciliation):

  • Снизу вверх (Bottom-up): прогнозы строятся статистическими или ML-моделями только для самого нижнего уровня иерархии, а прогнозы для всех вышестоящих уровней получаются простым арифметическим суммированием. Метод хорошо улавливает микро-динамику, но сильно страдает от дисперсии и шума в разреженных рядах нижнего уровня (когда продажи товара единичны).
  • Сверху вниз (Top-down): прогноз строится исключительно для агрегированного верхнего уровня (где статистический шум минимален, а тренды максимально стабильны). Затем результат дезагрегируется на нижние уровни пропорционально историческим долям продаж каждого узла. Метод не способен уловить смену тренда у конкретного локального товара.
  • Оптимальное согласование (Optimal Reconciliation): прогнозы строятся независимо для всех узлов иерархии на всех уровнях (англ. base forecasts). Поскольку полученные сырые прогнозы изначально не когерентны, они математически корректируются с помощью обобщённого метода наименьших квадратов (GLS). Процедура минимизирует общую ошибку предсказания, накладывая жесткое ограничение на соблюдение матрицы иерархической структуры. Данный метод является современным State-of-the-Art подходом.

Валидация моделей прогнозирования

При валидации моделей прогнозирования категорически запрещено использовать стандартный случайный скользящий контроль (K-fold cross-validation), так как случайное перемешивание данных приводит к утечке данных из будущего (англ. data leakage). Модель обучается на информации, которая в реальных условиях ещё не была бы известна, что приводит к оптимистично заниженной ошибке на валидации и провалу модели на реальных данных.

Схемы блокированного скользящего контроля (Time Series Cross-Validation) с расширяющимся (Expanding) и движущимся (Rolling) окнами. Жёлтым цветом выделен временной зазор (Gap), предотвращающий утечку данных через признаки-лаги.
Схемы блокированного скользящего контроля (Time Series Cross-Validation) с расширяющимся (Expanding) и движущимся (Rolling) окнами. Жёлтым цветом выделен временной зазор (Gap), предотвращающий утечку данных через признаки-лаги.

На практике применяются следующие схемы:

Оценка на отложенной выборке вне периода обучения

  • Out-of-sample (OOS): оценка качества модели на данных, которые не использовались при настройке параметров модели. Ряд разбивается на две хронологические части: прошлое (обучение) и будущее (тест).
  • Out-of-time (OOT): частный и более строгий случай OOS в машинном обучении, когда тестовый набор данных сдвинут относительно обучающего на фиксированный временной интервал или представляет собой принципиально другой временно́й контекст (например, модель обучалась на стабильном периоде, а тестируется во время резкого изменения макроэкономики).

Блокированный скользящий контроль

Для полноценного кросс-валидационного оценивания используют методы, сохраняющие временную структуру (англ. Time Series Cross-Validation).

  • Схема с расширяющимся окном (англ. Expanding Window): на первой итерации модель обучается на блоке длины T_1 и тестируется на h шагах. На следующей итерации тестовый блок включается в обучающую выборку, и модель переобучается на блоке длины T_1 + h.
  • Схема с движущимся окном (англ. Rolling Window): размер обучающей выборки остаётся фиксированным (например, всегда ровно один год данных), а само окно обучения сдвигается вперёд на величину h на каждом шаге.

При наличии лагов в признаках (например, если для прогноза на завтра нужен лаг недельной давности) между обучающей и тестовой выборками закладывается зазор (англ. gap), чтобы исключить любое неявное проникновение информации.

Метрики качества прогнозирования

Классические метрики регрессии, такие как среднеквадратичная ошибка (\text{MSE}) или средняя абсолютная ошибка (\text{MAE}), зависят от масштаба конкретного временного ряда. Они неприменимы, когда требуется сравнить качество работы модели на разнородных данных (например, при одновременном прогнозировании спроса на дорогие и дешёвые товары). Для решения этой проблемы используются специфичные безразмерные и масштабированные метрики.

MAPE (Mean Absolute Percentage Error)

Средняя абсолютная процентная ошибка измеряет среднее относительное отклонение прогноза от истинных значений в процентах: \text{MAPE} = \frac{100\%}{n} \sum_{t=1}^n \left| \frac{y_t - \hat{y}_t}{y_t} \right|

  • Достоинства: инвариантна к масштабу данных; обладает прямой и интуитивно понятной интерпретацией для бизнес-заказчиков.
  • Недостатки: при наличии в ряду нулевых истинных значений (y_t = 0) метрика не определена (деление на ноль). Обладает сильной асимметрией: штраф за завышение прогноза (перепрогноз) стремится к бесконечности, в то время как штраф за занижение ограничен снизу 100%. Это может вынуждать модель систематически занижать предсказания.

SMAPE (Symmetric Mean Absolute Percentage Error)

Симметричная средняя абсолютная процентная ошибка призвана скорректировать асимметрию MAPE за счёт изменения знаменателя: \text{SMAPE} = \frac{100\%}{n} \sum_{t=1}^n \frac{|y_t - \hat{y}_t|}{(|y_t| + |\hat{y}_t|)/2}

  • Достоинства: ограничена сверху фиксированным значением (200%), одинаково обрабатывает знаки ошибок в относительных терминах.
  • Недостатки: при стремлении и истинного, и прогнозного значений к нулю метрика становится нестабильной из-за деления на малые величины. Из-за наличия прогноза \hat{y}_t в знаменателе её сложнее интерпретировать математически и оптимизировать градиентными методами.

MASE (Mean Absolute Scaled Error)

Средняя абсолютная масштабированная ошибка сравнивает абсолютную ошибку оцениваемой модели с ошибкой базового («наивного») прогноза на обучающей выборке (где прогнозом на шаг вперёд является последнее известное историческое значение): \text{MASE} = \frac{\frac{1}{n} \sum_{t=1}^n |y_t - \hat{y}_t|}{\frac{1}{T-1} \sum_{i=2}^T |y_i - y_{i-1}|} где T — длина обучающей последовательности.

  • Достоинства: полностью устойчива к нулевым значениям в ряду; симметрична; инвариантна к масштабу. Обладает строгим математическим смыслом: значение \text{MASE} < 1 гарантирует, что модель извлекает из данных полезный сигнал и работает лучше простейшей константной стратегии.
  • Недостатки: менее очевидна для неспециалистов, требует сохранения исходной обучающей выборки для расчёта знаменателя на этапе валидации.

Прочие метрики качества

В специализированных задачах также применяются следующие метрики:

  • WAPE (англ. Weighted Absolute Percentage Error) — взвешенная абсолютная процентная ошибка. Решает проблему деления на ноль в MAPE за счёт нормировки суммарной ошибки на сумму всех фактических значений. Широко применяется в ритейле.
  • RMSSE (англ. Root Mean Squared Scaled Error) — масштабированная среднеквадратичная ошибка. Модификация MASE, использующая квадраты отклонений; является стандартным критерием качества во многих современных бенчмарках (например, M5 Competition).
  • Pinball Loss (англ. Quantile Loss) — квантильная функция потерь. Используется для обучения и оценки моделей вероятностного и интервального прогнозирования.
  • MSIS (англ. Mean Scaled Interval Score) — масштабированный интервальный критерий, оценивающий одновременно как ширину построенного доверительного интервала, так и штраф за выход истинного значения за его пределы.

Примеры прикладных задач прогнозирования

В рамках Ресурса представлены следующие примеры реализации и анализа прогнозных моделей:

См. также

Литература

  • Бокс Дж., Дженкинс Г. Анализ временных рядов. Прогноз и управление. Пер. с англ.. — М.: Мир, 1974.
  • Лукашин Ю. П. Адаптивные методы краткосрочного прогнозирования временных рядов. — М.: Финансы и статистика, 2003.
  • Кендалл М., Стюарт А. Многомерный статистический анализ и временные ряды. Пер. с англ.. — М.: Наука, 1976.
  • Hyndman R. J., Athanasopoulos G. Forecasting: principles and practice. — 3rd ed. — OTexts, 2021.
  • Makridakis S., Spiliotis E., Assimakopoulos V. The M4 Competition: Results, findings, conclusions and way forward // International Journal of Forecasting. — 2018. — Т. Vol. 34, no. 4. — С. 802–808.
  • Bai S., Kolter J. Z., Koltun V. An empirical evaluation of generic convolutional and recurrent networks for sequence modeling (TCN) // arXiv preprint arXiv:1803.01271. — 2018.
  • Lim B., Zohren S. Time-series forecasting with deep learning: a survey // Philosophical Transactions of the Royal Society A. — 2021. — Т. Vol. 379, no. 2194. — С. 20200209.
  • Lim B., Arık S. Ö., Loeff N., Pfister T. Temporal fusion transformers for interpretable multi-horizon time series forecasting // International Journal of Forecasting. — 2021. — Т. Vol. 37, no. 4. — С. 1748–1764.
  • Nie Y., Nguyen N. H., Sinthong P., Kalagnanam J. A time series is worth 64 words: Long-term forecasting with patchtst // International Conference on Learning Representations (ICLR). — 2023.
  • Ansari A. F., Stella L., Turkmen C., Zhang X., Mercado P., Shen H., Shchur O., Rangapuram S. S., Pineda Arango S., Kapoor R., Zschiegner J., Maddix D. C., Wang Y., Mahoney M. W., Timoon B., de Bzenac C., Bohlke-Schneider M., Gasthaus J. Chronos: Learning the language of time series // arXiv preprint arXiv:2403.07815. — 2024.
Личные инструменты