🎯 统计套利核心 —— 协整关系是配对交易与篮子套利的基石。 它刻画了非平稳时间序列之间长期稳定的均衡关系,比简单相关性更深刻。
🔹 直观理解: 两个或多个非平稳序列,虽然各自随机游走,但它们的线性组合却平稳。好比“拴在一起的醉汉”,虽然各自摇晃,但彼此距离不会无限偏离。
🔹 经济解释: 市场存在某种均衡机制(如套利力量、价格锚定),当价差偏离均衡时,反向力量会使其回归。例如:
⚠️ 注意: 协整 ≠ 相关性!高相关性但无协整的序列,价差可能发散,套利风险极大。
适用: 两个单整阶数相同(如 I(1))的序列,检验是否存在协整。
| 步骤 | 操作 | 关键细节 |
|---|---|---|
| Step 1 协整回归 | 用 OLS 估计长期均衡方程: \( y_t = \alpha + \beta x_t + \varepsilon_t \) | 得到残差序列 \( \hat{\varepsilon}_t \); 注意不要遗漏截距项。 |
| Step 2 残差平稳性检验 | 对 \( \hat{\varepsilon}_t \) 进行 ADF 检验(无截距/趋势) | 若 ADF 统计量 < 临界值(如 MacKinnon 协整临界值),则拒绝“残差非平稳”原假设,认为协整存在。 |
📐 代码示例 (Python 风格)
import statsmodels.api as sm
import numpy as np
# 假设 y, x 均为 I(1) 序列
x = sm.add_constant(x) # 添加截距
model = sm.OLS(y, x).fit()
residuals = model.resid
# ADF 检验 (无常数项)
adf_stat, pvalue, _, crit_values, _ = sm.tsa.stattools.adfuller(residuals, autolag='AIC', regression='n')
print(f'ADF: {adf_stat:.3f}, 1%临界值: {crit_values["1%"]:.3f}')
if adf_stat < crit_values["1%"]:
print("✅ 拒绝原假设,存在协整关系")
else:
print("❌ 无法拒绝,无协整")
优势: 可检验多个(≥2)时间序列之间的协整关系,并确定协整秩(协整向量个数)。基于VAR模型和特征根。
📐 Python 实现 (statsmodels)
from statsmodels.tsa.vector_ar.vecm import coint_johansen
import pandas as pd
# data: DataFrame, 每列为一个 I(1) 序列
jres = coint_johansen(data, det_order=0, k_ar_diff=1)
# 迹统计量
print('迹统计量:', jres.lr1)
print('迹临界值(90%,95%,99%):\n', jres.cvt)
# 最大特征值统计量
print('最大特征值统计量:', jres.lr2)
print('对应临界值:\n', jres.cvm)
# 协整向量 (标准化)
print('协整向量 (beta):\n', jres.beta)
| 特征 | Engle-Granger 两步法 | Johansen 检验 |
|---|---|---|
| 变量数量 | 仅限两个变量 | 两个及以上 (多变量系统) |
| 协整向量 | 只能估计一个协整关系 | 可识别所有协整向量 (秩 r) |
| 方法基础 | OLS 回归 + ADF 残差检验 | VAR 模型 + 特征根似然比 |
| 小样本性质 | 偏差较大,尤其小样本 | 更稳健,但需要足够样本 |
| 假设限制 | 要求已知哪个变量为被解释变量 | 对称处理,无内生性假定 |
| 使用场景 | 快速检验配对交易 | 投资组合/篮子套利,宏观分析 |
📝 核心总结: 协整是统计套利的灵魂。Engle-Granger两步法简单直观,适合双资产配对;Johansen检验更强大,适合多资产篮子。理解经济含义——均衡与均值回复,是构建稳健策略的前提。