SSブログ

時系列解析 季節調整済みARIMAモデルを推定 [時系列解析 / 需要予測]

Rのパッケージをインストールするとついてくる有名な時系列のデータAirPassengersがあります。



data(AirPassengers)
plot(AirPassengers)




このような時系列データは、企業の売上データとしてよく見るかと思います。
特徴としては、
・はっきりとした季節性がみられる
・時間とともに売上や人数といった(平均値)が大きくなる
・時間とともに売上や人数といった(分散)が大きくなる
となっています。

時系列においては、定常か非定常かがとても重要で、このデータは明らかに非定常の時系列となっています。

このようなデータを季節調整済みARIMA(SARIMA)を使って時系列分析を行っていきます。
SPSS ModelerにもARIMAが実装されているので、同様のアプローチで分析が可能です。

この様な時系列データを分析する手順としては、
1. logで置換
2. 自己相関と偏相関を確認する
3. 階差を取って、自己相関と偏相関を確認する
4. 季節階差を取って、自己相関と偏相関を確認する
5. SARIMA(0,1,1)(0,1,1)でフィッティング
6. 予測をする
となります。

SARIMA(0,1,1)(0,1,1)は別名、エアラインモデルとも呼ばれているそうです。

## 1. logで置換
## 2. 自己相関と偏相関を確認する
par(mfrow=c(2,2))
plot(AirPassengers)
plot(log(AirPassengers))
acf(log(AirPassengers))
acf(log(AirPassengers),type="partial")
 
airline <- log(AirPassengers)




左上:元の時系列
右上:元の時系列のlogを取ったもの
左下:自己相関
右下:偏自己相関

自己相関を見ると、1期前,2期前,3期前,・・・,n期前の情報がダラダラと残っていることがわかります。
偏相関を見ると、ちょうど1年前の相関がありますが、それ以外の相関は消えていることが分かります。

acfのオプション type="partial" で偏自己相関をプロットできます。
オプション一覧はこちら。
 type="correlation" :自己相関(デフォルト)
 type="covariance":自己共分散
 type="partial":偏相関

## 3. 階差を取って、自己相関と偏相関を確認する
par(mfrow=c(1,2))
acf(diff(airline),ylim=c(-0.5,1.0))
acf(diff(airline),type="partial", ylim=c(-0.5,1.0))




## 4. 季節階差を取って、自己相関と偏相関を確認する
par(mfrow=c(1,2))
acf(diff(diff(airline),lag=12),ylim=c(-0.5,1.0))
acf(diff(diff(airline),lag=12),type="partial", ylim=c(-0.5,1.0))




## 5. SARIMA(0,1,1)(0,1,1)でフィッティング
fit <- arima(airline, order=c(0,1,1), seasonal=list(order=c(0,1,1),period=12))
tsdiag(fit, gof.lag=12)




## 6. 予測をする
predict(fit, n.ahead=12)




nice!(1)  コメント(0) 
共通テーマ:学問

nice! 1

コメント 0