【问题标题】:In R, using the vars package doing a VAR model, how to specify one specific lag within the p argument?在 R 中,使用 vars 包进行 VAR 模型,如何在 p 参数中指定一个特定的滞后?
【发布时间】:2015-10-14 10:35:00
【问题描述】:

我正在使用带有 vars 包的季度数据开发一个 VAR 模型。要指定自回归器,此包中的 VAR 函数为您提供了两种选择。您可以让 R 为您选择最佳延迟,直至您使用“lag.max”设置的最大值。在这种情况下,考虑到我有季度数据,我会将其设置为 4。但是,我不清楚这个函数如何真正以这种方式选择最佳滞后。似乎每次我这样做时,R 似乎都会选择前 3 个季度滞后。理论和实践表明,Lag 4 通常比其他的更好,因为它吸收了季节性(季度数据)。现在,指定滞后的另一种方法是使用“p”参数。因此,如果您声明 p = 1。它将执行第一个滞后。但是,如果你这样做 p = 4;它不会只做第四个滞后(我想要的那个)。相反,它会执行所有四个滞后到第 4 个(滞后 1、滞后 2、滞后 3、滞后 4)。你怎么能指定只使用 Lag 4?这不可能吗,因为它正在破坏 VAR 模型的实际结构?

【问题讨论】:

    标签: r variables var autoregressive-models


    【解决方案1】:

    您可以使用 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)
    

    【讨论】:

    • Jilber,我很抱歉,但我不明白你的代码,尤其是 resmat 部分。下面是我用来做一个基本 VAR 模型的代码,只有 Lag 1 Quarter 使用 p = 1。varmodel1
    • 好的,我将自学一下restrict () 函数并从那里开始。希望我能从中有所了解。我相信你的编码是好​​的。我只需要直接内化编码,了解它是如何工作的。
    • 我研究了限制函数,我消除了前三个滞后并以下列方式包括第四个滞后。这遵循了 vars 包的作者 Bernhard Pfaff 的编码说明。不幸的是,它没有用... varmodel2
    猜你喜欢
    • 2014-05-04
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 2021-07-30
    • 2022-06-10
    • 2015-01-24
    相关资源
    最近更新 更多