r - R中的面板向量自回归(pVAR)后如何进行格兰杰因果检验?
问题描述
在 R 中运行面板向量自回归后如何进行格兰杰因果检验(使用 panelvar 包)?
为了运行面板 VAR,可以执行以下操作:
library(plm)
library(panelvar)
set.seed(12345)
x = rnorm(240)
z = x + rnorm(240)
y = rep(rnorm(15), each=16) + 2*x + 3*z + rnorm(240)
country = rep(c("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O"), each=16 )
year = rep(seq(1995, 2010), 15)
panel = cbind.data.frame(country,year,x,z,y)
model <- pvargmm(dependent_vars = c("y", "x", "z"),
lags = 1,
transformation = "fod",
data = panel,
panel_identifier=c("country", "year"),
steps = c("twostep"),
system_instruments = FALSE,
max_instr_dependent_vars = 99,
max_instr_predet_vars = 99,
min_instr_dependent_vars = 2L,
min_instr_predet_vars = 1L,
collapse = TRUE
)
然后我的问题是如何执行格兰杰因果关系测试(panelvar 不提供此功能)。似乎需要使用包中的pgrangertest
功能plm
。但是,我不确定“公式”是什么,因为 pVAR 模型不同于简单的线性模型。此外,“顺序”是否应该是在使用多个滞后选项运行我们的 pVAR 然后选择提供最佳模型拟合的一个(基于 Andrews_Lu_MMSC 函数提供的 BIC、AIC 等)后发现的最佳滞后数?
pgrangertest(inv ~ value, data = Grunfeld, order = 2L)
换句话说,我需要将“inv ~ value”替换为其他内容,我不清楚该怎么做。
鉴于我对 y、x 和 z 之间的相互关系感兴趣,我应该运行 pgrangertest 六次吗?以下内容有意义吗?
pgrangertest(y ~ x, data = panel, order = 2L)
pgrangertest(y ~ z, data = panel, order = 2L)
pgrangertest(x ~ z, data = panel, order = 2L)
pgrangertest(x ~ y, data = panel, order = 2L)
pgrangertest(z ~ x, data = panel, order = 2L)
pgrangertest(z ~ y, data = panel, order = 2L)
我知道pgrangertest
一次只允许两个变量,但我不应该控制第三个变量吗?
解决方案
推荐阅读
- kubernetes - Kubernetes|Helm values.yaml - 如何使用动态索引访问数组
- database - Kubernetes 传出连接
- c++ - 名称对或元组值的别名引用
- ios - usdz 文件的 SCNSceneSource 标识符为空
- mysql - 如何获取mysql中两个表之间的比较差异列值
- python - 部分覆盖 numpy 数组不起作用
- java - 使用 Vector 在视图中画线(在 Android Studio 中)
- reactjs - 如何在 react.js 中从另一个组件调用不同组件的 ComponentDidMount()
- php - 如何通过 ajax 显示带有树枝的变量?
- python - 在 Beautifulsoup 中添加标签、文本和链接组合的简单方法?