9.8 予測

点予測

ここまでの事例でARIMAモデルから予測を計算してきましたが、予測がどのように得られるのかはまだ述べていませんでした。点予測は以下の3つのステップに従うことで計算できます。

  1. ARIMA方程式を展開して、\(y_t\)が左辺に、その他の全ての項は右辺に来るようにする。
  2. \(t\)\(T+h\)に入れ替えて、方程式を書き直す。
  3. 方程式右辺の、将来の観測値を予測に、将来の誤差はゼロに、過去の誤差は対応する残差に、入れ替える。

\(h=1\)から始めて、全ての予測を計算するまで、\(h=2,3,\dots\)でこれらのステップを繰り返す。

この手順は例で見るのが一番分かりやすいでしょう。以下のように書けるARIMA(3,1,1)モデルを使って、例示してみましょう。 \[ (1-\hat{\phi}_1B -\hat{\phi}_2B^2-\hat{\phi}_3B^3)(1-B) y_t = (1+\hat{\theta}_1B)\varepsilon_{t} \] ここから左辺を展開して、以下を得ます。 \[ \left[1-(1+\hat{\phi}_1)B +(\hat{\phi}_1-\hat{\phi}_2)B^2 + (\hat{\phi}_2-\hat{\phi}_3)B^3 +\hat{\phi}_3B^4\right] y_t = (1+\hat{\theta}_1B)\varepsilon_{t} \] 後方シフト演算子を計算すると、以下のようになります。 \[ y_t - (1+\hat{\phi}_1)y_{t-1} +(\hat{\phi}_1-\hat{\phi}_2)y_{t-2} + (\hat{\phi}_2-\hat{\phi}_3)y_{t-3} +\hat{\phi}_3y_{t-4} = \varepsilon_t+\hat{\theta}_1\varepsilon_{t-1} \] 最後に、\(y_t\)以外の全ての項を右辺に移します。 \[\begin{equation} \tag{9.5} y_t = (1+\hat{\phi}_1)y_{t-1} -(\hat{\phi}_1-\hat{\phi}_2)y_{t-2} - (\hat{\phi}_2-\hat{\phi}_3)y_{t-3} -\hat{\phi}_3y_{t-4} + \varepsilon_t+\hat{\theta}_1\varepsilon_{t-1} \end{equation}\] これで1.のステップは完了です。方程式は今やARIMA(4,0,1)のように見えますが、依然として、そこから始めたARIMA(3,1,1)モデルのままです。係数が定常性制約を満たさないので、ARIMA(4,0,1)と考えることはできません。

2.のステップで、(9.5)式の\(t\)\(T+1\)に入れ替えます。 \[ y_{T+1} = (1+\hat{\phi}_1)y_{T} -(\hat{\phi}_1-\hat{\phi}_2)y_{T-1} - (\hat{\phi}_2-\hat{\phi}_3)y_{T-2} -\hat{\phi}_3y_{T-3} + \varepsilon_{T+1}+\hat{\theta}_1\varepsilon_{T} \] \(T\)時点までの観測値があると想定すると、\(\varepsilon_{T+1}\)\(\varepsilon_T\)を除いて、右辺の全ての値は既知です。そして、\(\varepsilon_{T+1}\)はゼロに、\(\varepsilon_T\)は最後の観測値の残差\(e_T\)に入れ替えます。 \[ \hat{y}_{T+1|T} = (1+\hat{\phi}_1)y_{T} -(\hat{\phi}_1-\hat{\phi}_2)y_{T-1} - (\hat{\phi}_2-\hat{\phi}_3)y_{T-2} -\hat{\phi}_3y_{T-3} + \hat{\theta}_1e_{T} \]

(9.5)式で\(t\)\(T+2\)に入れ替えることで、\(y_{T+2}\)の予測が得られます。\(y_{T+1}\)\(\varepsilon_{T+2}\)\(\varepsilon_{T+1}\)を除いて、右辺の全ての値は既知です。そして、\(y_{T+1}\)\(\hat{y}_{T+1|T}\)に、\(\varepsilon_{T+2}\)\(\varepsilon_{T+1}\)は両方ともゼロに入れ替えます。 \[ \hat{y}_{T+2|T} = (1+\hat{\phi}_1)\hat{y}_{T+1|T} -(\hat{\phi}_1-\hat{\phi}_2)y_{T} - (\hat{\phi}_2-\hat{\phi}_3)y_{T-1} -\hat{\phi}_3y_{T-2} \]

将来の全ての時点に至るまでこのプロセスを続けます。こうして、点予測がいくらでも得られます。

区間予測

ARIMAの区間予測の計算はより複雑で、詳細はおおむね本書の範囲を超えています。ここでは、いくつか単純な例を示すに留めます。

1期先の区間予測の計算は容易です。\(\hat{\sigma}\)を残差の標準偏差とすると、95%区間予測は\(\hat{y}_{T+1|T} \pm 1.96\hat{\sigma}\)となります。この結果は、パラメータや次数にかかわらず全てのARIMAモデルに当てはまります。

ARIMA(0,0,\(q\))モデルの複数期先の区間予測は、比較的計算が容易です。モデルは以下のように書けます。 \[ y_t = \varepsilon_t + \sum_{i=1}^q \theta_i \varepsilon_{t-i} \] ここから、予測分散の推計値は以下のように書けます。 \[ \hat\sigma_h^2 = \hat{\sigma}^2 \left[ 1 + \sum_{i=1}^{h-1} \hat{\theta}_i^2\right], \qquad\text{for $h=2,3,\dots$} \] すると、95%区間予測は\(\hat{y}_{T+h|T} \pm 1.96\hat\sigma_h\)となります。

9.4節で、AR(1)モデルはMA(\(\infty\))モデルとして書くことができることを示しました。この同値関係から、MA(\(q\))モデルの上記結果をAR(1)モデルの区間予測を得るためにも使うことができます。

ARIMA(\(p,d,q\))モデルの複数期先の区間予測のより一般的な結果や、他の特殊ケースは、 Brockwell & Davis (2016) のようなより高度な教科書に記載があります。

ARIMAモデルの区間予測は、残差は無相関かつ正規分布という想定に基づいています。これら想定のいずれかでも破られれば、区間予測は不正確になり得ます。この理由から、区間予測を生成する前に、想定をチェックするために残差のACFプロットとヒストグラムを常に描くべきです。

残差が無相関ではあるが正規分布ではない場合は、替わって、5.5節で議論したブートストラップによる区間を得ることができます。forecast()関数の中にbootstrap=TRUEを加えるだけで、簡単に行えます。

一般的に、ARIMAモデルからの区間予測は、予測期間が延びるほど広がります。定常なモデル(つまり\(d=0\)なモデル)は収束するので、区間予測は長い先では全て本質的に同一になります。\(d\ge1\)なモデルでは、区間予測は将来にわたって広がり続けます。

ほとんどの区間予測の計算と同様、ARIMAに基づく区間は狭くなり過ぎる傾向があります。考慮しているのが誤差の振れだけだからです。パラメータの推計値やモデルの次数にも振れがありますが、計算に入れていません。加えて、モデル化された過去のパターンが予測期間でも続くと想定して計算しています。

参考文献

Brockwell, P. J., & Davis, R. A. (2016). Introduction to time series and forecasting (3rd ed). Springer. [Amazon]