代码之家  ›  专栏  ›  技术社区  ›  Karl

R:使用VAR模型预测对某些变量值变化的反应

  •  1
  • Karl  · 技术社区  · 16 年前

    我在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。我不确定像“预测dx如果u=30,cpi=15,bci=50,gdp=…”这样的东西在下一个时期是否有效。所以我想的是:在下一个时期把“u”增加15%(这显然也会影响所有其他变量,包括“dx”),并预测对未来的影响。

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

    谢谢
    卡尔

    2 回复  |  直到 16 年前
        1
  •  2
  •   Shane    16 年前

    这一主题在伯恩哈德·普法夫的书的第4章和第8章中有很好的阐述 Analysis of Integrated and Cointegrated Time Series with R 变量 乌尔卡 包是写出来的。

    如果您想使用可用的预测功能,那么vec2var步骤是必需的。

    更完整的答案 was provided on the R-Sig-Finance list . 另请参见 this related thread

        2
  •  1
  •   Alex    16 年前

    给你-??forecast为varest和vec2var类的对象提供了vars::predict,predict方法作为答案,看起来和您想要的完全一样。增加u看起来像脉冲响应分析,所以查一下!