Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

ARIMAモデル

Box-Jenkins法

Box-Jenkins法は、時系列データの分析のフレームワーク。

以下の手順で分析を行う

  1. データを分析しやすくなるよう変換する(定常過程にする)

  2. ARIMAモデル系のモデルを適用する

  3. モデルの適合性を評価する

  4. モデルを用いて予測する

AR過程

自己回帰(AR)過程 (autoregressive process)は、過程が自身の過去に回帰された形で表現される過程。

1次AR過程 AR(1)\text{AR}(1)
yt=c+ϕ1yt−1+εt,εt∼ W.N. (σ2)y_t=c+\phi_1 y_{t-1}+\varepsilon_t, \quad \varepsilon_t \sim \text { W.N. }(\sigma^2)
  • cc:定数項

  • ϕ1\phi_1:係数

一般のpp次AR過程は次のように表される。

特性方程式と定常性

ARモデルは常に定常になるとは限らない。定常性をもつ条件は、AR(1)\text{AR}(1)なら∣ϕ1∣<1|\phi_1| < 1となる。

一般のAR(p)\text{AR}(p) 過程では

yt=c+ϕ1yt−1+ϕ2yt−2+⋯+ϕpyt−p+εty_t = c + \phi_1 y_{t-1} + \phi_2 y_{t-2} + \cdots + \phi_p y_{t-p} + \varepsilon_t

ラグ作用素LLを用いると

(1−ϕ1L−ϕ2L2−⋯−ϕpLp)yt=c+εt\left(1 - \phi_1 L - \phi_2 L^2 - \cdots - \phi_p L^p\right) y_t = c + \varepsilon_t

この多項式をϕ(L)\phi(L)とすると、特性方程式は

ϕ(z)=1−ϕ1z−ϕ2z2−⋯−ϕpzp=0\phi(z) = 1 - \phi_1 z - \phi_2 z^2 - \cdots - \phi_p z^p = 0

AR(p)過程が定常であるための条件は、特性方程式の全ての根が単位円の外側にあること。つまり、すべての根ziz_iについて∣zi∣>1|z_i| > 1が成り立つ必要がある。

MA過程

移動平均(MA)過程 (moving average process) はホワイトノイズW.N.\text{W.N.}の線形和による過程。

1次MA過程MA(1)MA(1)
yt=μ+εt+θ1εt−1,εt∼W.N.(σ2)y_t=\mu+\varepsilon_t+\theta_1 \varepsilon_{t-1}, \quad \varepsilon_t \sim \text{W.N.}(\sigma^2)

t−1t-1時点は yt−1=μ+εt−1+θ1εt−2y_{t-1}=\mu+\varepsilon_{t-1}+\theta_1 \varepsilon_{t-2} となり、yty_tと共通する εt−1\varepsilon_{t-1} を含むため、yty_tとyt−1y_{t-1}の間の自己相関を表現するモデルとなる。θ1\theta_1が自己相関の強さを表す。

ラグ作用素を用いると

yt=μ+θ(L)εt=μ+(1+θ1L+θ2L2+⋯+θqLq)εty_t = \mu + \theta(L) \varepsilon_t = \mu + (1 + \theta_1 L + \theta_2 L^2 + \cdots + \theta_q L^q) \varepsilon_t

MA過程の性質

  • 常に定常: MA過程は常に定常である(ホワイトノイズの有限和であり、定常過程の和は定常過程になるため)

  • 有限の自己共分散: ラグqqより大きいラグでは自己共分散が0になる

  • 反転可能性: MA過程をAR表現に変換できる条件として、特性方程式θ(z)=0\theta(z) = 0の全ての根が単位円の外側にある必要がある

MA(1)過程の自己共分散

MA(1)過程 yt=μ+εt+θ1εt−1y_t = \mu + \varepsilon_t + \theta_1 \varepsilon_{t-1} の自己共分散は

γ(k)={(1+θ12)σ2k=0θ1σ2k=10k≥2\gamma(k) = \begin{cases} (1 + \theta_1^2)\sigma^2 & k = 0 \\ \theta_1 \sigma^2 & k = 1 \\ 0 & k \geq 2 \end{cases}

ARMAモデル

自己回帰移動平均(ARMA)過程 はARモデルとMAモデルを組み合わせたモデル。

ラグ作用素を用いると

ϕ(L)yt=c+θ(L)εt\phi(L) y_t = c + \theta(L) \varepsilon_t

ARMAモデルの定常性と反転可能性

  • 定常性: AR部分の特性方程式ϕ(z)=0\phi(z) = 0の全ての根が単位円の外側にあること

  • 反転可能性: MA部分の特性方程式θ(z)=0\theta(z) = 0の全ての根が単位円の外側にあること

モデル選択

適切なARMAモデルの次数(p, q)を選択するために以下の方法を用いる:

  • ACF (自己相関関数): MA次数qの決定に有用(ラグqより後で急激に減衰)

  • PACF (偏自己相関関数): AR次数pの決定に有用(ラグpより後で急激に減衰)

  • 情報量基準: AIC(赤池情報量基準)、BIC(ベイズ情報量基準)などを用いてモデルを比較

ARIMAモデル

自己回帰和分移動平均(ARIMA)過程 は非定常時系列をモデル化するために、差分化を組み込んだモデル。ARIMA(p, d, q)過程は以下のように定義される:

ϕ(L)(1−L)dyt=c+θ(L)εt\phi(L) (1-L)^d y_t = c + \theta(L) \varepsilon_t

ここで

  • pp: AR次数(自己回帰の次数)

  • dd: 差分の次数(和分の次数)

  • qq: MA次数(移動平均の次数)

  • (1−L)d(1-L)^d: d階差分作用素

差分化による定常化

非定常な時系列データに対して、d階差分をとることで定常時系列に変換する:

  • 1階差分: ∇yt=yt−yt−1=(1−L)yt\nabla y_t = y_t - y_{t-1} = (1-L)y_t

  • 2階差分: ∇2yt=∇yt−∇yt−1=(1−L)2yt\nabla^2 y_t = \nabla y_t - \nabla y_{t-1} = (1-L)^2 y_t

ARIMAモデルの構築手順

  1. 定常性の確認:

    • 時系列プロットの目視確認

    • 単位根検定(ADF検定、KPSS検定など)

  2. 差分化: 非定常の場合、適切な次数dで差分化

  3. 次数の決定:

    • ACF、PACFの確認

    • 情報量基準(AIC、BIC)による比較

  4. パラメータの推定: 最尤法などによる推定

  5. 診断チェック:

    • 残差の正規性検定

    • 残差の自己相関チェック(Ljung-Box検定)

SARIMAモデル

季節性自己回帰和分移動平均(SARIMA)過程 は、季節性を持つ時系列データをモデル化するためにARIMAモデルを拡張したもの。SARIMA(p, d, q)(P, D, Q)ₛ と表記される。

ϕ(L)Φ(Ls)(1−L)d(1−Ls)Dyt=c+θ(L)Θ(Ls)εt\phi(L)\Phi(L^s)(1-L)^d(1-L^s)^D y_t = c + \theta(L)\Theta(L^s)\varepsilon_t

ここで

  • (p,d,q)(p, d, q): 非季節部分の次数

  • (P,D,Q)(P, D, Q): 季節部分の次数

  • ss: 季節の周期(例:月次データなら12、四半期データなら4)

  • Φ(Ls)\Phi(L^s): 季節AR多項式

  • Θ(Ls)\Theta(L^s): 季節MA多項式

  • (1−Ls)D(1-L^s)^D: 季節差分作用素

季節差分

季節性を除去するために季節差分を適用する:

  • 季節差分: ∇syt=yt−yt−s=(1−Ls)yt\nabla_s y_t = y_t - y_{t-s} = (1-L^s)y_t

  • 例:月次データの場合、∇12yt=yt−yt−12\nabla_{12} y_t = y_t - y_{t-12}

SARIMAモデルの例

月次販売データでSARIMA(1,1,1)(1,1,1)₁₂ を考えると:

  • 非季節部分: AR(1), 1階差分, MA(1)

  • 季節部分: 季節AR(1), 季節1階差分, 季節MA(1), 周期12

モデル選択のポイント

  • 季節ACF/PACF: 季節ラグ(s, 2s, 3s, ...)での挙動を確認

  • 段階的な差分化: まず季節差分、次に通常差分を適用

  • 情報量基準: 複数のモデル候補を比較してAIC/BICが最小のモデルを選択

実装

AutoArima

Arimaの次数はハイパーパラメータなので、最適な次数を探す必要がある。
その探索を自動でやる(AICなどの基準を元に最適化する)アルゴリズムの総称がAutoARIMA

Pythonによる実装例

以下では、statsmodelsライブラリを用いたARIMAモデルの実装例を示す。

Source

データの生成と定常性の確認

Source
<Figure size 800x400 with 1 Axes>
Source
ADF Test: Original Series
ADF Statistic: 0.0271
p-value: 0.9607
Critical Values:
  1%: -3.4658
  5%: -2.8771
  10%: -2.5751
=> 帰無仮説を棄却できない: データは非定常

差分化と ACF/PACF の確認

Source
ADF Test: 1st Difference
ADF Statistic: -9.4658
p-value: 0.0000
Critical Values:
  1%: -3.4660
  5%: -2.8772
  10%: -2.5751
=> 帰無仮説を棄却: データは定常

<Figure size 800x400 with 4 Axes>

ARIMAモデルの適合

Source
Training set size: 160
Test set size: 40
                               SARIMAX Results                                
==============================================================================
Dep. Variable:                  value   No. Observations:                  160
Model:                 ARIMA(1, 1, 1)   Log Likelihood                -454.238
Date:                Wed, 22 Oct 2025   AIC                            914.475
Time:                        23:49:06   BIC                            923.682
Sample:                    01-31-2000   HQIC                           918.214
                         - 04-30-2013                                         
Covariance Type:                  opg                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
ar.L1          0.5562      0.179      3.108      0.002       0.206       0.907
ma.L1         -0.2064      0.219     -0.944      0.345      -0.635       0.222
sigma2        17.7209      2.259      7.845      0.000      13.293      22.149
===================================================================================
Ljung-Box (L1) (Q):                   0.40   Jarque-Bera (JB):                 0.98
Prob(Q):                              0.53   Prob(JB):                         0.61
Heteroskedasticity (H):               1.35   Skew:                            -0.05
Prob(H) (two-sided):                  0.28   Kurtosis:                         2.63
===================================================================================

Warnings:
[1] Covariance matrix calculated using the outer product of gradients (complex-step).
<Figure size 800x400 with 4 Axes>

予測と評価

Source
<Figure size 800x300 with 1 Axes>
Mean Squared Error (MSE): 107.1315
Root Mean Squared Error (RMSE): 10.3504
Mean Absolute Error (MAE): 8.5531

SARIMAモデルの適合例

                                     SARIMAX Results                                      
==========================================================================================
Dep. Variable:                              value   No. Observations:                  160
Model:             SARIMAX(1, 1, 1)x(1, 1, 1, 12)   Log Likelihood                -284.837
Date:                            Wed, 22 Oct 2025   AIC                            579.675
Time:                                    23:49:10   BIC                            594.127
Sample:                                01-31-2000   HQIC                           585.548
                                     - 04-30-2013                                         
Covariance Type:                              opg                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
ar.L1         -0.1455      0.100     -1.462      0.144      -0.341       0.050
ma.L1         -0.9770      0.060    -16.317      0.000      -1.094      -0.860
ar.S.L12      -0.1585      0.098     -1.621      0.105      -0.350       0.033
ma.S.L12      -0.9420      0.337     -2.798      0.005      -1.602      -0.282
sigma2         3.4912      1.114      3.134      0.002       1.308       5.675
===================================================================================
Ljung-Box (L1) (Q):                   0.21   Jarque-Bera (JB):                 0.07
Prob(Q):                              0.65   Prob(JB):                         0.96
Heteroskedasticity (H):               1.42   Skew:                             0.05
Prob(H) (two-sided):                  0.24   Kurtosis:                         3.06
===================================================================================

Warnings:
[1] Covariance matrix calculated using the outer product of gradients (complex-step).
Source
<Figure size 800x300 with 1 Axes>
ARIMA Model:
  RMSE: 10.3504
  MAE: 8.5531

SARIMA Model:
  RMSE: 1.6979
  MAE: 1.3390