【发布时间】:2019-01-17 05:48:42
【问题描述】:
我是 Granger Causality 的新手,如果有任何关于理解/解释 python statsmodels 输出结果的建议,我将不胜感激。我已经构建了两个数据集(正弦函数随时间推移而添加了噪声)
并将它们放入“数据”矩阵中,信号 1 作为第一列,信号 2 作为第二列。然后我使用以下方法运行测试:
granger_test_result = sm.tsa.stattools.grangercausalitytests(data, maxlag=40, verbose=True)`
结果表明,最优滞后(就最高 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
然而,似乎最能描述数据最佳重叠的滞后是 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 , df=25
likelihood ratio test: chi2=104.6823, p=0.0000 , df=25
parameter F test: F=4.1891 , p=0.0000 , df_denom=923, df_num=25
我显然在这里误解了一些东西。为什么预测的滞后与数据的变化不匹配?
另外,谁能向我解释为什么 p 值如此之小以至于对于大多数滞后值可以忽略不计?它们仅在滞后大于 30 时才开始显示为非零。
感谢您提供的任何帮助。
【问题讨论】:
-
你能找到答案吗?
标签: python time-series statsmodels causality