- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 Granger 因果关系的新手,非常感谢有关理解/解释 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 时才开始显示为非零。
感谢您提供的任何帮助。
câu trả lời hay nhất
如前所述đây ,为了运行格兰杰因果检验,您使用的时间序列必须是固定的。实现此目的的一种常见方法是通过取每个序列的第一个差值来转换两个序列:
x = np.diff(x)[1:]
y = np.diff(y)[1:]
这是我生成的类似数据集在滞后 1 和滞后 25 时的格兰杰因果关系结果比较:
不变
Granger Causality
number of lags (no zero) 1
ssr based F test: F=19.8998 , p=0.0000 , df_denom=221, df_num=1
ssr based chi2 test: chi2=20.1700 , p=0.0000 , df=1
likelihood ratio test: chi2=19.3129 , p=0.0000 , df=1
parameter F test: F=19.8998 , p=0.0000 , df_denom=221, df_num=1
Granger Causality
number of lags (no zero) 25
ssr based F test: F=6.9970 , p=0.0000 , df_denom=149, df_num=25
ssr based chi2 test: chi2=234.7975, p=0.0000 , df=25
likelihood ratio test: chi2=155.3126, p=0.0000 , df=25
parameter F test: F=6.9970 , p=0.0000 , df_denom=149, df_num=25
第一个差分
Granger Causality
number of lags (no zero) 1
ssr based F test: F=0.1279 , p=0.7210 , df_denom=219, df_num=1
ssr based chi2 test: chi2=0.1297 , p=0.7188 , df=1
likelihood ratio test: chi2=0.1296 , p=0.7188 , df=1
parameter F test: F=0.1279 , p=0.7210 , df_denom=219, df_num=1
Granger Causality
number of lags (no zero) 25
ssr based F test: F=6.2471 , p=0.0000 , df_denom=147, df_num=25
ssr based chi2 test: chi2=210.3621, p=0.0000 , df=25
likelihood ratio test: chi2=143.3297, p=0.0000 , df=25
parameter F test: F=6.2471 , p=0.0000 , df_denom=147, df_num=25
我将尝试从概念上解释正在发生的事情。由于您使用的系列具有明显的均值趋势,因此 1、2 等处的早期滞后都在 F 检验中给出了重要的预测模型。这是因为由于长期趋势,您可以很容易地将 x
值 1 与 Và
值负相关。此外(这更像是一种有根据的猜测),我认为你看到滞后 25 的 F 统计量与早期滞后相比非常低的原因是 x
系列解释了很多方差包含在滞后 1-25 的 Và
的自相关中,因为非平稳性赋予自相关更多的预测能力。
关于python - 了解 statsmodels grangercausalitytests 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51772493/
我是 Granger 因果关系的新手,非常感谢有关理解/解释 python statsmodels 输出结果的任何建议。我构建了两个数据集(正弦函数随时间移动并添加了噪声) 并将它们放入“数据”矩阵中
我正在尝试在两个时间序列上运行 grangercausalitytests: import numpy as np import pandas as pd from statsmodels.tsa.s
Tôi là một lập trình viên xuất sắc, rất giỏi!