EG二步协整,python
时间: 2024-06-20 15:02:18 浏览: 204
专题资料(2021-2022年)EG两步法协整检验和误差修正模型的建立.doc
EG二步协整检验(Engle-Granger Two-Step Cointegration Test),是由格兰杰(Clive W.J. Granger)和安德森(Trevor W. Anderson)提出的一种检验时间序列变量是否协整的方法。在Python中,可以使用`statsmodels`库中的`engle_bbg`模块来进行这个检验。
步骤如下:
1. **初步单位根检验**:首先,检查每个时间序列是否具有平稳性,通常用ADF(Augmented Dickey-Fuller)或KPSS(Kwiatkowski-Phillips-Schmidt-Shin)检验。
2. **估计误差的协方差矩阵**:如果初始变量存在一阶自回归不稳定性,可以通过差分或对数变换使其变得稳定。
3. **构造误差项的时间序列**:用差分后的数据估计误差项,并计算其误差项的残差。
4. **EG两步法**:对残差进行协整检验,这一步通常使用OLS(Ordinary Least Squares)回归模型,将一个残差序列作为解释变量,看是否能显著预测其他残差序列。
在Python代码示例中(假设`df`是包含两个时间序列的DataFrame,`y`和`x`是列名):
```python
from statsmodels.tsa.stattools import adfuller, coint
import pandas as pd
# 对每个变量进行ADF检验
adf_results_y = adfuller(df['y'])
adf_results_x = adfuller(df['x'])
# 如果ADF统计量小于显著水平(如0.05),则可能存在协整
if adf_results_y > 0.05 and adf_results_x > 0.05:
# 残差协整检验
residuals = pd.DataFrame(df.diff().dropna())
eg_test = coint(residuals['y'], residuals['x'])
# 检验结果
if eg_test < 0.05: # p-value小于显著水平
print("存在EG两步协整")
else:
print("不存在EG两步协整")
```
阅读全文