ARIMA, SARIMA, SARIMAX: что добавляет каждая буква
Второе большое семейство прогнозных моделей описывает ряд через его собственное прошлое: через прошлые значения и прошлые ошибки. Название модели читается как список включённых механизмов, и каждый из них здесь — отдельный переключатель. Ряд тот же, что и в прошлых уроках, но в горизонт прогноза намеренно попал день акции: его нельзя предсказать, глядя только внутрь ряда, и на нём видно, зачем семейству понадобилась последняя буква.
Красная черта — промах в день акции. Никакое число лагов его не предскажет: причина лежит вне ряда, и заводит её внутрь только X.
AR — авторегрессия, число p. Модель предсказывает сегодняшнее значение как взвешенную сумму p прошлых: φ₁ на вчера, φ₂ на позавчера. Это буквальное использование автокорреляции из второго урока: раз соседние дни связаны, прошлое годится в предикторы. Коэффициенты φ показаны под графиком.
Что это значит
Порядки p и q классически подбирают по коррелограммам ACF и PACF, но на практике чаще перебирают автоматически по информационному критерию AIC — так работает auto_arima. Ручной подбор остаётся способом понять ряд, а не выиграть в точности.
X-часть требует дисциплины: значения внешнего признака должны быть известны на весь горизонт прогноза. Календарь акций и праздники известны, а вот «трафик» или «курс валюты» — нет, и подставить их можно только собственным прогнозом, ошибка которого перейдёт в основную модель.
Проверка адекватности модели — коррелограмма её остатков. Если в остатках осталась структура, порядки выбраны неудачно; формально это проверяют тестом Льюнга — Бокса, где нулевая гипотеза «в остатках нет автокорреляции» — и её как раз хочется не отвергнуть.
Где это встречается
SARIMAX — рабочая лошадь прогноза спроса: календарь акций, праздники и цена заводятся признаками, а недельный и годовой циклы описываются сезонной частью.
Prophet, NeuralProphet и подобные библиотеки решают ту же задачу другим языком — явной декомпозицией с праздниками как отдельным блоком. Идея «внешние события описываем признаками, остальное — структурой ряда» у них общая с SARIMAX.
Для сотен и тысяч рядов сразу (например, спрос по каждой позиции) ARIMA на каждый ряд оказывается дорогой в подборе. Тогда переходят либо к ETS, либо к глобальным моделям, обучаемым сразу на всех рядах.
Определения
Когда метод врёт (допущения)
ARIMA линейна и предполагает постоянные во времени коэффициенты. Смена режима — новая ценовая политика, выход на новый рынок — нарушает это, и модель придётся переобучать на новом периоде, а не расширять историю.
Доверительные интервалы прогноза считаются в предположении, что остатки не автокоррелированы и имеют постоянный разброс. Если это не так, интервалы получаются оптимистично узкими, и прогноз выглядит увереннее, чем есть.
Внешний признак в X описывает связь, а не причинность — ровно как коэффициент регрессии. Совпадение акций с ростом продаж могло возникнуть и потому, что акции ставили на заведомо удачные даты.
Подробный разбор: математика и механизм (необязательно)
Почему буква MA не про среднее последних дней: MA(q) — это представление ряда как взвешенной суммы последних q случайных толчков. У AR и MA двойственная природа — стационарный AR(1) разворачивается в бесконечный MA, и наоборот. Смысл разделения в экономии: то, что в одном языке требует бесконечного числа членов, в другом описывается одним коэффициентом.
Сезонная часть SARIMA умножается на несезонную, а не прибавляется: оператор выглядит как φ(B)Φ(Bᵐ)(1−B)^d(1−Bᵐ)^D y_t. Практическое следствие — модель описывает и взаимодействие лагов: например, связь между вчера и «вчера неделю назад» появляется автоматически, без отдельного параметра.