Ряд превращается в табличную задачу: лаги, скользящие статистики, календарь — и дальше .
Ключевые тезисы
- Побеждает в большинстве соревнований по прогнозированию.
- Легко подключает внешние факторы и иерархию рядов.
- Требует строгой хронологической валидации, чтобы не заглянуть в будущее.
Какую задачу решает
Классические модели временных рядов работают с одним рядом и его собственной историей. Как только появляются внешние факторы — акции, погода, праздники, цены конкурентов — и тысячи рядов одновременно (товар × магазин), эта схема становится неудобной.
Подход через переводит задачу в обычную табличную: строка — это «объект в времени», признаки — лаги, скользящие статистики, календарь, внешние факторы, а дальше работает . Это позволяет обучить одну модель на всех рядах сразу, естественно учесть внешние данные и получить качество, которое на практике часто превосходит классические модели.
Прогноз на 7 дней вперёд. «продажи вчера» на обучении вычисляется легко, а в проде для прогноза на седьмой день его не существует — вчерашних данных относительно той даты ещё нет. Модель обучится опираться на самый сильный признак, а в эксплуатации получит его подстановку или пропуск, и качество рухнет. Правило: для горизонта используйте только лаги от и глубже. Соответственно, для каждого горизонта нужен свой набор — или отдельная модель на каждый .
Подробный разбор
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)- прогноза определяет минимальный доступный лаг: если предсказываем на 7 дней вперёд, лаг 1 недоступен.
- Валидация только хронологическая, с теми же разрывами, что и в проде.
- Такой подход естественно работает с сотнями рядов сразу и с внешними факторами.
Прогноз по товару, по категории и по всей сети должны сходиться: сумма частей обязана равняться целому. Если прогнозировать уровни независимо, они разойдутся.
- Bottom-up: прогнозируем нижний уровень и суммируем — просто, но шумно на верхнем уровне.
- Top-down: прогнозируем агрегат и распределяем по долям — устойчиво, но теряет специфику товаров.
- Reconciliation (MinT): статистически оптимальное согласование всех уровней сразу.
Где применяется
- Прогноз спросаТысячи товаров в сотнях точек: одна модель вместо тысяч .
- Прогноз нагрузкиТрафик, звонки, потребление энергии с учётом погоды и календаря.
- Ряды с внешними факторамиПромо, цены, конкуренты — всё это просто .
- Короткие рядыНовый товар без истории получает прогноз за счёт похожих товаров.
Плюсы, минусы и альтернативы
Плюсы
- Естественно учитывает внешние факторы и категориальные .
- Одна модель на тысячи рядов: проще эксплуатировать, чем тысячи моделей.
- Работает на коротких рядах за счёт переноса знания между ними.
- Использует весь зрелый инструментарий табличного ML.
Минусы
- Не экстраполирует тренд: не выходит за диапазон обучающих значений.
- Требует аккуратной работы с лагами — здесь легко получить утечку из будущего.
- Не даёт из коробки.
- Нужно строить , а классическая модель работает сразу.
Брать, если
- Рядов много и есть внешние факторы.
- Ряды короткие или появляются новые объекты.
- Нужно учесть промо, календарь, погоду и прочий контекст.
Не брать, если
- Ряд один, длинный и с выраженным трендом — классические модели проще и экстраполируют.
- Нужны интервалы прогноза с обоснованием.
Чем заменяют
Связанные темы
Прогноз спроса · Прогнозирование рядов
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.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Лаговые признаки
Значения ряда со сдвигом: вчера, неделю назад, год назад. Основной источник сигнала.
Разбор ниже: Превращаем ряд в таблицуСкользящие статистики
Среднее, медиана, стандартное отклонение за : сглаженная история.
Разбор ниже: Превращаем ряд в таблицуКалендарные признаки
День недели, месяц, праздник, время до события. Часто сильнее самой даты.
Разбор ниже: Превращаем ряд в таблицуГлобальная модель
Одна модель на все ряды: делится знанием между товарами и решает проблему коротких рядов.
Разбор ниже: Иерархические рядыГоризонт прогноза
Лаги должны быть доступны на весь : для прогноза на 7 дней вперёд лаг в 1 день использовать нельзя.
Разбор ниже: Превращаем ряд в таблицуУсиливает профиль: Data Scientist, Аналитик данных, Инженер речи.
Спрашивают на собеседовании: Ozon — Спрос и логистика, Wildberries — Спрос, цены и акции, X5 Tech — Спрос и пополнение, X5 Tech — Цены и промо, Магнит — Ассортимент и спрос, Самокат — Спрос и ассортимент даркстора, Dodo Brands — Прогноз заказов и планирование смен, Спортмастер — Закупка и ассортимент, Авиасейлс — Прогноз цен и подсказки, 2ГИС — Геопоиск и навигация, МегаФон — Сеть и геоаналитика, Ростелеком — Качество сети и отток, Selectel — Мощности и надёжность, Газпром нефть — Геология и добыча, Газпром нефть — Переработка и оптимизация, СИБУР — Предиктивное обслуживание, СИБУР — Качество и режимы производства, Северсталь — Оптимизация производства.
Тема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.
Глава «Временные ряды» последний раз правилась . Нашли ошибку — напишите.