Прогнозирование
Материал из MachineLearning.
(Обновление раздела метрик, дополнение ссылок и категорий) |
(Исправлена формула вероятностного прогноза, формулы, оформление) |
||
| (3 промежуточные версии не показаны) | |||
| Строка 1: | Строка 1: | ||
{{well|Статья расширена с использованием LLM '''Gemini 3.5 Flash''' и проверена участником [[Участник:Vsevolod Peretiatko|Vsevolod Peretiatko]] 23:58, 15 июня 2026 (MSD)}} | {{well|Статья расширена с использованием LLM '''Gemini 3.5 Flash''' и проверена участником [[Участник:Vsevolod Peretiatko|Vsevolod Peretiatko]] 23:58, 15 июня 2026 (MSD)}} | ||
| - | '''Прогнозирование''' (англ. ''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>\mathbf{x}_t \in \mathbb{R}^d</tex>, которые влияют на целевую переменную, но сами от неё не зависят (например, метеоусловия для прогноза энергопотребления). | Также в каждый момент времени может быть доступен вектор экзогенных (внешних) факторов <tex>\mathbf{x}_t \in \mathbb{R}^d</tex>, которые влияют на целевую переменную, но сами от неё не зависят (например, метеоусловия для прогноза энергопотребления). | ||
| Строка 14: | Строка 14: | ||
=== Точечный прогноз === | === Точечный прогноз === | ||
| - | Для фиксированного момента времени <tex>T</tex> (настоящее время) точечный прогноз на момент времени <tex>T+h</tex> вычисляется как: | + | Для фиксированного момента времени <tex>T</tex> (настоящее время) [[Точечный прогноз|точечный прогноз]] на момент времени <tex>T+h</tex> вычисляется как: |
<tex>\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})</tex> | <tex>\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})</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'') строит оценку условной плотности распределения целевой переменной в будущем на основе всей известной информации: | + | * '''Вероятностный прогноз''' (англ. ''probabilistic forecasting'') строит оценку условной плотности распределения целевой переменной в будущем на основе всей известной информации: <tex>p(y_{T+h} \mid y_1, \dots, y_T; \mathbf{x}_1, \dots, \mathbf{x}_{T+h})</tex> |
| - | <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>. | + | [[Изображение:Forecasting intervals.png|thumb|center|700px|Визуализация точечного, интервального и вероятностного прогнозов. Веерный график (Fan Chart) наглядно демонстрирует расширение доверительных интервалов (80% и 95%) по мере увеличения горизонта прогнозирования h.]] |
| + | |||
| + | Обучение модели <tex>f</tex> заключается в минимизации [[Ожидаемый риск|ожидаемого риска]] ([[Эмпирический риск|эмпирического функционала качества]]) на обучающей выборке по заданной [[Функция потерь|функции потерь]] <tex>\mathcal{L}(y, \hat{y})</tex>. | ||
== Классификация подходов к прогнозированию == | == Классификация подходов к прогнозированию == | ||
| Строка 32: | Строка 33: | ||
=== Классические статистические методы === | === Классические статистические методы === | ||
| - | Основаны на предположении о наличии фиксированной математической структуры в ряду (тренд, сезонность, циклы) и стационарности случайного процесса (или возможности свести его к стационарному через разности). | + | Основаны на предположении о наличии фиксированной математической структуры в ряду ([[Тренд|тренд]], [[Сезонность|сезонность]], циклы) и [[Стационарность|стационарности]] случайного процесса (или возможности свести его к стационарному через разности). |
| - | * '''Экспоненциальное сглаживание''' (англ. ''exponential smoothing'', ETS): модели, в которых прогноз формируется как взвешенное среднее прошлых наблюдений, где веса затухают экспоненциально с течением времени (например, метод Хольта-Винтерса). | + | * '''[[Экспоненциальное сглаживание]]''' (англ. ''exponential smoothing'', ETS): модели, в которых прогноз формируется как взвешенное среднее прошлых наблюдений, где веса затухают экспоненциально с течением времени (например, [[Метод Хольта-Винтерса|метод Хольта-Винтерса]]). |
| - | * '''Интегрированная модель авторегрессии — скользящего среднего''' (англ. ''Autoregressive Integrated Moving Average'', ARIMA): семейство моделей, где текущее значение ряда линейно зависит от его собственных предыдущих значений (авторегрессия, <tex>p</tex>) и от прошлых ошибок прогноза (скользящее среднее, <tex>q</tex>). Её расширение SARIMA учитывает сезонные компоненты. | + | * '''[[ARIMA|Интегрированная модель авторегрессии — скользящего среднего]]''' (англ. ''Autoregressive Integrated Moving Average'', ARIMA): семейство моделей, где текущее значение ряда линейно зависит от его собственных предыдущих значений ([[Авторегрессия|авторегрессия]], <tex>p</tex>) и от прошлых ошибок прогноза ([[Скользящее среднее (модель)|скользящее среднее]], <tex>q</tex>). Её расширение [[SARIMA]] учитывает сезонные компоненты. |
| + | |||
| + | [[Изображение:Time series decomposition.png|thumb|center|600px|Аддитивная декомпозиция временного ряда (Time Series Decomposition) на долгосрочный тренд, сезонную компоненту и случайный шум (остатки), лежащая в основе классических статистических подходов.]] | ||
| + | |||
Эти методы эффективны для коротких и единичных временных рядов, обладают высокой интерпретируемостью, но плохо адаптируются к сложным нелинейным зависимостям и большим объёмам внешних данных. | Эти методы эффективны для коротких и единичных временных рядов, обладают высокой интерпретируемостью, но плохо адаптируются к сложным нелинейным зависимостям и большим объёмам внешних данных. | ||
=== Классическое машинное обучение === | === Классическое машинное обучение === | ||
| - | Переход от анализа временного ряда к стандартной задаче обучения с учителем осуществляется с помощью метода '''скользящего окна''' (англ. ''sliding window''). Непрерывный ряд разбивается на объекты, где признаками (англ. ''features'') выступают прошлые значения ряда (лаги, <tex>y_{t-1}, y_{t-2}, \dots</tex>), а также агрегированные статистики (скользящее среднее, стандартное отклонение за период). | + | Переход от анализа временного ряда к стандартной задаче [[Обучение с учителем|обучения с учителем]] осуществляется с помощью метода '''[[Метод скользящего окна|скользящего окна]]''' (англ. ''sliding window''). Непрерывный ряд разбивается на объекты, где признаками (англ. ''features'') выступают прошлые значения ряда (лаги, <tex>y_{t-1}, y_{t-2}, \dots</tex>), а также агрегированные статистики (скользящее среднее, стандартное отклонение за период). |
| - | * '''Градиентный бустинг''' (LightGBM, XGBoost, CatBoost) и '''Случайный лес''' (англ. ''Random Forest''): на сегодняшний день являются индустриальным стандартом для табличных данных и прогнозирования регулярных бизнес-метрик (например, продаж товаров). | + | * '''[[Градиентный бустинг]]''' (LightGBM, XGBoost, CatBoost) и '''[[Случайный лес]]''' (англ. ''Random Forest''): на сегодняшний день являются индустриальным стандартом для табличных данных и прогнозирования регулярных бизнес-метрик (например, продаж товаров). |
| - | Они отлично работают с тысячами разнородных рядов одновременно, легко интегрируют экзогенные факторы (цены, промо-акции, погоду) и нелинейные связи, однако требуют ручного конструирования признаков (англ. ''feature engineering''). | + | Они отлично работают с тысячами разнородных рядов одновременно, легко интегрируют экзогенные факторы (цены, промо-акции, погоду) и нелинейные связи, однако требуют ручного [[Отбор признаков|конструирования признаков]] (англ. ''feature engineering''). |
=== Глубокое обучение === | === Глубокое обучение === | ||
Использует специализированные нейросетевые архитектуры для автоматического извлечения временных закономерностей: | Использует специализированные нейросетевые архитектуры для автоматического извлечения временных закономерностей: | ||
| - | * '''Рекуррентные нейронные сети''' (LSTM, GRU): моделируют последовательности за счёт внутреннего состояния (памяти), но могут страдать от затухания градиентов на длинных горизонтах. | + | * '''[[Рекуррентная нейронная сеть|Рекуррентные нейронные сети]]''' ([[LSTM]], [[GRU]]): моделируют последовательности за счёт внутреннего состояния (памяти), но могут страдать от затухания градиентов на длинных горизонтах. |
| - | * '''Временные свёрточные сети''' (англ. ''Temporal Convolutional Networks'', TCN): применяют причинные (каузальные, англ. ''causal'') свёртки, исключающие заглядывание в будущее. | + | * '''[[Временная свёрточная сеть|Временные свёрточные сети]]''' (англ. ''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''). |
== Валидация моделей прогнозирования == | == Валидация моделей прогнозирования == | ||
| - | При валидации моделей прогнозирования категорически запрещено использовать стандартный случайный скользящий контроль (K-fold cross-validation), так как случайное перемешивание данных приводит к '''утечке данных из будущего''' (англ. ''data leakage''). Модель обучается на информации, которая в реальных условиях ещё не была бы известна, что приводит к оптимистично заниженной ошибке на валидации и провалу модели | + | При валидации моделей прогнозирования категорически запрещено использовать стандартный случайный [[Скользящий контроль|скользящий контроль (K-fold cross-validation)]], так как случайное перемешивание данных приводит к '''[[Утечка данных|утечке данных из будущего]]''' (англ. ''data leakage''). Модель обучается на информации, которая в реальных условиях ещё не была бы известна, что приводит к оптимистично заниженной ошибке на валидации и провалу модели на реальных данных. |
| + | |||
| + | [[Изображение:Time series cv schemes.png|thumb|600px|Схемы блокированного скользящего контроля (Time Series Cross-Validation) с расширяющимся (Expanding) и движущимся (Rolling) окнами. Жёлтым цветом выделен временной зазор (Gap), предотвращающий утечку данных через признаки-лаги.]] | ||
На практике применяются следующие схемы: | На практике применяются следующие схемы: | ||
=== Оценка на отложенной выборке вне периода обучения === | === Оценка на отложенной выборке вне периода обучения === | ||
| - | * '''Out-of-sample (OOS)''': оценка качества модели на данных, которые не использовались при настройке параметров модели. Ряд разбивается на две хронологические части: прошлое (обучение) и будущее (тест). | + | * '''[[Out-of-sample]] (OOS)''': оценка качества модели на данных, которые не использовались при настройке параметров модели. Ряд разбивается на две хронологические части: прошлое (обучение) и будущее (тест). |
| - | * '''Out-of-time (OOT)''': частный и более строгий случай OOS в машинном обучении, когда тестовый набор данных сдвинут относительно обучающего на фиксированный временной интервал или представляет собой принципиально другой временно́й контекст (например, модель обучалась на стабильном периоде, а тестируется во время резкого изменения макроэкономики). | + | * '''[[Out-of-time]] (OOT)''': частный и более строгий случай OOS в машинном обучении, когда тестовый набор данных сдвинут относительно обучающего на фиксированный временной интервал или представляет собой принципиально другой временно́й контекст (например, модель обучалась на стабильном периоде, а тестируется во время резкого изменения макроэкономики). |
=== Блокированный скользящий контроль === | === Блокированный скользящий контроль === | ||
| - | |||
| + | Для полноценного [[Скользящий контроль|кросс-валидационного оценивания]] используют методы, сохраняющие временную структуру (англ. ''Time Series Cross-Validation''). | ||
* '''Схема с расширяющимся окном''' (англ. ''Expanding Window''): на первой итерации модель обучается на блоке длины <tex>T_1</tex> и тестируется на <tex>h</tex> шагах. На следующей итерации тестовый блок включается в обучающую выборку, и модель переобучается на блоке длины <tex>T_1 + h</tex>. | * '''Схема с расширяющимся окном''' (англ. ''Expanding Window''): на первой итерации модель обучается на блоке длины <tex>T_1</tex> и тестируется на <tex>h</tex> шагах. На следующей итерации тестовый блок включается в обучающую выборку, и модель переобучается на блоке длины <tex>T_1 + h</tex>. | ||
* '''Схема с движущимся окном''' (англ. ''Rolling Window''): размер обучающей выборки остаётся фиксированным (например, всегда ровно один год данных), а само окно обучения сдвигается вперёд на величину <tex>h</tex> на каждом шаге. | * '''Схема с движущимся окном''' (англ. ''Rolling Window''): размер обучающей выборки остаётся фиксированным (например, всегда ровно один год данных), а само окно обучения сдвигается вперёд на величину <tex>h</tex> на каждом шаге. | ||
| Строка 68: | Строка 74: | ||
== Метрики качества прогнозирования == | == Метрики качества прогнозирования == | ||
| - | Классические метрики регрессии, такие как среднеквадратичная ошибка (<tex>\text{MSE}</tex>) или средняя абсолютная ошибка (<tex>\text{MAE}</tex>), зависят от масштаба конкретного временного ряда. Они неприменимы, когда требуется сравнить качество работы модели на разнородных данных (например, при одновременном прогнозировании спроса на дорогие и дешёвые товары). Для решения этой проблемы используются специфичные безразмерные и масштабированные метрики. | + | Классические метрики регрессии, такие как [[Среднеквадратичная ошибка|среднеквадратичная ошибка]] (<tex>\text{MSE}</tex>) или [[Средняя абсолютная ошибка|средняя абсолютная ошибка]] (<tex>\text{MAE}</tex>), зависят от масштаба конкретного временного ряда. Они неприменимы, когда требуется сравнить качество работы модели на разнородных данных (например, при одновременном прогнозировании спроса на дорогие и дешёвые товары). Для решения этой проблемы используются специфичные безразмерные и масштабированные метрики. |
=== MAPE (Mean Absolute Percentage Error) === | === MAPE (Mean Absolute Percentage Error) === | ||
| - | Средняя абсолютная процентная ошибка измеряет среднее относительное отклонение прогноза от истинных значений в процентах: | + | [[MAPE|Средняя абсолютная процентная ошибка]] измеряет среднее относительное отклонение прогноза от истинных значений в процентах: |
<tex>\text{MAPE} = \frac{100\%}{n} \sum_{t=1}^n \left| \frac{y_t - \hat{y}_t}{y_t} \right|</tex> | <tex>\text{MAPE} = \frac{100\%}{n} \sum_{t=1}^n \left| \frac{y_t - \hat{y}_t}{y_t} \right|</tex> | ||
* '''Достоинства''': инвариантна к масштабу данных; обладает прямой и интуитивно понятной интерпретацией для бизнес-заказчиков. | * '''Достоинства''': инвариантна к масштабу данных; обладает прямой и интуитивно понятной интерпретацией для бизнес-заказчиков. | ||
| Строка 77: | Строка 83: | ||
=== SMAPE (Symmetric Mean Absolute Percentage Error) === | === SMAPE (Symmetric Mean Absolute Percentage Error) === | ||
| - | Симметричная средняя абсолютная процентная ошибка призвана скорректировать асимметрию MAPE за счёт изменения знаменателя: | + | [[SMAPE|Симметричная средняя абсолютная процентная ошибка]] призвана скорректировать асимметрию MAPE за счёт изменения знаменателя: |
<tex>\text{SMAPE} = \frac{100\%}{n} \sum_{t=1}^n \frac{|y_t - \hat{y}_t|}{(|y_t| + |\hat{y}_t|)/2}</tex> | <tex>\text{SMAPE} = \frac{100\%}{n} \sum_{t=1}^n \frac{|y_t - \hat{y}_t|}{(|y_t| + |\hat{y}_t|)/2}</tex> | ||
* '''Достоинства''': ограничена сверху фиксированным значением (200%), одинаково обрабатывает знаки ошибок в относительных терминах. | * '''Достоинства''': ограничена сверху фиксированным значением (200%), одинаково обрабатывает знаки ошибок в относительных терминах. | ||
| Строка 83: | Строка 89: | ||
=== MASE (Mean Absolute Scaled Error) === | === MASE (Mean Absolute Scaled Error) === | ||
| - | Средняя абсолютная масштабированная ошибка сравнивает абсолютную ошибку оцениваемой модели с ошибкой базового («наивного») прогноза на обучающей выборке (где прогнозом на шаг вперёд является последнее известное историческое значение): | + | [[MASE|Средняя абсолютная масштабированная ошибка]] сравнивает абсолютную ошибку оцениваемой модели с ошибкой базового («наивного») прогноза на обучающей выборке (где прогнозом на шаг вперёд является последнее известное историческое значение): |
<tex>\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}|}</tex> | <tex>\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}|}</tex> | ||
где <tex>T</tex> — длина обучающей последовательности. | где <tex>T</tex> — длина обучающей последовательности. | ||
| Строка 91: | Строка 97: | ||
=== Прочие метрики качества === | === Прочие метрики качества === | ||
В специализированных задачах также применяются следующие метрики: | В специализированных задачах также применяются следующие метрики: | ||
| - | * '''WAPE''' (англ. ''Weighted Absolute Percentage Error'') — взвешенная абсолютная процентная ошибка. Решает проблему деления на ноль в MAPE за счёт нормировки суммарной ошибки на сумму всех фактических значений. Широко применяется в ритейле. | + | * '''[[WAPE]]''' (англ. ''Weighted Absolute Percentage Error'') — взвешенная абсолютная процентная ошибка. Решает проблему деления на ноль в MAPE за счёт нормировки суммарной ошибки на сумму всех фактических значений. Широко применяется в ритейле. |
| - | * '''RMSSE''' (англ. ''Root Mean Squared Scaled Error'') — масштабированная среднеквадратичная ошибка. Модификация MASE, использующая квадраты отклонений; является стандартным критерием качества во многих современных бенчмарках (например, M5 Competition). | + | * '''[[RMSSE]]''' (англ. ''Root Mean Squared Scaled Error'') — масштабированная среднеквадратичная ошибка. Модификация MASE, использующая квадраты отклонений; является стандартным критерием качества во многих современных бенчмарках (например, M5 Competition). |
| - | * '''Pinball Loss''' (англ. ''Quantile Loss'') — квантильная функция потерь. Используется для обучения и оценки моделей вероятностного и интервального прогнозирования. | + | * '''[[Quantile Loss|Pinball Loss]]''' (англ. ''Quantile Loss'') — [[Квантильная функция потерь|квантильная функция потерь]]. Используется для обучения и оценки моделей вероятностного и интервального прогнозирования. |
| - | * '''MSIS''' (англ. ''Mean Scaled Interval Score'') — масштабированный интервальный критерий, оценивающий одновременно как ширину построенного доверительного интервала, так и штраф за выход истинного значения за его пределы. | + | * '''[[MSIS]]''' (англ. ''Mean Scaled Interval Score'') — масштабированный интервальный критерий, оценивающий одновременно как ширину построенного доверительного интервала, так и штраф за выход истинного значения за его пределы. |
== Примеры прикладных задач прогнозирования == | == Примеры прикладных задач прогнозирования == | ||
| Строка 107: | Строка 113: | ||
* [[Скользящий контроль]] — общие методы валидации алгоритмов машинного обучения. | * [[Скользящий контроль]] — общие методы валидации алгоритмов машинного обучения. | ||
* [[Автокорреляция]] — статистическая взаимосвязь между значениями временного ряда в разные моменты времени. | * [[Автокорреляция]] — статистическая взаимосвязь между значениями временного ряда в разные моменты времени. | ||
| - | |||
* [[Экспоненциальное сглаживание]] — класс сглаживающих статистических моделей. | * [[Экспоненциальное сглаживание]] — класс сглаживающих статистических моделей. | ||
* [[Функция потерь]] — математический критерий оптимизации алгоритмов. | * [[Функция потерь]] — математический критерий оптимизации алгоритмов. | ||
| Строка 143: | Строка 148: | ||
* {{статья | * {{статья | ||
|автор = Makridakis S., Spiliotis E., Assimakopoulos V. | |автор = Makridakis S., Spiliotis E., Assimakopoulos V. | ||
| - | | | + | |заглавие = The M4 Competition: Results, findings, conclusions and way forward |
| - | | | + | |издание = International Journal of Forecasting |
|год = 2018 | |год = 2018 | ||
|том = Vol. 34, no. 4 | |том = Vol. 34, no. 4 | ||
| Строка 151: | Строка 156: | ||
* {{статья | * {{статья | ||
|автор = Lim B., Zohren S. | |автор = Lim B., Zohren S. | ||
| - | | | + | |заглавие = Time-series forecasting with deep learning: a survey |
| - | | | + | |издание = Philosophical Transactions of the Royal Society A |
|год = 2021 | |год = 2021 | ||
|том = Vol. 379, no. 2194 | |том = Vol. 379, no. 2194 | ||
| Строка 159: | Строка 164: | ||
[[Категория:Прогнозирование]] | [[Категория:Прогнозирование]] | ||
| - | [[Категория: | + | [[Категория:Прогнозирование временных рядов]] |
| - | [[Категория: | + | [[Категория:Математическая статистика]] |
[[Категория:Прикладная статистика]] | [[Категория:Прикладная статистика]] | ||
Текущая версия
| | Статья расширена с использованием LLM Gemini 3.5 Flash и проверена участником Vsevolod Peretiatko 23:58, 15 июня 2026 (MSD) |
Прогнозирование (англ. forecasting) — область машинного обучения и прикладной статистики, задача которой заключается в предсказании будущих значений целевого процесса или величины на основе исторических данных, а также доступной сопутствующей информации.
В контексте анализа данных прогнозирование чаще всего сводится к анализу временных рядов (англ. time series forecasting). Главное отличие задачи прогнозирования от классической задачи регрессии заключается в нарушении предположения о независимости и одинаковой распределённости наблюдений (i.i.d.): данные в прогнозировании упорядочены во времени и обладают внутренней зависимостью (автокорреляцией). Качественный прогноз требует не просто аппроксимации функции, но и выявления скрытых структурных компонентов ряда: долгосрочных трендов, циклических и сезонных закономерностей, а также адаптации к случайным шокам и структурным сдвигам в данных.
Содержание |
Математическая постановка задачи
Пусть задан случайный процесс, наблюдаемый в дискретные моменты времени . Значение целевой переменной в момент времени
обозначим как
.
Также в каждый момент времени может быть доступен вектор экзогенных (внешних) факторов , которые влияют на целевую переменную, но сами от неё не зависят (например, метеоусловия для прогноза энергопотребления).
Задача прогнозирования заключается в построении модели (алгоритма) , которая по известной предыстории длины
предсказывает значения целевой переменной на
шагов вперёд. Величина
называется горизонтом прогнозирования (англ. forecasting horizon).
Точечный прогноз
Для фиксированного момента времени (настоящее время) точечный прогноз на момент времени
вычисляется как:
В зависимости от доступности экзогенных факторов на шаге , их значения могут быть либо известны заранее (например, календарные признаки: день недели, праздники), либо сами являться результатами других прогнозных моделей.
Интервальный и вероятностный прогноз
Помимо точечного значения , в современных задачах машинного обучения часто требуется оценить неопределённость.
- Интервальный прогноз задаёт границы
, в которые истинное значение попадёт с заданной вероятностью
.
- Вероятностный прогноз (англ. probabilistic forecasting) строит оценку условной плотности распределения целевой переменной в будущем на основе всей известной информации:
Обучение модели заключается в минимизации ожидаемого риска (эмпирического функционала качества) на обучающей выборке по заданной функции потерь
.
Классификация подходов к прогнозированию
Методы прогнозирования временных рядов можно разделить на три парадигмы, каждая из которых эффективна в своём классе задач.
Классические статистические методы
Основаны на предположении о наличии фиксированной математической структуры в ряду (тренд, сезонность, циклы) и стационарности случайного процесса (или возможности свести его к стационарному через разности).
- Экспоненциальное сглаживание (англ. exponential smoothing, ETS): модели, в которых прогноз формируется как взвешенное среднее прошлых наблюдений, где веса затухают экспоненциально с течением времени (например, метод Хольта-Винтерса).
- Интегрированная модель авторегрессии — скользящего среднего (англ. Autoregressive Integrated Moving Average, ARIMA): семейство моделей, где текущее значение ряда линейно зависит от его собственных предыдущих значений (авторегрессия,
) и от прошлых ошибок прогноза (скользящее среднее,
). Её расширение SARIMA учитывает сезонные компоненты.
Эти методы эффективны для коротких и единичных временных рядов, обладают высокой интерпретируемостью, но плохо адаптируются к сложным нелинейным зависимостям и большим объёмам внешних данных.
Классическое машинное обучение
Переход от анализа временного ряда к стандартной задаче обучения с учителем осуществляется с помощью метода скользящего окна (англ. sliding window). Непрерывный ряд разбивается на объекты, где признаками (англ. features) выступают прошлые значения ряда (лаги, ), а также агрегированные статистики (скользящее среднее, стандартное отклонение за период).
- Градиентный бустинг (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): на первой итерации модель обучается на блоке длины
и тестируется на
шагах. На следующей итерации тестовый блок включается в обучающую выборку, и модель переобучается на блоке длины
.
- Схема с движущимся окном (англ. Rolling Window): размер обучающей выборки остаётся фиксированным (например, всегда ровно один год данных), а само окно обучения сдвигается вперёд на величину
на каждом шаге.
При наличии лагов в признаках (например, если для прогноза на завтра нужен лаг недельной давности) между обучающей и тестовой выборками закладывается зазор (англ. gap), чтобы исключить любое неявное проникновение информации.
Метрики качества прогнозирования
Классические метрики регрессии, такие как среднеквадратичная ошибка () или средняя абсолютная ошибка (
), зависят от масштаба конкретного временного ряда. Они неприменимы, когда требуется сравнить качество работы модели на разнородных данных (например, при одновременном прогнозировании спроса на дорогие и дешёвые товары). Для решения этой проблемы используются специфичные безразмерные и масштабированные метрики.
MAPE (Mean Absolute Percentage Error)
Средняя абсолютная процентная ошибка измеряет среднее относительное отклонение прогноза от истинных значений в процентах:
- Достоинства: инвариантна к масштабу данных; обладает прямой и интуитивно понятной интерпретацией для бизнес-заказчиков.
- Недостатки: при наличии в ряду нулевых истинных значений (
) метрика не определена (деление на ноль). Обладает сильной асимметрией: штраф за завышение прогноза (перепрогноз) стремится к бесконечности, в то время как штраф за занижение ограничен снизу 100%. Это может вынуждать модель систематически занижать предсказания.
SMAPE (Symmetric Mean Absolute Percentage Error)
Симметричная средняя абсолютная процентная ошибка призвана скорректировать асимметрию MAPE за счёт изменения знаменателя:
- Достоинства: ограничена сверху фиксированным значением (200%), одинаково обрабатывает знаки ошибок в относительных терминах.
- Недостатки: при стремлении и истинного, и прогнозного значений к нулю метрика становится нестабильной из-за деления на малые величины. Из-за наличия прогноза
в знаменателе её сложнее интерпретировать математически и оптимизировать градиентными методами.
MASE (Mean Absolute Scaled Error)
Средняя абсолютная масштабированная ошибка сравнивает абсолютную ошибку оцениваемой модели с ошибкой базового («наивного») прогноза на обучающей выборке (где прогнозом на шаг вперёд является последнее известное историческое значение):
где
— длина обучающей последовательности.
- Достоинства: полностью устойчива к нулевым значениям в ряду; симметрична; инвариантна к масштабу. Обладает строгим математическим смыслом: значение
гарантирует, что модель извлекает из данных полезный сигнал и работает лучше простейшей константной стратегии.
- Недостатки: менее очевидна для неспециалистов, требует сохранения исходной обучающей выборки для расчёта знаменателя на этапе валидации.
Прочие метрики качества
В специализированных задачах также применяются следующие метрики:
- 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.
- 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.

