Временные ряды

Feature-based forecasting

Прогноз через признаки

актуальноТекущий рабочий стандарт

Ряд превращается в табличную задачу: лаги, скользящие статистики, календарь — и дальше градиентный бустинг.

Ключевые тезисы

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

Подробный разбор

2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Превращаем ряд в таблицу

Лаги, окна, календарь — и дальше обычный бустинг.

df["lag_1"]  = df.groupby("sku")["sales"].shift(1)
df["lag_7"]  = df.groupby("sku")["sales"].shift(7)
df["roll_7"] = df.groupby("sku")["sales"].shift(1).rolling(7).mean()
df["dow"]    = df.date.dt.dayofweek
df["is_holiday"] = df.date.isin(holidays)
Обратите внимание на shift(1) перед rolling — без него окно включает текущий день, и это утечка
  • Горизонт прогноза определяет минимальный доступный лаг: если предсказываем на 7 дней вперёд, лаг 1 недоступен.
  • Валидация только хронологическая, с теми же разрывами, что и в проде.
  • Такой подход естественно работает с сотнями рядов сразу и с внешними факторами.
фолд 1
фолд 2
фолд 3
фолд 4
фолд 5
обучение валидация
обучений модели5
доля валидации20%
схемаK-Fold
Схема разбиения
Временная схема: обучающий период всегда предшествует валидационному
2

Иерархические ряды

Когда прогнозы должны согласовываться между уровнями.

Прогноз по товару, по категории и по всей сети должны сходиться: сумма частей обязана равняться целому. Если прогнозировать уровни независимо, они разойдутся.

  • Bottom-up: прогнозируем нижний уровень и суммируем — просто, но шумно на верхнем уровне.
  • Top-down: прогнозируем агрегат и распределяем по долям — устойчиво, но теряет специфику товаров.
  • Reconciliation (MinT): статистически оптимальное согласование всех уровней сразу.

Связанные темы

Прогноз спроса · Прогнозирование рядов

Hierarchical Forecasting85%

Иерархические прогнозы · Временные ряды

Прогнозы по товару, категории и сети должны согласовываться: сумма частей обязана равняться целому.

Intermittent Demand85%

Прерывистый спрос · Временные ряды

Ряды, где большая часть значений — нули: запчасти, редкие товары, аварийные события. Обычные метрики и модели здесь не работают.

MAPE85%

Средняя абсолютная процентная ошибка · Метрики

Относительная ошибка в процентах — удобна для сравнения рядов разного масштаба.

SMAPE85%

Симметричная MAPE · Метрики

Вариант MAPE с нормировкой на сумму факта и прогноза — частично лечит асимметрию.

Poisson Distribution85%

Распределение Пуассона · Теория вероятностей и распределения

Число редких независимых событий за фиксированный интервал: заказы за час, отказы за сутки, клики за сессию.

Stationarity85%

Стационарность · Временные ряды

Постоянство статистических свойств ряда во времени — предпосылка большинства классических моделей.

Autocorrelation85%

Автокорреляция · Временные ряды

Связь ряда с собственными прошлыми значениями — главный источник признаков и диагностики.

AR / MA / ARIMA85%

AR / MA / ARIMA · Временные ряды

Классическое семейство: авторегрессия, скользящее среднее ошибок и их комбинация с дифференцированием.

SARIMA85%

SARIMA · Временные ряды

ARIMA с явными сезонными компонентами — для рядов с недельной, месячной или годовой периодикой.

Exponential Smoothing85%

Экспоненциальное сглаживание · Временные ряды

Взвешивание прошлых наблюдений с экспоненциально убывающими весами; модель Хольта — Винтерса добавляет тренд и сезонность.

Prophet85%

Prophet · Временные ряды

Аддитивная модель тренда, сезонностей и праздников с упором на удобство для аналитика.

RNN/LSTM85%

RNN/LSTM для рядов · Временные ряды

Нейросети, обучаемые сразу на множестве связанных рядов, улавливают общие паттерны.

Transformer forecasting85%

Трансформеры для прогноза · Временные ряды

Внимание над длинными горизонтами: Informer, Autoformer, PatchTST, TFT.