Интерактивная статистика
Модуль 8 «Временные ряды и прогноз»
Прогресспройдено 0 / 63

ARIMA, SARIMA, SARIMAX: что добавляет каждая буква

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

горизонт прогнозаакцияакцияакцияакция18685ARIMA(1,1,0)ошибка на спрятанных днях: MAPE 17.6% · в день акции 16.6%
p прошлые значения (AR)
d разности (I)
q прошлые ошибки (MA)
φ1 = -0.17

Красная черта — промах в день акции. Никакое число лагов его не предскажет: причина лежит вне ряда, и заводит её внутрь только X.

AR — авторегрессия, число p. Модель предсказывает сегодняшнее значение как взвешенную сумму p прошлых: φ₁ на вчера, φ₂ на позавчера. Это буквальное использование автокорреляции из второго урока: раз соседние дни связаны, прошлое годится в предикторы. Коэффициенты φ показаны под графиком.

Что это значит

Порядки p и q классически подбирают по коррелограммам ACF и PACF, но на практике чаще перебирают автоматически по информационному критерию AIC — так работает auto_arima. Ручной подбор остаётся способом понять ряд, а не выиграть в точности.

X-часть требует дисциплины: значения внешнего признака должны быть известны на весь горизонт прогноза. Календарь акций и праздники известны, а вот «трафик» или «курс валюты» — нет, и подставить их можно только собственным прогнозом, ошибка которого перейдёт в основную модель.

Проверка адекватности модели — коррелограмма её остатков. Если в остатках осталась структура, порядки выбраны неудачно; формально это проверяют тестом Льюнга — Бокса, где нулевая гипотеза «в остатках нет автокорреляции» — и её как раз хочется не отвергнуть.

Где это встречается

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

Prophet, NeuralProphet и подобные библиотеки решают ту же задачу другим языком — явной декомпозицией с праздниками как отдельным блоком. Идея «внешние события описываем признаками, остальное — структурой ряда» у них общая с SARIMAX.

Для сотен и тысяч рядов сразу (например, спрос по каждой позиции) ARIMA на каждый ряд оказывается дорогой в подборе. Тогда переходят либо к ETS, либо к глобальным моделям, обучаемым сразу на всех рядах.

Определения

AR (p)yt=c+φ1yt1++φpytp+εty_t = c + φ₁y_{t−1} + … + φ_p y_{t−p} + ε_t
авторегрессия: сегодняшнее значение как взвешенная сумма p прошлых.
По-простому: предсказываем по прошлым значениям ряда.
MA (q)yt=c+εt+θ1εt1++θqεtqy_t = c + ε_t + θ₁ε_{t−1} + … + θ_q ε_{t−q}
зависимость от прошлых ошибок прогноза; поправка живёт q шагов.
По-простому: поправка на то, насколько модель промахнулась вчера.
ARIMA (p, d, q)
авторегрессия и скользящее среднее, применённые к ряду, продифференцированному d раз.
По-простому: прошлые значения + прошлые ошибки на приростах ряда.
SARIMA(p,d,q)(P,D,Q)ₘ
ARIMA с теми же механизмами, продублированными на сезонном лаге m.
По-простому: ARIMA, которая помнит ещё и «тот же день неделю назад».
SARIMAX
SARIMA с внешними признаками (exogenous): промо, праздники, цена. Их будущие значения должны быть известны заранее.
По-простому: SARIMA плюс внешние факторы вроде календаря акций.

Когда метод врёт (допущения)

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

Доверительные интервалы прогноза считаются в предположении, что остатки не автокоррелированы и имеют постоянный разброс. Если это не так, интервалы получаются оптимистично узкими, и прогноз выглядит увереннее, чем есть.

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

Подробный разбор: математика и механизм (необязательно)

Почему буква MA не про среднее последних дней: MA(q) — это представление ряда как взвешенной суммы последних q случайных толчков. У AR и MA двойственная природа — стационарный AR(1) разворачивается в бесконечный MA, и наоборот. Смысл разделения в экономии: то, что в одном языке требует бесконечного числа членов, в другом описывается одним коэффициентом.

Сезонная часть SARIMA умножается на несезонную, а не прибавляется: оператор выглядит как φ(B)Φ(Bᵐ)(1−B)^d(1−Bᵐ)^D y_t. Практическое следствие — модель описывает и взаимодействие лагов: например, связь между вчера и «вчера неделю назад» появляется автоматически, без отдельного параметра.

Дальше →
Такие разборы — в канале

Пишу про аналитику простыми словами: как считать метрики, не наврать в A/B, что спрашивают на собесах и как я собираю этот сайт. Без воды.

Подписаться на канал