時系列データ分析(2)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[時系列データ分析]]
*モデル選択の実際 [#c66db483]
[[Kleiber&Zeileis[2008]>http://www.amazon.co.jp/dp/0387...
AERのインストールが終わったとしましょう(2008年以降、並...
(インストールした場所)\R-2.8.0\library\AER\demo\Ch-TimeS...
にあります。
###################################################
### chunk number 25: arima-setup
###################################################
nd_pars <- expand.grid(ar = 0:2, diff = 1, ma = 0:2,
sar = 0:1, sdiff = 1, sma = 0:1)
nd_aic <- rep(0, nrow(nd_pars))
for(i in seq(along = nd_aic)) nd_aic[i] <- AIC(arima(nd,
unlist(nd_pars[i, 1:3]), unlist(nd_pars[i, 4:6])),
k = log(length(nd)))
nd_pars[which.min(nd_aic),]
これが該当部分ですが、これだけでは動きません。(AERとtse...
library("AER")
library("tseries")
data("UKNonDurables")
nd <- window(log(UKNonDurables), end = c(1970, 4))
nd_pars <- expand.grid(ar = 0:2, diff = 1, ma = 0:2,
sar = 0:1, sdiff = 1, sma = 0:1)
nd_aic <- rep(0, nrow(nd_pars))
for(i in seq(along = nd_aic)) nd_aic[i] <- AIC(arima(nd,
unlist(nd_pars[i, 1:3]), unlist(nd_pars[i, 4:6])),
k = log(length(nd)))
nd_pars[which.min(nd_aic),]
UKNonDurablesはAERに収録されているイギリス非耐久消費財...
先に書いておきますが、UKNonDurablesには強い上方トレンド...
では、細かく注釈を入れていきます。
library("AER")
library("tseries")
AERとtseriesをロードします。必要なパッケージも、インス...
data("UKNonDurables")
複数のデータセットを切り替えて使うときなどに便利な命令...
nd <- window(log(UKNonDurables), end = c(1970, 4))
windowは時系列データの一部を切り出す命令。伸び率が一定...
岡部先生の名前も出ているので早苗雅史先生の[[数学玉手箱>...
nd_pars <- expand.grid(ar = 0:2, diff = 1, ma = 0:2,
sar = 0:1, sdiff = 1, sma = 0:1)
helpファイルによるとexpand.gridは「Create a Data Frame ...
nd_pars
とすると、その内容はこう表示されます。
ar diff ma sar sdiff sma
1 0 1 0 0 1 0
2 1 1 0 0 1 0
3 2 1 0 0 1 0
4 0 1 1 0 1 0
5 1 1 1 0 1 0
6 2 1 1 0 1 0
7 0 1 2 0 1 0
8 1 1 2 0 1 0
9 2 1 2 0 1 0
10 0 1 0 1 1 0
11 1 1 0 1 1 0
12 2 1 0 1 1 0
13 0 1 1 1 1 0
14 1 1 1 1 1 0
15 2 1 1 1 1 0
16 0 1 2 1 1 0
17 1 1 2 1 1 0
18 2 1 2 1 1 0
19 0 1 0 0 1 1
20 1 1 0 0 1 1
21 2 1 0 0 1 1
22 0 1 1 0 1 1
23 1 1 1 0 1 1
24 2 1 1 0 1 1
25 0 1 2 0 1 1
26 1 1 2 0 1 1
27 2 1 2 0 1 1
28 0 1 0 1 1 1
29 1 1 0 1 1 1
30 2 1 0 1 1 1
31 0 1 1 1 1 1
32 1 1 1 1 1 1
33 2 1 1 1 1 1
34 0 1 2 1 1 1
35 1 1 2 1 1 1
36 2 1 2 1 1 1
マニュアルを読んでもわからないことが、こうして中身を出...
nd_aic <- rep(0, nrow(nd_pars))
repはrepeat。nrowはnumber of rowsで、行列の行数(いまは3...
for(i in seq(along = nd_aic)) nd_aic[i] <- AIC(arima(nd,
unlist(nd_pars[i, 1:3]), unlist(nd_pars[i, 4:6])),
k = log(length(nd)))
help(for)では結果が出てきません。help("for")にするとCon...
seq(along=nd_aic)というのはnd_aicの要素をひとつずつ処理...
for(i in 36)
ではなく
for(i in 1:36)
と書きます。
さて。いよいよAIC関数が出てきました。ndは最初のほうで19...
arima()のマニュアルを読み返しましたが、orderとseasonal...
さて。''じつはこのスクリプトではAICは計算できない''とい...
最後に「k = log(length(nd))」がついていますが、これはar...
kの指定を削ればAICで大きさを比較することになります。や...
さて、モデル選択もも大詰めです。
nd_pars[which.min(nd_aic),]
選択はあっけなく1行です。nd_parsは6列ありましたが、ここ...
さて、これで解説は終わりました。でもひとつ心残りがあり...
まあd=0はありえないとして、pとqであと9通り。ところがexp...
下にリストを掲げますから、どこが違うか読んでみてくださ...
library("AER")
library("tseries")
data("UKNonDurables")
nd <- window(log(UKNonDurables), end = c(1970, 4))
nd_pars <- expand.grid(ar = 0:2, diff = 1, ma = 0:2,
sar = 0:1, sdiff = 1, sma = 0:1)
nd_aic <- rep(0, 45)
for(i in 1:36) nd_aic[i] <- AIC(arima(nd,
unlist(nd_pars[i, 1:3]), unlist(nd_pars[i, 4:6])),
k = log(length(nd)))
for(i in 37:45) nd_aic[i] <- AIC(arima(nd,
unlist(nd_pars[i-36, 1:3])),
k = log(length(nd)))
nd_pars[which.min(nd_aic),]
終了行:
[[時系列データ分析]]
*モデル選択の実際 [#c66db483]
[[Kleiber&Zeileis[2008]>http://www.amazon.co.jp/dp/0387...
AERのインストールが終わったとしましょう(2008年以降、並...
(インストールした場所)\R-2.8.0\library\AER\demo\Ch-TimeS...
にあります。
###################################################
### chunk number 25: arima-setup
###################################################
nd_pars <- expand.grid(ar = 0:2, diff = 1, ma = 0:2,
sar = 0:1, sdiff = 1, sma = 0:1)
nd_aic <- rep(0, nrow(nd_pars))
for(i in seq(along = nd_aic)) nd_aic[i] <- AIC(arima(nd,
unlist(nd_pars[i, 1:3]), unlist(nd_pars[i, 4:6])),
k = log(length(nd)))
nd_pars[which.min(nd_aic),]
これが該当部分ですが、これだけでは動きません。(AERとtse...
library("AER")
library("tseries")
data("UKNonDurables")
nd <- window(log(UKNonDurables), end = c(1970, 4))
nd_pars <- expand.grid(ar = 0:2, diff = 1, ma = 0:2,
sar = 0:1, sdiff = 1, sma = 0:1)
nd_aic <- rep(0, nrow(nd_pars))
for(i in seq(along = nd_aic)) nd_aic[i] <- AIC(arima(nd,
unlist(nd_pars[i, 1:3]), unlist(nd_pars[i, 4:6])),
k = log(length(nd)))
nd_pars[which.min(nd_aic),]
UKNonDurablesはAERに収録されているイギリス非耐久消費財...
先に書いておきますが、UKNonDurablesには強い上方トレンド...
では、細かく注釈を入れていきます。
library("AER")
library("tseries")
AERとtseriesをロードします。必要なパッケージも、インス...
data("UKNonDurables")
複数のデータセットを切り替えて使うときなどに便利な命令...
nd <- window(log(UKNonDurables), end = c(1970, 4))
windowは時系列データの一部を切り出す命令。伸び率が一定...
岡部先生の名前も出ているので早苗雅史先生の[[数学玉手箱>...
nd_pars <- expand.grid(ar = 0:2, diff = 1, ma = 0:2,
sar = 0:1, sdiff = 1, sma = 0:1)
helpファイルによるとexpand.gridは「Create a Data Frame ...
nd_pars
とすると、その内容はこう表示されます。
ar diff ma sar sdiff sma
1 0 1 0 0 1 0
2 1 1 0 0 1 0
3 2 1 0 0 1 0
4 0 1 1 0 1 0
5 1 1 1 0 1 0
6 2 1 1 0 1 0
7 0 1 2 0 1 0
8 1 1 2 0 1 0
9 2 1 2 0 1 0
10 0 1 0 1 1 0
11 1 1 0 1 1 0
12 2 1 0 1 1 0
13 0 1 1 1 1 0
14 1 1 1 1 1 0
15 2 1 1 1 1 0
16 0 1 2 1 1 0
17 1 1 2 1 1 0
18 2 1 2 1 1 0
19 0 1 0 0 1 1
20 1 1 0 0 1 1
21 2 1 0 0 1 1
22 0 1 1 0 1 1
23 1 1 1 0 1 1
24 2 1 1 0 1 1
25 0 1 2 0 1 1
26 1 1 2 0 1 1
27 2 1 2 0 1 1
28 0 1 0 1 1 1
29 1 1 0 1 1 1
30 2 1 0 1 1 1
31 0 1 1 1 1 1
32 1 1 1 1 1 1
33 2 1 1 1 1 1
34 0 1 2 1 1 1
35 1 1 2 1 1 1
36 2 1 2 1 1 1
マニュアルを読んでもわからないことが、こうして中身を出...
nd_aic <- rep(0, nrow(nd_pars))
repはrepeat。nrowはnumber of rowsで、行列の行数(いまは3...
for(i in seq(along = nd_aic)) nd_aic[i] <- AIC(arima(nd,
unlist(nd_pars[i, 1:3]), unlist(nd_pars[i, 4:6])),
k = log(length(nd)))
help(for)では結果が出てきません。help("for")にするとCon...
seq(along=nd_aic)というのはnd_aicの要素をひとつずつ処理...
for(i in 36)
ではなく
for(i in 1:36)
と書きます。
さて。いよいよAIC関数が出てきました。ndは最初のほうで19...
arima()のマニュアルを読み返しましたが、orderとseasonal...
さて。''じつはこのスクリプトではAICは計算できない''とい...
最後に「k = log(length(nd))」がついていますが、これはar...
kの指定を削ればAICで大きさを比較することになります。や...
さて、モデル選択もも大詰めです。
nd_pars[which.min(nd_aic),]
選択はあっけなく1行です。nd_parsは6列ありましたが、ここ...
さて、これで解説は終わりました。でもひとつ心残りがあり...
まあd=0はありえないとして、pとqであと9通り。ところがexp...
下にリストを掲げますから、どこが違うか読んでみてくださ...
library("AER")
library("tseries")
data("UKNonDurables")
nd <- window(log(UKNonDurables), end = c(1970, 4))
nd_pars <- expand.grid(ar = 0:2, diff = 1, ma = 0:2,
sar = 0:1, sdiff = 1, sma = 0:1)
nd_aic <- rep(0, 45)
for(i in 1:36) nd_aic[i] <- AIC(arima(nd,
unlist(nd_pars[i, 1:3]), unlist(nd_pars[i, 4:6])),
k = log(length(nd)))
for(i in 37:45) nd_aic[i] <- AIC(arima(nd,
unlist(nd_pars[i-36, 1:3])),
k = log(length(nd)))
nd_pars[which.min(nd_aic),]
ページ名: