2.8.3
SARIMAX モデル
まとめ
- SARIMAXで季節性を含む時系列を予測する。
statsmodels.tsa.statespace.SARIMAXでモデルを推定し、get_forecast()で予測と信頼区間を取得する。- 季節変動と外生変数を考慮した中期予測に使う。
- ARIMA — SARIMAX は ARIMA に季節性と外生変数を加えた拡張モデルです
SARIMAX は ARIMA に季節項(Seasonal)と外生変数(Exogenous)を拡張したモデルで、実務の複雑な時系列に対応できます。
モデルの構成 #
- 非季節部分:ARIMA(p, d, q) の階差と AR/MA 成分。
- 季節部分:季節階差と (P, D, Q, s) による季節 AR/MA。
- 外生変数:実測済みの説明変数を回帰として追加できる。
Python コード例 #
| |
モデル選択のコツ #
- 季節周期 \(s\) を先に決める(例:年次季節なら 12、週次季節なら 52)。
- 非季節と季節の階差を入れすぎると過差分になる。まずは D=1(季節差)から試す。
- AIC/BIC や残差診断を使い、残差が白色雑音に近いかを確認する。
活用シーン #
- 小売の需要予測:プロモーションや休日を説明変数として追加。
- エネルギー需要:気温・湿度など気象データを外生変数に。
- Web トラフィック:イベントカレンダーや広告指標を取り込む。
実装時は statsmodels の SARIMAX クラスを使うと手軽です。より大規模なデータや高速化が必要な場合は pmdarima や Prophet、機械学習モデルと合わせて比較検討しましょう。
- ARIMA モデル — 季節性なしの古典的時系列予測
- 外生変数付き SARIMAX — 外生変数を加えて予測精度を向上
- ホルト・ウィンター法 — トレンドと季節性を同時に平滑化して予測