1

我在 R 中安装了 VECM 模型,并转换为 VAR 表示。我想使用这个模型根据解释变量的不同场景来预测响应变量的未来值。

这是模型的代码:

library(urca)
library(vars)

input <-read.csv("data.csv")
ts <- ts(input[16:52,],c(2000,1),frequency=4)
dat1 <- cbind(ts[,"dx"], ts[,"u"], ts[,"cci"],ts[,"bci"],ts[,"cpi"],ts[,"gdp"])

args('ca.jo')
vecm <- ca.jo(dat1, type = 'trace', K = 2, season = NULL,spec="longrun",dumvar=NULL)
vecm.var <- vec2var(vecm,r=2)    

现在我想做的是通过改变其他人来预测未来的“dx”。我不确定在下一个时期是否可以使用“predict dx if u=30,cpi=15,bci=50,gdp=...”。所以我想到的是:在下一个时期将“u”增加 15%(这​​显然也会影响所有其他变量,包括“dx”)并预测未来的影响。

另外,我不确定“vec2var”步骤是否必要,所以如果您认为它是多余的,请忽略它。

谢谢卡尔
_

4

2 回答 2

2

Bernhard Pfaff 的书“使用 R 分析集成和协整时间序列”的第 4 章和第 8 章很好地介绍了这个主题,为此编写了varsurca包。

如果要使用可用的预测功能,则需要 vec2var 步骤。

R-Sig-Finance list 上提供了更完整的答案。另请参阅此相关线程

于 2009-11-23T15:54:29.650 回答
1

Here you go - ??forecast gave vars::predict, Predict method for objects of class varest and vec2var as an answer, which looks precisely as you want it. Increasing u looks like impulse response analysis, so look it up!

于 2009-11-22T20:48:15.950 回答