我想使用Johansen协整检验来测试两个时间序列之间的协整。我想逐步执行测试,首先进行120个观察,然后在顶部留1个,在底部增加1个,以进行总共2250个观察。我想使用For循环自动执行此操作,但是代码给出了错误。请帮忙。
library(urca)
x= BDICOM$BDI
y= BDICOM$Soybn
for(i in 1:2666){
A = x[i:i+120]; B = y[i:i+120]
jocot[i] = ca.jo(data.frame(A,B), type = "eigen", ecdet = "none",K = 2, spec = "longrun");i=i+1
}
答案 0 :(得分:0)
尝试一下,但是没有您的数据样本,我不能确定它是否正确:
library(urca)
x = BDICOM$BDI
y = BDICOM$Soybn
jocot <- vector('numeric', (2000-120))
for(i in 1:(2000-120)){
A = x[i:(i+120)]
B = y[i:(i+120)]
jocot[i] = ca.jo(
data.frame(A, B),
type = "eigen",
ecdet = "none",
K = 2,
spec = "longrun"
)@teststat[2]
}