格兰杰因果关系检验代码
时间: 2023-09-04 14:16:22 浏览: 151
格兰杰因果检验matlab代码-Granger:具有显着性检验的频域格兰杰因果关系的Matlab代码
格兰杰因果关系检验(Granger causality test)是一种用来检验两个时间序列之间是否存在因果关系的方法。下面是使用Python statsmodels库实现格兰杰因果关系检验的示例代码:
```python
import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import grangercausalitytests
# 生成模拟数据
nobs = 100
x = np.random.rand(nobs)
y = np.random.rand(nobs)
# 将数据转化为DataFrame格式
data = pd.DataFrame({'x': x, 'y': y})
# 进行格兰杰因果关系检验
results = grangercausalitytests(data, maxlag=2, verbose=False)
# 打印检验结果
for lag in range(1, 3):
p_value = results[lag][0]['params_ftest'][1]
print(f'Lag {lag}, p-value: {p_value:.4f}')
```
上述代码中,我们首先生成了两个长度为100的随机时间序列x和y,并将它们转化为DataFrame格式。然后使用statsmodels库中的grangercausalitytests函数进行格兰杰因果关系检验,其中maxlag=2表示最大滞后阶数为2,verbose=False表示输出结果时不显示冗余信息。最后,我们打印出了检验结果,其中p-value表示假设检验的p值,用于判断是否存在因果关系。
阅读全文