我正在研究协整模型。到目前为止,这是我的标准程序。我用6个变量(全部I(1))设置了VECM。
#Use information criterion to find optimal model.
VARselect(dat,lag.max = 15,type="both") # Lag=3 is proposed
var_dat <- vars::VAR(dat,type="both",p=3)
serial.test(var_dat,type = c("PT.adjusted"),lags.pt = 24)
在p = 3的情况下,模型中存在序列相关性。为了解决这个问题,我使用p = 6。没有序列相关性的第一个滞后阶。
vecm_dat<-ca.jo(dat,type="trace",ecdet="trend",K=6,spec="longrun")
#Gives r=1
lttest(vecm_dat, r=1)
#the trend integration seems resonable
然后我想添加一些理论背景,并通过LR检验对这一理论思想进行经验检验
B1<-rbind(1,1,0,0,0,1)
Test5<-summary(blrtest(vecm_dat,B1,1))
根据手册,此Blrtest应测试并评估SVAR模型。问题在于该对象Test5
是class=cajo.test
而不是ca.jo
。因此,我无法从中提取脉冲响应函数。
1。有人在这里知道好的解决方法吗?
2。在VECM中还有其他设置限制的方法吗?
3。甚至可能签署限制?