adfTest
withlag=0
とtype="c"
をループで実行したいので、開始ウィンドウは でlength=5
、終了ウィンドウはlenght=nrow(Data)
です。問題は、開始ウィンドウを修正したいので、データに10個のデータポイントが含まれている場合、最初の結果は から1:5
、2番目の結果は1:6
で終了するまで続き1:10
ます。
私はrollapplyでそれをやろうとしましたが、このようには機能しません.私が持っているコードは次のとおりです:
num_dividends <- nrow(C)
rw<-4
sample_interval <- 1
wi <- list()
DF <- matrix(0, nrow=num_dividends, ncol=num_dividends)
for(i in 1:(num_dividends-rw-1) ) {
wi <- c(wi,list(list(c(window_size=rw+i,sample_interval=sample_interval),
DF=cbind(Date=seq(rw+i, num_dividends, by=sample_interval),
statistic=rollapplyr(C$Dividend, rw+i, function(u) adfTest(u)@test$statistic,by=sample_interval,partial=T)))))
DF[seq((rw+i),num_dividends,sample_interval), i+rw] <- wi[[i]]$DF[,"statistic"]
}
それが行うことは、開始ウィンドウのおかげで、対応する失われたデータを使用して、後で他の計算に使用するマトリックスを作成することです。しかし、問題は、開始ウィンドウが修正されていないことです。そのため、最初の観測は から行われます1:5
が、2 番目の観測は から行われ2:6
ます。また、ADFを計算しますが、 oflag=1
を使用して関数のオプションを追加する方法がわかりません。rollapplyr
lag=0
より明確にするために、私がそうrollapplyr(C$Dividend, 5, FUN=mean,by=sample_interval)
し、その後のデータが私が得た結果であり、私が望むものであると仮定します。
Dividend This is What I Want This is What I Get
1 NA NA
2 NA NA
3 NA NA
4 NA NA
5 3 3
6 3.5 4
7 4 5
8 4.5 6
9 5 7
ウィンドウがデータセット全体のサイズになるまで、ループを終了するたびに幅を増やしたいので、ループで実行したいことに注意してください。