ARIMA(自己回帰和分移動平均モデル)とは
AutoRegressive Integrated Moving Average / 自己回帰和分移動平均モデル
自己回帰・差分・移動平均を組み合わせて時系列データを予測する統計的モデル
ひとことで言うと
過去の値の傾向やばらつきから、将来の値を統計的に予測する時系列モデル。
概要
ARIMA(AutoRegressive Integrated Moving Average)は、自己回帰(AR)・差分(I: Integrated)・移動平均(MA)という3つの要素を組み合わせた統計的な時系列予測モデル。 自己回帰は過去の値そのものから現在の値を回帰的に予測する部分、移動平均は過去の予測誤差から現在の値を補正する部分、差分は非定常な時系列を差分によって定常化する処理をそれぞれ担う。 モデルは自己回帰の次数・差分の階数・移動平均の次数という3つの整数パラメータによって定義される。 季節性を持つ時系列にはSARIMA(Seasonal ARIMA)、外部変数を加えたものはARIMAXと呼ばれる拡張版も存在する。 深層学習ベースの手法が普及する以前から、需要予測・経済指標の予測などで広く使われてきた統計モデル。
背景
経済指標や売上のような時系列データの多くは、値そのものにトレンドがあり平均や分散が時間とともに変化する非定常な性質を持ち、単純な回帰では扱いにくかった。 ARIMAは、差分によって時系列を定常化したうえで自己回帰・移動平均を適用することで、こうした非定常な時系列にも統一的な枠組みで対応できるよう整備された。
歴史
1970年: George BoxとGwilym Jenkinsが著書「Time Series Analysis: Forecasting and Control」でARIMAモデルとそのパラメータ同定・推定手順(Box-Jenkins法)を体系化。
アーキテクチャ
ARIMAは、指定した階数だけ差分を取った系列に対し、自己回帰項(過去の値の線形結合)と移動平均項(過去の予測誤差の線形結合)を適用するモデル。 自己回帰の次数・差分の階数・移動平均の次数という3つのパラメータは、自己相関関数(ACF)・偏自己相関関数(PACF)のプロットや、AIC・BICといった情報量規準を用いて選定される。
ワークフロー
時系列データの定常性を確認し、非定常であれば差分を取って定常化する → ACF・PACFのプロットから自己回帰・移動平均の次数の候補を絞り込む → 候補パラメータで学習し、AIC・BIC等で比較して決定する → 残差の白色雑音性を診断する → 学習済みモデルで将来値を予測する。
コード例
statsmodelsでARIMAモデルを学習・予測する
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(series, order=(2, 1, 2)) # p=2, d=1, q=2
fitted = model.fit()
forecast = fitted.forecast(steps=7)利点
- 少ないデータ量・計算資源でも学習・予測が可能
- パラメータやモデルの前提が明確で、予測結果の解釈がしやすい
- 定常性の低い時系列でも、差分によって扱いやすい形に変換できる
欠点
- 季節性や外部要因を扱うにはSARIMA・ARIMAX等への拡張が必要で、素のARIMAでは表現力に限界がある
- 非線形な依存関係やRNN・Transformerが捉えるような複雑なパターンは学習しにくい
- 各パラメータの選定に、系列ごとの分析・試行錯誤が必要になる場合がある
比較
関連用語
よくある質問
ARIMAは今も使われている?
深層学習モデルに置き換えられる場面もあるが、データ量が少ない場合や、予測結果の解釈性が重視される需要予測・経済分析等では今も広く使われている。
ARIMAとSARIMAの違いは?
SARIMA(Seasonal ARIMA)は、ARIMAに季節周期を持つ変動を扱う季節成分を追加した拡張版。週次・月次・年次といった周期性を持つ時系列に対応できる。
参考文献
- Documentationstatsmodels: ARIMA Model