Модели ARIMA и SARIMA
Компоненты AR, MA и I, выбор параметров с помощью ACF/PACF и подгонка ARIMA в statsmodels.
«Модели ARIMA и SARIMA» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.
Что такое ARIMA
ARIMA расшифровывается как AutoRegressive, интегрирование и скользящее среднее. Модель описывает стационарный ряд с помощью трёх компонентов: авторегрессии (p), интегрирования или дифференцирования (d) и скользящего среднего ошибок (q), записываемых как ARIMA(p, d, q).
AR(p): авторегрессия
Компонент AR предсказывает следующее значение как линейную комбинацию собственных предыдущих p значений. Если сегодняшнее значение сильно зависит от последних нескольких дней, потребуется ненулевое p.
Пример: p=2 использует два самых свежих наблюдения в качестве предикторов.
I(d): интегрирование и дифференцирование
Компонент I задаёт порядок дифференцирования d, необходимого для достижения стационарности ряда, — это именно то значение d, которое вы нашли с помощью теста ADF на предыдущем уроке. d=1 удаляет линейный тренд.
MA(q): скользящее среднее
Компонент MA моделирует следующее значение с использованием прошлых q ошибок прогноза — возмущений. Он учитывает краткосрочные поправки на шум, которые пропускает компонент AR.
Обучение ARIMA в statsmodels
Передайте свой ряд как endog и кортеж выбранного порядка.
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(endog=series, order=(p, d, q))
fit = model.fit()
print(fit.summary())Прогнозирование
После обучения создавайте будущие значения с помощью forecast или get_forecast; последний также возвращает доверительные интервалы.
preds = fit.forecast(steps=12) # next 12 periods
fc = fit.get_forecast(steps=12)
ci = fc.conf_int() # confidence intervalsГрафики ACF и PACF
Чтобы выбрать p и q, изучите графики автокорреляции:
- ACF (автокорреляция) помогает выбрать q — порядок MA.
- PACF (частичная автокорреляция) помогает выбрать p — порядок AR.
Ищите лаг, на котором корреляция резко обрывается.
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
plot_acf(series.diff().dropna())
plot_pacf(series.diff().dropna())AIC и BIC для выбора порядка
AIC и BIC оценивают качество подгонки модели, одновременно учитывая её сложность. Чем меньше значение, тем лучше. Обучите несколько кандидатов (p,d,q) и выберите модель с наименьшим AIC/BIC; BIC сильнее штрафует за дополнительные параметры.
print("AIC:", fit.aic)
print("BIC:", fit.bic)Перебор порядков по сетке
Обычно перебирают небольшие диапазоны p, d и q, обучают модель для каждого набора и сохраняют вариант с наименьшим AIC. Библиотеки вроде pmdarima.auto_arima автоматизируют этот поиск.
best = None
for p in range(3):
for q in range(3):
try:
f = ARIMA(series, order=(p, 1, q)).fit()
if best is None or f.aic < best[1]:
best = ((p, 1, q), f.aic)
except Exception:
pass
print(best)SARIMA для сезонности
SARIMA добавляет сезонный компонент: (P, D, Q, m), где m — длина сезона, например 12 для помесячных данных с годовой сезонностью. Эта модель учитывает повторяющиеся закономерности, с которыми обычная ARIMA не справляется.
from statsmodels.tsa.statespace.sarimax import SARIMAX
model = SARIMAX(series,
order=(1, 1, 1),
seasonal_order=(1, 1, 1, 12))
fit = model.fit()ARIMA и SARIMA
- ARIMA(p,d,q): тренд и краткосрочная зависимость без сезонности.
- SARIMA(p,d,q)(P,D,Q,m): добавляет сезонные компоненты для повторяющихся циклов.
Если разложение показало явную сезонность, выберите SARIMA.
Быстрая проверка
Проверьте свои знания об ARIMA.
Повторение
Вы изучили ARIMA(p,d,q): AR использует прошлые значения, I задаёт порядок дифференцирования, а MA использует прошлые ошибки. Вы обучали модель с помощью ARIMA(endog, order=...), выбирали порядок по ACF/PACF и AIC/BIC, а затем расширили модель до SARIMA для работы с сезонностью. Далее: Prophet для автоматизированного прогнозирования.
Часто задаваемые вопросы
Урок «Модели ARIMA и SARIMA» бесплатный?
Да — полный текст урока «Модели ARIMA и SARIMA» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.
Чему я научусь в уроке «Модели ARIMA и SARIMA»?
Компоненты AR, MA и I, выбор параметров с помощью ACF/PACF и подгонка ARIMA в statsmodels. Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Learn AI with Python?
Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Модели ARIMA и SARIMA»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Learn AI with Python?
Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Компоненты временных рядов и стационарность
- Модели ARIMA и SARIMA
- Prophet для автоматического прогнозирования
- LSTM для прогнозирования временных рядов