【问题标题】:How to do granger causality test after panel vector autoregression (pVAR) in R?R中的面板向量自回归(pVAR)后如何进行格兰杰因果检验?
【发布时间】:2021-04-16 23:47:53
【问题描述】:

在 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 不提供此功能)。 似乎需要使用plm 包中的函数pgrangertest。但是,我不确定“公式”是什么,因为 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 一次只允许两个变量,但我不应该同时控制第三个吗?

【问题讨论】:

  • 请注意,pgrangertest 根据 Dumitrescu/Hurlin (2012) 实施 Panel Granger(非)因果关系测试。

标签: r panel-data plm vector-auto-regression


【解决方案1】:

这只是一个建议,所以它可能有帮助也可能没有帮助。尽管该函数仅允许 2 个变量,但您可能能够准确地探索该函数正在做什么以发现“公式”并使用 edit(pgrangertest) 调整/修改它以满足您的需求。类似地,您可以通过手动指定要使用的测试类型并模仿实际函数正在做什么来克服函数grangertest 的共线性错误(请参阅我自己的问题和答案here)。也许这可以让你指定所有你想要的变量?另外,另一个问题here 也可能有帮助(尽管它是关于常规的多元格兰杰)

或者,尝试向包的创建者发送电子邮件。这是一个远景,但它也可能非常有帮助,他们可能能够真正解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2015-10-28
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 2021-10-26
    • 2017-12-11
    相关资源
    最近更新 更多