RでARIMAモデルを使った予測方法
実習

Rの内蔵データUKDriverDeathsは、1969年から1984年までのイギリスの月別運転手死亡者数に関するデータだ。一見すると季節性アリマモデルに従っており、実際にモデルを見つけることはそれほど難しくない。

しかし、最終的に得たモデルの式を直接使って計算するのは、非常に手間がかかり複雑だ。だからpredict()関数を使う。
n.aheadオプションを通して、どれくらい先まで予測するかを決めることができ、- 予測値
$pred와 - 표준오차
$seを使って予測区間を見つけることもできる。

可視化
可能なこととは別に、予測区間を描くコードを実際に書くこともかなり面倒だが、幸いにもTSAパッケージを使用しているなら、plot()関数だけで簡単に予測区間を描くことができる。

以下は便利に使えるいくつかのオプションだ:
n.ahead:predict()関数でと同様に、どれくらい先まで予測するかを決める。n1: プロットをどこから始めるかを決める。- newxreg: 時系列回帰分析をするときに必要なデータを与える。
ちなみにplot()関数自体も、予測値と予測区間をリターンする。残念ながら予測区間の信頼水準を決めるオプションはないので、変えたい場合は面倒でもpredict()関数を通して直接描くしかない。
注意事項
一方で、arima()で得たモデルではなくauto.arima()で得たモデルをplot()に直接入れると、次のような(我々があまり望まない)図が描かれる。これはエラーではなく、arima()とauto.arima()の違いによって異なる結果を得たためだ。この事実を知っているだけでも、例を探したりパッケージを再びインストールする手間を省けるので、このような形の図を覚えておくことを強く勧める。

コード
library(TSA)
win.graph(6,4); plot(UKDriverDeaths,main='UKDriverDeaths')
out<-arima(UKDriverDeaths,order=c(1,0,1)
,seasonal = list(order=c(1,0,1),period=12)); out
predict(out,n.ahead = 24)
win.graph(6,4); plot(out,n.ahead = 24, type='l'
,n1=1980, main='95% 예측구간')
library(forecast)
wrong<-auto.arima(UKDriverDeaths); summary(wrong)
win.graph(6,4); plot(wrong)
