4、协整检验实战:Engle-Granger两步法、Johansen检验、协整对的筛选标准
协整检验,说白了就是找「长期伴侣」。
你想想看,两个价格序列,单独看都是随机游走,但它们的线性组合却稳稳当当。这就是协整的核心思想。我在做统计套利的前两年,踩过最大的坑就是——没做协整检验,直接拿相关性高的品种开干。结果呢?价差越跑越偏,亏得我头皮发麻。
今天咱们就把协整检验的实战细节掰开揉碎。我会重点讲两种方法:Engle-Granger两步法和Johansen检验。最后再聊聊筛选标准——这部分是我个人经验最密集的地方。
4.1 Engle-Granger两步法:简单粗暴,但够用
这个方法,名字听着唬人,其实逻辑很直白。
第一步:跑回归,算残差。
假设你有两个价格序列 X 和 Y。你先用 OLS 回归:
Y = α + β·X + ε
这里的 β 就是对冲比率,ε 是残差。残差就是价差。
第二步:检验残差是否平稳。
用 ADF 检验去测残差。如果残差是平稳的,那 X 和 Y 就是协整的。
代码实现很简单:
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller
# 假设 X, Y 是价格序列
X = sm.add_constant(X)
model = sm.OLS(Y, X).fit()
residuals = model.resid
# ADF检验残差
adf_stat, p_value, _, _, critical_values, _ = adfuller(residuals)
print(f'ADF统计量: {adf_stat:.4f}, p值: {p_value:.4f}')
if p_value < 0.05:
print('残差平稳 → 协整关系成立')
else:
print('残差不平稳 → 没有协整关系')
我个人习惯用 sm.tsa.stattools.coint 这个函数,一步到位:
from statsmodels.tsa.stattools import coint
score, p_value, _ = coint(Y, X)
print(f'协整检验p值: {p_value:.4f}')
EG两步法的优点是快、直观。缺点呢?只能处理一对变量。而且第一步的回归方向会影响结果——你用Y对X回归,和X对Y回归,得到的β不一样。嗯,这里要注意。
4.2 Johansen检验:多品种协整的利器
当你要同时检验三个、四个品种时,EG两步法就不够用了。这时候得请出Johansen检验。
Johansen检验的核心是看一个叫「秩」的东西。说白了,就是看协整关系的个数。
它给出两个统计量:
- 迹统计量(Trace Statistic)
- 最大特征值统计量(Max Eigenvalue Statistic)
两个统计量互相印证,结论更可靠。
代码实现:
from statsmodels.tsa.vector_ar.vecm import coint_johansen
# data 是多个品种的价格矩阵,每列一个品种
result = coint_johansen(data, det_order=0, k_ar_diff=1)
print('迹统计量:', result.lr1)
print('迹统计量临界值(95%):', result.cvt)
print('最大特征值统计量:', result.lr2)
print('最大特征值临界值(95%):', result.cvm2)
输出结果里,你会看到类似这样的表格:
| 协整秩 | 迹统计量 | 95%临界值 | 结论 |
|---|---|---|---|
| r ≤ 0 | 45.23 | 29.68 | 拒绝(存在协整) |
| r ≤ 1 | 12.45 | 15.41 | 不拒绝(最多1个协整关系) |
| r ≤ 2 | 3.21 | 3.76 | 不拒绝(最多2个) |
从上面看,r ≤ 0 被拒绝,说明至少有一个协整关系。r ≤ 1 没被拒绝,说明最多一个。所以结论是:存在1个协整关系。
4.3 协整对的筛选标准:实战中的「避坑指南」
检验通过了,是不是就能直接上实盘?别急。我见过太多人卡在这一步。
协整检验通过,只是「统计学上显著」。但实盘交易,你还得看「经济学上合理」和「策略上可执行」。
我总结了一套筛选标准,按优先级排列:
- p值要足够小——至少小于0.05,我个人习惯用0.01。p值越小,伪回归的概率越低。
- 半衰期要适中——半衰期是价差回归均值的时间。太短(比如1小时)说明噪声多,交易成本高。太长(比如20天)说明回归太慢,资金占用大。我一般选2-7天的半衰期。
- 对冲比率要稳定——用滚动窗口算β,看β的波动率。如果β忽高忽低,说明对冲关系不稳定。我曾经遇到一个品种对,协整检验p值0.001,但β的波动率超过30%,结果实盘一跑就崩。
- 经济逻辑要自洽——两个品种得有业务关联。比如同行业的股票、上下游产业链的期货。纯粹统计上的协整,没有经济逻辑支撑,迟早会失效。
- 流动性要够——这是最容易被忽略的。协整检验通过了,但其中一个品种日均成交额只有几百万,你一开仓就把价差打穿了。嗯,这个坑我踩过。
📌 核心要点: 协整检验只是入场券。真正的筛选,是看半衰期、β稳定性、经济逻辑和流动性。这四个维度缺一不可。
4.4 知识体系总览
下面这张图,是我自己梳理的协整检验知识框架。你可以把它当作一个检查清单:
这张图把整个流程串起来了。从左到右,从上到下,每一步都不能跳过。
好了,协整检验的实战部分就聊到这儿。记住:检验只是手段,赚钱才是目的。别在统计显著性上钻牛角尖,多花点时间在筛选标准和风控上,回报会更高。
公众号:蓝海资料掘金营,微信deep3321