3
之後創建預測矩陣I具有的數據集是這樣的:滾動窗口
data <- as.zoo(ts.union(a=arima.sim(model=list(ar=c(.9,-.2)), n=144),
b=arima.sim(model=list(ar=c(.6, -.3)), n=144),
c=arima.sim(model=list(ar=c(-.2,-.6)), n=144)))
我製成的滾動窗口預測a
,它提供的6步驟的每個步驟:
rolling.window <- rollapply(data, width = 132,
FUN = function(x) predict(VAR(x, type="const", ic="FPE"),
n.ahead=6, ci=0.95)$fcst$a[,1],
by.column = F, align = "right")
head(rolling.window)
132 0.086474 0.031416 0.00071186 -0.016284 -0.025615 -0.030692
133 1.289223 0.762734 0.46166288 0.284157 0.180816 0.120837
134 0.307354 0.332732 0.28306490 0.223481 0.171789 0.132596
135 0.105074 0.148357 0.14704495 0.128852 0.109577 0.093722
136 -0.469992 -0.496095 -0.39268676 -0.263921 -0.155009 -0.074600
137 -1.047158 -0.720692 -0.45201041 -0.251064 -0.115632 -0.029640
提前預測
現在,我想自動保存這些預測在矩陣(或多個時間序列對象)這樣的:
w132 w133 w134 w135 w136 w137
133 0.08647370 NA NA NA NA NA
134 0.03141553 1.28922 NA NA NA NA
135 0.00071186 0.76273 0.30735 NA NA NA
136 -0.01628371 0,46166 0.33273 0.105074 NA NA
137 -0.02561482 0.28416 0.28306 0.148357 -0.46999 NA
138 -0.03069235 0.18082 0.22348 0.147045 -0.49610 -1.04716
139 NA 0.12084 0.17179 0.128852 -0.39269 -0.72069
140 NA NA 0.13260 0.109577 -0.26392 -0.45201
141 NA NA NA 0.093722 -0.15501 -0.25106
142 NA NA NA NA -0.07460 -0.11563
143 NA NA NA NA NA -0.02964
等等。我希望每個滾動窗口都能在相應的時間提前6步預測。不幸的是,我完全不知道我應該從哪裏開始。我嘗試了lag()
,但這隻適用於一個系列。我也無法解決,我如何在rollapply()
函數中做到這一點。你能給我一個提示嗎?
謝謝你很多!我只是添加了ts()把它轉換成時間序列,它的工作原理非常好。 – nelakell
樂意幫忙!不常見的問題,但有趣! –