RでARIMAモデルを使用して時系列分析をする方法
実習
Rで組み込まれたデータWWWusage
を読み込んでグラフを描いてみよう。
WWWusage
は、昔のインターネットにアクセスしていたユーザー数を示す時系列データで、その傾向を理解するためには時系列分析が必要だ。時系列分析の中で最も代表的なモデルはARIMAモデルだが、同じARIMAモデルでも実際に適切なモデルを見つける方法は複数ある。
幸い、Rではforecast
パッケージのauto.arima()
関数を使って簡単かつ迅速にまともなモデルを得ることができる。正しい分析とは言えないが、シンプルな分析であればこの関数を使うだけでも分析の半分以上が終わる。auto.arima()
は変数選択基準と変数選択手順に従って最適なモデルを見つけてくれる。
もちろんこれが最高、最良のモデルというわけではないので、分析者はデータを正確に理解し、それに合ったモデルを探し続ける必要がある。熟練した分析者にもある程度の結果を得ることができる点は十分に有用だが、auto.arima()
に依存する態度は避けるべきだ。
注意事項
注意すべき点として、ARIMAモデルは定常性を満たすデータに対する結果を出すが、$ARIMA ( p , d , q )$ から $d$ が必要な差分の回数であること。つまり、データに変換が必要な場合は、auto.arima()
に入れる前に変換をしなければならないが、差分が必要なデータでもauto.arima()
に入れる前に差分をしてはいけない。もちろん適切に差分をすることで、対応するARMAモデル $ARMA(p,q)$ を得ることができる。複雑に聞こえるかもしれないが、理解が難しい場合は、次の簡単なルール2つだけを考えよう:(1) 変換が必要な場合、auto.arima()
に入れる前に変換をしなければならない。(2) 差分が必要な場合、auto.arima()
に入れる前に差分をしてはいけない。
確認
得られたモデルが実際のデータをどれくらいうまく説明しているか確認してみよう。黒い実線が実際のデータで、赤い実線が適合値だ。データは簡単なものだが、モデルがデータをうまく説明していることがわかる。
コード
install.packages("forecast")
library(forecast)
win.graph(6,3); WWWusage; plot(WWWusage,main='WWWusage\')
out<-auto.arima(WWWusage); out
summary(out)
win.graph(6,3); WWWusage; plot(WWWusage,main='WWWusage\')
lines(out$fitted,col='red')