在R中,使用vars包执行VAR模型,如何在p参数中指定一个特定的延迟?

时间:2015-07-23 22:09:42

标签: r variables var autoregressive-models

我正在使用vars包使用季度数据开发VAR模型。要指定自动调节器,此包中的VAR功能可让您有两种选择。您可以让R为您选择最佳滞后,最多使用'lag.max'设置。在这种情况下,鉴于我有季度数据,我会将其设置为4.但是,我不清楚这个函数如何真正选择这种方式的最佳滞后。似乎每次我这样做,R似乎选择前3个季度滞后。理论和实践表明,滞后4通常比其他因素更好,因为它可以获得季节性(季度数据)。现在,另一种指定滞后的方法是使用“p”参数。所以,如果你说p = 1.它会做第一个滞后。但是,如果你做p = 4;它不会只做第四个滞后(我想要的那个)。相反,它完成所有四个滞后直到第四个(滞后1,滞后2,滞后3,滞后4)。你怎么能指定使用Lag 4?这是不可能的,因为它正在制动VAR模型的实际结构?

1 个答案:

答案 0 :(得分:0)

您可以在vars包中使用restrict函数来获取所需的模型。

> library(vars)  # this is an example 
> data(Canada)
> var.u <- VAR(Canada, p = 4)  # first the unrestricted VAR
> 
> # building the restriction matrix only for lag 4
> resmat <- Bcoef(var.u)*0
> resmat[, c(16,17)] <- 1
> 
> # the result you want, the restricted VAR at lag 4
> restrict(var.u, method="manual", resmat=resmat)