Я использую подход SARIMA для прогнозирования большого набора (~ 10 000) временных рядов.В Python модуль pyramid
предоставляет auto_arima
, который можно использовать следующим образом
from pyramid.arima import auto_arima
stepwise_model = auto_arima(train, start_p=1, start_q=1,
max_p=3, max_q=3, m=12,
start_P=0, seasonal=True,
d=1, D=1, trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
stepwise_model.fit(train)
future_forecast = stepwise_model.predict(n_periods=test.shape[0])
Для некоторых временных рядов это работает довольно хорошо, например, для этого:
Однако некоторые временные ряды на самом деле не являются «прогнозируемыми», и поэтому подход SARIMA не работает:
Какова будет стратегия, позволяющая либо проводить различие между «прогнозируемыми» и «непредсказуемыми» данными и использовать только алгоритм SARIMA в первой группе, либо модифицировать алгоритм SARIMA для улучшения прогнозирования?