R 中 VAR 模型的 BGtest 给我错误消息

问题描述 投票:0回答:1

我是新来的,但我检查了其他线程,到目前为止还没有找到解决方案。 我正在尝试在 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")

直接代替公式,但这也没有影响

r var
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.