我是新来的,但我检查了其他线程,到目前为止还没有找到解决方案。 我正在尝试在 R 中制作 VAR 模型,它看起来像这样:
library(vars)
library(lmtest)
# from loaded data I create model:
v1 <- data.frame(PRG, VYS, r, GDP)
lag_order <- VARselect(v1, lag = 2, type = "const")$selection[1]
model <- VAR(v1, p = lag_order, type = "const")
然后我尝试
bgtest
检查序列自相关:
res <- data.frame(residuals(model))
test_result <- bgtest(res, order = lag_order)
但我收到此错误消息:
x$terms %||% attr(x, "terms") %||% stop("没有术语组件也没有属性") 中的错误: 没有术语组件或属性
我尝试更改获得的残差的数据类型,但这没有帮助。我也尝试过合身
VAR(v1, p = lag_order, type = "const")
直接代替公式,但这也没有影响
VAR
将 lm
对象的列表保存在 varresult
中。
使用包中的一些示例数据,
model$varresult
包含 4 个lm
对象,然后可以对其执行测试:
library(vars)
library(lmtest)
model <- VAR(Canada, p = 2, type = "none")
bgtest(model$varresult$e)
#>
#> Breusch-Godfrey test for serial correlation of order up to 1
#>
#> data: model$varresult$e
#> LM test = 9.1337, df = 1, p-value = 0.002509
bgtest(model$varresult$prod)
#>
#> Breusch-Godfrey test for serial correlation of order up to 1
#>
#> data: model$varresult$prod
#> LM test = 0.49315, df = 1, p-value = 0.4825
bgtest(model$varresult$rw)
#>
#> Breusch-Godfrey test for serial correlation of order up to 1
#>
#> data: model$varresult$rw
#> LM test = 0.69359, df = 1, p-value = 0.4049
bgtest(model$varresult$U)
#>
#> Breusch-Godfrey test for serial correlation of order up to 1
#>
#> data: model$varresult$U
#> LM test = 0.25434, df = 1, p-value = 0.614
创建于 2024-04-18,使用 reprex v2.1.0