Как использовать прогноз SARIMA, когда некоторые данные имеют сильные выбросы? - PullRequest
0 голосов
/ 23 октября 2018

Я использую подход 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])

Для некоторых временных рядов это работает довольно хорошо, например, для этого:

Time series forecasting working nicely

Однако некоторые временные ряды на самом деле не являются «прогнозируемыми», и поэтому подход SARIMA не работает:

Failed forecasting

Какова будет стратегия, позволяющая либо проводить различие между «прогнозируемыми» и «непредсказуемыми» данными и использовать только алгоритм SARIMA в первой группе, либо модифицировать алгоритм SARIMA для улучшения прогнозирования?

...