R:用具有外生变量的VECM预测

时间:2015-02-23 03:18:39

标签: r predict

在估计了具有静止外生变量的VECM模型之后,我想用预测函数和newdata参数计算预测。我正在使用Dynts库,它提供了使用外部变量计算VECM模型的可能性,但我不知道如何将预测函数与newdata一起用于集成变量和异构变量。 以下代码不起作用。任何的想法 ?

library(tsDyn)
Fact1<-rnorm(100,0,10)
x<-rnorm(100,0,10)
y<-rnorm(100,0,15)
i<-1:100
Yniv2<-sapply(i,function(k) sum(x[1:k]))
Facti1<-Yniv2+y
Yniv2<-Yniv2[1:99]
plot(Yniv2,type="l")#variable macro que l'on cherche à prévoir à l'instant t
lines(Facti1,col="red")#variable macro cointégrée avec Y dont on dispose l'obs en t
lines(Fact1,col="green")#variable stationnaire qui explique également Y 

exog_met1v1<-Fact1[2:99] 
exog_i1<-cbind(Yniv2[1:98],Facti1[1:98])
mdl<-VECM(exog_i1, 1, r=1, include = "const", estim = "ML", LRinclude = "const", exogen = exog_met1v1)
newexogi1 <-cbind(Yniv2[1:99],Facti1[1:99])
new <- Fact1[2:100]
newdata<-cbind(newexogi1,new)
Prev_H_1<-data.frame(predict(mdl, newdata))[,1] #pbbb

如果我想要全局适合

,则会出现第一个错误
Please provide newdata with nrow=lag+1 (note lag=p in VECM representation corresponds to p+1 in VAR rep)

如果我只提供最后一次观察,则会出现第二个错误

newexogi1 <-cbind(Yniv2[98:99],Facti1[98:99])
new <- Fact1[99:100]
newdata<-cbind(newexogi1,new)
Prev_H_1<-data.frame(predict(mdl, newdata))[,1] #pbbb

Erreur dans TVAR.gen(B = B, nthresh = 0, type = "simul", n = n, lag =    lag,  : 

矩阵B严格指定:预期5个元素((滞后 K + n inc)(nthresh + 1))但有6个

  

1 个答案:

答案 0 :(得分:1)

我做了一些修改,(视未来的变化而定!),但是你去了:

## install development version:
library(devtools)
install_github("MatthieuStigler/tsDyn", ref="Dev94", subdir="tsDyn")  

## use these arguments:
predict(mdl, newdata=newexogi1, exoPred=new, n.ahead=2)