格兰杰因果检验的滞后顺序

机器算法验证 滞后 格兰杰因果关系
2022-03-04 20:13:01

假设我正在考虑可能包含在我正在开发的 ARIMAX 模型中的几个独立变量。在拟合不同的变量之前,我想通过使用 Granger 检验筛选出表现出反向因果关系的变量(我正在使用Rgranger.test中的包中的函数MSBVAR,不过,我相信其他实现类似)。我如何确定应该测试多少滞后?

R 函数是:granger.test(y, p),其中y是数据框或矩阵,并且p是滞后。

原假设是过去p的值X无助于预测价值Y.

有什么理由不在这里选择一个非常高的滞后(除了观察的损失)?

请注意,我已经根据依赖时间序列的集成顺序对数据框中的每个时间序列进行了区分。(例如,对我的依赖时间序列进行差分一次使其平稳。因此,我也对所有“独立”时间序列进行了一次差分。)

1个回答

权衡是在偏置和功率之间。滞后太少,由于残差自相关,您的测试有偏差。太多,您允许对 null 的潜在虚假拒绝 - 一些随机相关可能使其看起来像X有助于预测Y. 这是否是一个实际问题取决于您的数据,我的猜测是倾斜得更高,但滞后长度总是可以确定如下:

格兰杰因果关系总是必须在某些模型的背景下进行测试。在 R 中函数的特定情况下granger.test,模型在双变量检验中具有两个变量中每一个的 p 个过去值。所以它使用的模型是:

yi,t=α+l=1pβlyi,tl+γlxi,tl+ϵi,t

传统的选择方式p因为这个模型是用不同的值来尝试这个回归p并使用跟踪每个滞后长度的 AIC 或 BIC。然后使用值再次运行测试p在您的回归中具有最低的 IC。

一般来说,模型中的滞后数可以不同xy格兰杰测试仍然是合适的。在实施的特定情况下granger.test,您必须限制两者的相同数量的滞后。这是一个方便的问题,而不是理论上的必要性。由于两个变量的滞后长度不同,您仍然可以使用 AIC 或 BIC 来选择您的模型,您只需要比较许多组合n滞后xm滞后y. 看到这个

只是一个额外的词 - 因为格兰杰检验是模型相关的,所以遗漏变量偏差可能是格兰杰因果关系的一个问题。您可能希望在模型中包含所有变量,然后使用 Granger 因果关系排除它们的块,而不是使用granger.test仅进行成对测试的函数。