为格兰杰检验解释 R 中的 causality()

机器算法验证 r 时间序列 格兰杰因果关系
2022-04-12 02:19:50

文档中所示,在运行向量自回归模型 (VAR) 后,可以继续使用 Granger 检验的因果关系命令:

causality(x, cause = NULL, vcov.=NULL, boot=FALSE, boot.runs=100)

这是文档中的示例,

data(Canada) # below is the data structure

>               e     prod       rw     U
>1980 Q1 929.6105 405.3665 386.1361  7.53
>1980 Q2 929.8040 404.6398 388.1358  7.70
>1980 Q3 930.3184 403.8149 390.5401  7.47
>1980 Q4 931.4277 404.2158 393.9638  7.27
>1981 Q1 932.6620 405.0467 396.7647  7.37

var.2c <- VAR(Canada, p = 2, type = "const")
causality(var.2c, cause = "e")

返回

$Granger

Granger causality H0: e do not Granger-cause prod rw U

data:  VAR object var.2c

F-Test = 6.2768, df1 = 6, df2 = 292, p-value = 3.206e-06

我的问题是:这个格兰杰测试是为了什么以及如何解释它?

它在结果中说原假设是“H0:e do not Granger-cause prod rw U ”,这是否意味着它正在用一个 p 值测试e Granger 是否同时导致prodrwU ?

使用grangertest()in 时R,总是需要同时指定原因和因变量,所以对我来说它是如何causality()工作的并不完全直观。

1个回答

[W] 这个 Granger 测试的目的是什么以及如何解释它?

基本上,格兰杰因果关系xGrangery使用滞后时存在x旁边的滞后y用于预测y提供比仅使用滞后时间更好的预测准确性y(没有滞后x)。

您可以在 Wikipedia 以及在线免费教科书和讲义中找到定义和详细信息。这个网站上也有很多例子,只需检查标记为的线程.

它在结果中说原假设是“H0:e do not Granger-cause prod rw U ”,这是否意味着它正在用一个 p 值测试e Granger 是否同时导致prodrwU ?

你说的对。请注意,在 4 变量 VAR(2) 模型中,测试一个变量是否不会导致其他三个变量等于测试3×2零限制(三个变量乘以两个滞后),这也是测试摘要显示的内容:df1=6.

使用grangertest()in 时R,总是需要同时指定原因和因变量,所以对我来说它是如何causality()工作的并不完全直观。

这是因为在一个K- 变量系统K>2有许多可能的因果关系。xi可能会导致xj;xi可能会导致xjxk;xixj可能会导致xk; 等等。因此,该功能要求您准确指定要检查的因果关系。