statsmodels.tsa.stattools.grangercausalitytests

statsmodels.tsa.stattools.grangercausalitytests(x, maxlag, addconst=True, verbose=None)[source]

四个用于检验两个时间序列格兰杰非因果关系的测试。

所有四个测试都给出了相似的结果。params_ftestssr_ftest 基于 F 检验是等价的,这与 R 中的 lmtest:grangertest 相同。

Parameters:
xarray_like

用于测试第二列中的时间序列是否格兰杰引起第一列中的时间序列的数据。不支持缺失值。

maxlag{int, Iterable[int]}

如果是一个整数,则计算所有滞后到 maxlag 的测试。如果是一个可迭代对象,则仅计算 maxlag 中滞后的测试。

addconstbool

在模型中包含一个常数。

verbosebool

打印结果。已弃用

Returns:
dict

所有测试结果,字典键是滞后阶数。对于每个滞后,值是一个元组,第一个元素是一个包含测试统计量、p值、自由度的字典,第二个元素是受限模型、非受限模型和参数f_test的约束(对比)矩阵的OLS估计结果。

注释

待办事项:转换为类并正确附加结果

grangercausalitytests 的零假设是第二列中的时间序列 x2 不会格兰杰引起第一列中的时间序列 x1。格兰杰因果关系意味着 x2 的过去值对 x1 的当前值有统计学上的显著影响,同时考虑了 x1 的过去值作为回归变量。如果我们拒绝 x2 不会格兰杰引起 x1 的零假设,则当 p 值低于所需的检验规模时。

所有四个检验的零假设是与第二个时间序列的过去值相对应的系数为零。

params_ftest, ssr_ftest 基于 F 分布

ssr_chi2test, lrtest 基于卡方分布

参考文献

[2]

格林:计量经济学分析

示例

>>> import statsmodels.api as sm
>>> from statsmodels.tsa.stattools import grangercausalitytests
>>> import numpy as np
>>> data = sm.datasets.macrodata.load_pandas()
>>> data = data.data[["realgdp", "realcons"]].pct_change().dropna()

所有滞后项最多到4

>>> gc_res = grangercausalitytests(data, 4)

仅滞后4

>>> gc_res = grangercausalitytests(data, [4])

Last update: Oct 16, 2024