Hello Stack社区,
我正在用三个内生变量和一个外生变量建立向量自回归模型。当我使用summary(model_name)
或Bcoef(model_name)
命令获得系数时,输出包含内生变量的滞后值,但仅包含外生变量的当前值(无滞后(。
然而,我感兴趣的是外生变量的影响,因此外生变量的当前和滞后系数,但不幸的是没有提供滞后。
如果有人知道如何获得这些系数,我将不胜感激?是否有单独的包(事实上,要绘制外生变量的脉冲响应函数,需要单独的包(?如果不是包裹,我该如何处理这个问题?
外生变量不受VAR模型中滞后输入的影响,所以如果你想创建一个有滞后的外生变量,你必须逐一引入其中的每一个,创建一个具有滞后值的数据帧:
library(vars)
#> Loading required package: MASS
#> Loading required package: strucchange
#> Loading required package: zoo
#>
#> Attaching package: 'zoo'
#> The following objects are masked from 'package:base':
#>
#> as.Date, as.Date.numeric
#> Loading required package: sandwich
#> Loading required package: urca
#> Loading required package: lmtest
library(magrittr)
data("Canada")
e <- Canada[,1]
prod <- Canada[,2]
rw <- Canada[,3]
exog <- Canada[,4]
exog_1 <- lag(exog,-1)
exog_2 <- lag(exog,-2)
data <- cbind(e,prod,rw,exog,exog_1,exog_2) %>%
na.omit()
VAR(data[,1:3],exogen = data[,4:6])
#>
#> VAR Estimation Results:
#> =======================
#>
#> Estimated coefficients for equation e:
#> ======================================
#> Call:
#> e = e.l1 + prod.l1 + rw.l1 + const + exog + exog_1 + exog_2
#>
#> e.l1 prod.l1 rw.l1 const exog exog_1
#> 1.02017830 0.05614693 -0.01826264 -34.21688327 -0.93864073 0.79002397
#> exog_2
#> 0.22434453
#>
#>
#> Estimated coefficients for equation prod:
#> =========================================
#> Call:
#> prod = e.l1 + prod.l1 + rw.l1 + const + exog + exog_1 + exog_2
#>
#> e.l1 prod.l1 rw.l1 const exog
#> 0.16469624 0.99378315 -0.05301798 -133.87969507 0.17191734
#> exog_1 exog_2
#> -0.30238907 0.60487385
#>
#>
#> Estimated coefficients for equation rw:
#> =======================================
#> Call:
#> rw = e.l1 + prod.l1 + rw.l1 + const + exog + exog_1 + exog_2
#>
#> e.l1 prod.l1 rw.l1 const exog exog_1
#> 0.17297620 -0.07327839 0.92329491 -99.55107991 0.49728306 -0.15506299
#> exog_2
#> -0.24236800
创建于2022-02-11由reprex包(v1.0.0(
这是可能的,但不常见,记住测试exog变量是否真的是外源性的。