格兰杰因果关系检验

机器算法验证 Python 格兰杰因果关系 统计模型
2022-03-15 01:08:16

我有两个时间序列(股票和 GDP),我想检查格兰杰因果关系在阅读了各种统计软件文档(py statsmodels)的文献和文档后,我有点疑惑:进行格兰杰因果检验的必要步骤是什么?

  1. 首先,我知道如果我们想测量格兰杰因果关系,时间序列应该都是 平稳的。在这里,ADF 检验是检查时间序列是否平稳的单位根检验。就我而言,两个时间序列在水平上都是固定的。
  2. 其次,我应该检查滞后顺序以确定格兰杰因果分析的最大滞后长度。我通过 Python statmodels 中的model.select_order(10)执行此操作,并检查指示了哪些滞后,例如 AIC 和 BIC。
  3. 现在,协整呢?如何在 IPython 中检查协整以及如何解释结果?我在文献中读到了关于“积分顺序”的文章,写成 I(0),I(1),I(2)。我真的不明白它的含义以及如何产生该措施。

否则,我很了解如何检查 Granger 本身以及如何解释其结果。

谢谢你的帮助!

1个回答

遵循此过程(Engle-Granger 协整检验):

1) 使用 adfuller 测试来测试您的系列是否平稳(股票价格和 GDP 水平通常不是)

2)如果不是,则对它们进行差分并查看差分序列现在是否静止(它们通常是)。

3)如果是,则您的原始系列据说是订单1的每个集成(我没有说共同集成);简明地记为 I(1)。

4)如果它们都不是 I(1),你可以放心地说它们不能是 1 阶的协整。

5) 如果它们都是 I(1),则运行其中一个的简单 OLS 回归。

6)检查OLS的残差是否平稳。如果它们是静止的,那么您的原始序列是 1 阶协整的。

这种方法的缺点:1)您在另一个变量上回归哪个变量可能很重要,2)它仅在您有两个变量时才有效。

为了更好的测试,您可以使用 Johansen 的程序 ( https://github.com/josef-pkt/statsmodels/commit/29f0aa27d284ac0026e90ff9d877f7920a2c6056 )

http://nbviewer.jupyter.org/github/mapsa/seminario-doc-2014/blob/master/cointegration-example.ipynb