Работали ли вы с классическими моделями прогнозирования временных рядов?

«Работали ли вы с классическими моделями прогнозирования временных рядов?» — вопрос из категории Временные ряды, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, в проектах по прогнозированию спроса и финансовых показателей я применял классические статистические модели.

ARIMA/SARIMA использовал для стационарных рядов. Ключевым этапом было определение порядка (p, d, q) через анализ ACF/PACF и тестов на стационарность (ADF).

from statsmodels.tsa.statespace.sarimax import SARIMAX
model = SARIMAX(train_data, order=(1,1,1), seasonal_order=(1,1,1,12))
results = model.fit(disp=False)
forecast = results.get_forecast(steps=30)

Exponential Smoothing (ETS/Holt-Winters) хорошо показал себя для данных с явным трендом и сезонностью, где нужно быстрое адаптивное прогнозирование.

Prophet применял для рядов с сильными сезонными эффектами и пропусками в данных, так как он устойчив к выбросам и автоматически учитывает праздники.

Перед выбором модели всегда проводил декомпозицию ряда (STL) для анализа компонент и проверял остатки модели на отсутствие автокорреляции (Ljung-Box test).