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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Список литературы и доп. ссылки, дополнение, категория)
(Обновление преамбулы, исправление формул, проверка на неточности, обновление)
Строка 3: Строка 3:
'''Прогнозирование''' (англ. ''forecasting'') — область машинного обучения и прикладной статистики, задача которой заключается в предсказании будущих значений целевого процесса или величины на основе исторических данных, а также доступной сопутствующей информации.
'''Прогнозирование''' (англ. ''forecasting'') — область машинного обучения и прикладной статистики, задача которой заключается в предсказании будущих значений целевого процесса или величины на основе исторических данных, а также доступной сопутствующей информации.
-
В контексте анализа данных прогнозирование чаще всего сводится к анализу [[Временной ряд|временных рядов]] (англ. ''time series forecasting''). Главное отличие задачи прогнозирования от классической задачи [[Регрессия|регрессии]] заключается в нарушении предположения о независимости и одинаковой распределённости наблюдений (i.i.d.): данные в прогнозировании упорядочены во времени и обладают внутренней зависимостью (автокорреляцией).
+
В контексте анализа данных прогнозирование чаще всего сводится к анализу [[Временной ряд|временных рядов]] (англ. ''time series forecasting''). Главное отличие задачи прогнозирования от классической задачи [[Регрессия|регрессии]] заключается в нарушении предположения о независимости и одинаковой распределённости наблюдений (i.i.d.): данные в прогнозировании упорядочены во времени и обладают внутренней зависимостью (автокорреляцией). Качественный прогноз требует не просто аппроксимации функции, но и выявления скрытых структурных компонентов ряда: долгосрочных трендов, циклических и сезонных закономерностей, а также адаптации к случайным шокам и структурным сдвигам в данных.
== Математическая постановка задачи ==
== Математическая постановка задачи ==
-
Пусть задан случайный процесс, наблюдаемый в дискретные моменты времени <tex>t = 1, 2, \dots, T</tex>. Значение целевой переменной в момент времени <tex>t</tex> обозначим как <tex>y_t \in \mathbb{R}</tex>.
+
Пусть задан случайный процесс, наблюдаемый в дисктетные моменты времени <tex>t = 1, 2, \dots, T</tex>. Значение целевой переменной в момент времени <tex>t</tex> обозначим как <tex>y_t \in \mathbb{R}</tex>.
Также в каждый момент времени может быть доступен вектор экзогенных (внешних) факторов <tex>\mathbf{x}_t \in \mathbb{R}^d</tex>, которые влияют на целевую переменную, но сами от неё не зависят (например, метеоусловия для прогноза энергопотребления).
Также в каждый момент времени может быть доступен вектор экзогенных (внешних) факторов <tex>\mathbf{x}_t \in \mathbb{R}^d</tex>, которые влияют на целевую переменную, но сами от неё не зависят (например, метеоусловия для прогноза энергопотребления).
Строка 22: Строка 22:
Помимо точечного значения <tex>\hat{y}_{T+h}</tex>, в современных задачах машинного обучения часто требуется оценить неопределённость.
Помимо точечного значения <tex>\hat{y}_{T+h}</tex>, в современных задачах машинного обучения часто требуется оценить неопределённость.
* '''Интервальный прогноз''' задаёт границы <tex>[L_{T+h}, U_{T+h}]</tex>, в которые истинное значение попадёт с заданной вероятностью <tex>1 - \alpha</tex>.
* '''Интервальный прогноз''' задаёт границы <tex>[L_{T+h}, U_{T+h}]</tex>, в которые истинное значение попадёт с заданной вероятностью <tex>1 - \alpha</tex>.
-
* '''Вероятностный прогноз''' (англ. ''probabilistic forecasting'') строит оценку плотности распределения <tex>p(y_{T+h} \mid y_{\le T}, \mathbf{x}_{\le T+h})</tex>.
+
* '''Вероятностный прогноз''' (англ. ''probabilistic forecasting'') строит оценку условной плотности распределения целевой переменной в будущем на основе всей известной информации:
 +
<tex>p(y_{T+h} \mid y_1, \dots, y_T; \mathbf{x}_1, \dots, \mathbf{x}_{T+h})</tex>
Обучение модели <tex>f</tex> заключается в минимизации ожидаемого риска (эмпирического функционала качества) на обучающей выборке по заданной функции потерь <tex>\mathcal{L}(y, \hat{y})</tex>.
Обучение модели <tex>f</tex> заключается в минимизации ожидаемого риска (эмпирического функционала качества) на обучающей выборке по заданной функции потерь <tex>\mathcal{L}(y, \hat{y})</tex>.
Строка 44: Строка 45:
Использует специализированные нейросетевые архитектуры для автоматического извлечения временных закономерностей:
Использует специализированные нейросетевые архитектуры для автоматического извлечения временных закономерностей:
* '''Рекуррентные нейронные сети''' (LSTM, GRU): моделируют последовательности за счёт внутреннего состояния (памяти), но могут страдать от затухания градиентов на длинных горизонтах.
* '''Рекуррентные нейронные сети''' (LSTM, GRU): моделируют последовательности за счёт внутреннего состояния (памяти), но могут страдать от затухания градиентов на длинных горизонтах.
-
* '''Временные свёрточные сети''' (англ. ''Temporal Convolutional Networks'', TCN): применяют причинные (казуальные) свёртки, исключающие заглядывание в будущее.
+
* '''Временные свёрточные сети''' (англ. ''Temporal Convolutional Networks'', TCN): применяют причинные (каузальные, англ. ''causal'') свёртки, исключающие заглядывание в будущее.
* '''Трансформаторные архитектуры и Foundation-модели''' (Temporal Fusion Transformer, PatchTST, Chronos): адаптируют механизм внимания (англ. ''attention'') для захвата долгосрочных зависимостей. Они способны обучаться на гигантских разнородных датасетах (англ. ''cross-series learning'') и делать прогнозы для новых рядов «из коробки» (англ. ''zero-shot forecasting'').
* '''Трансформаторные архитектуры и Foundation-модели''' (Temporal Fusion Transformer, PatchTST, Chronos): адаптируют механизм внимания (англ. ''attention'') для захвата долгосрочных зависимостей. Они способны обучаться на гигантских разнородных датасетах (англ. ''cross-series learning'') и делать прогнозы для новых рядов «из коробки» (англ. ''zero-shot forecasting'').

Версия 20:26, 15 июня 2026

Статья расширена с использованием 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})

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

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

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

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

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

  • Экспоненциальное сглаживание (англ. exponential smoothing, ETS): модели, в которых прогноз формируется как взвешенное среднее прошлых наблюдений, где веса затухают экспоненциально с течением времени (например, метод Хольта-Винтерса).
  • Интегрированная модель авторегрессии — скользящего среднего (англ. Autoregressive Integrated Moving Average, ARIMA): семейство моделей, где текущее значение ряда линейно зависит от его собственных предыдущих значений (авторегрессия, p) и от прошлых ошибок прогноза (скользящее среднее, q). Её расширение SARIMA учитывает сезонные компоненты.

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

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

Переход от анализа временного ряда к стандартной задаче обучения с учителем осуществляется с помощью метода скользящего окна (англ. sliding window). Непрерывный ряд разбивается на объекты, где признаками (англ. features) выступают прошлые значения ряда (лаги, y_{t-1}, y_{t-2}, \dots), а также агрегированные статистики (скользящее среднее, стандартное отклонение за период).

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

Они отлично работают с тысячами разнородных рядов одновременно, легко интегрируют экзогенные факторы (цены, промо-акции, погоду) и нелинейные связи, однако требуют ручного конструирования признаков (англ. feature engineering).

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

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

  • Рекуррентные нейронные сети (LSTM, GRU): моделируют последовательности за счёт внутреннего состояния (памяти), но могут страдать от затухания градиентов на длинных горизонтах.
  • Временные свёрточные сети (англ. Temporal Convolutional Networks, TCN): применяют причинные (каузальные, англ. causal) свёртки, исключающие заглядывание в будущее.
  • Трансформаторные архитектуры и Foundation-модели (Temporal Fusion Transformer, PatchTST, Chronos): адаптируют механизм внимания (англ. attention) для захвата долгосрочных зависимостей. Они способны обучаться на гигантских разнородных датасетах (англ. cross-series learning) и делать прогнозы для новых рядов «из коробки» (англ. zero-shot forecasting).

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

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

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

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

  • 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), чтобы исключить любое неявное проникновение информации.

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

Классические метрики регрессии (MSE, 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, метрика уходит в бесконечность (деление на ноль). Кроме того, она асимметрична: сильнее штрафует за прогнозы, превышающие факт (перепрогноз), чем за заниженные прогнозы.

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}

  • Проблема: значение метрики нестабильно, когда и факт, и прогноз близки к нулю.

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, модель работает лучше, чем наивный прогноз. Если \text{MASE} > 1, то алгоритм хуже простейшей константной стратегии. Метрика устойчива к нулевым значениям и инвариантна к масштабу.

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

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

См. также

  • Временной ряд — базовое понятие и свойства последовательностей данных.
  • Регрессия — классическая постановка задачи аппроксимации зависимостей.
  • Скользящий контроль — общие методы валидации алгоритмов машинного обучения.

Литература

  • Бокс Дж., Дженкинс Г. Анализ временных рядов. Прогноз и управление. Пер. с англ.. — М.: Мир, 1974.
  • Лукашин Ю. П. Адаптивные методы краткосрочного прогнозирования временных рядов. — М.: Финансы и статистика, 2003.
  • Hyndman R. J., Athanasopoulos G. Forecasting: principles and practice. — 3rd ed. — OTexts, 2021.
  • Makridakis S., Spiliotis E., Assimakopoulos V. International Journal of Forecasting. — 2018. — Т. Vol. 34, no. 4. — С. 802–808.
  • Lim B., Zohren S. Philosophical Transactions of the Royal Society A. — 2021. — Т. Vol. 379, no. 2194. — С. 20200209.
Личные инструменты