我是Granger Causality的新手,对于理解/解释python statsmodels输出结果的任何建议,我们将不胜感激。我已经构造了两个数据集(正弦函数随时间变化并添加了噪声)
并将它们放在“数据”矩阵中,信号1为第一列,信号2为第二列。然后,我使用以下命令运行测试:
granger_test_result = sm.tsa.stattools.grangercausalitytests(data, maxlag=40, verbose=True)`
Run Code Online (Sandbox Code Playgroud)
结果表明,最佳滞后(以最高的F检验值表示)的滞后为1。
Granger Causality
('number of lags (no zero)', 1)
ssr based F test: F=96.6366 , p=0.0000 , df_denom=995, df_num=1
ssr based chi2 test: chi2=96.9280 , p=0.0000 , df=1
likelihood ratio test: chi2=92.5052 , p=0.0000 , df=1
parameter F test: F=96.6366 , p=0.0000 , df_denom=995, df_num=1
Run Code Online (Sandbox Code Playgroud)
但是,似乎最能描述数据的最佳重叠的滞后时间约为25(在下图中,信号1已向右移动了25点):

Granger Causality
('number of lags (no zero)', 25)
ssr based F test: F=4.1891 , p=0.0000 , df_denom=923, df_num=25
ssr based chi2 test: chi2=110.5149, p=0.0000 , …Run Code Online (Sandbox Code Playgroud)