python格兰杰因果检验代码
时间: 2023-08-24 11:10:03 浏览: 318
【数据分析】基于Matlab实现格兰杰因果检验 上传.zip
5星 · 资源好评率100%
格兰杰因果检验(Granger causality test)是一种常用的时间序列分析方法,用于检测两个时间序列之间是否存在因果关系。在 Python 中,我们可以使用 statsmodels 模块来实现格兰杰因果检验。下面是一个简单的示例代码:
```python
import numpy as np
import statsmodels.api as sm
# 生成两个时间序列
x = np.random.normal(size=100)
y = np.zeros_like(x)
for i in range(1, len(x)):
y[i] = 0.5 * y[i-1] + np.random.normal()
# 进行格兰杰因果检验
result = sm.tsa.stattools.grangercausalitytests(np.vstack([x, y]).T, maxlag=2)
print(result[2][0]['ssr_ftest'][1]) # 输出 p 值
```
在上面的代码中,我们首先生成了两个随机时间序列 x 和 y,然后使用 `sm.tsa.stattools.grangercausalitytests()` 函数进行格兰杰因果检验。这个函数的第一个参数是一个二维数组,每一列代表一个时间序列,每一行代表一个时间点的观测值。第二个参数是最大滞后阶数,即最多考虑几个时间点前的影响。函数的返回值是一个字典,其中包含了多个假设检验的结果。我们可以通过索引来获取其中一个假设检验的结果,然后提取出 p 值。在上面的代码中,我们选择了第三个假设检验(maxlag=2),并输出了对应的 p 值。
阅读全文