3. 相关性分析:如何用协整与相关系数筛选套利对

做跨品种套利,第一步就是找「对的人」。

你想想看,如果两个品种各走各的,毫无关系,那还套什么利?说白了,我们要找的是那些「同涨同跌」或者「你涨我跌」的品种对。但这里有个坑——很多人只看相关系数,觉得0.9以上就稳了。嗯,我刚开始做套利时也这么干过,结果亏得挺惨。

3.1 相关系数:入门级筛选工具

相关系数是最直观的指标。它衡量两个变量之间的线性关系强度,取值范围在-1到1之间。

  • 正相关(接近1):比如螺纹钢和热卷,同属黑色系,走势高度同步
  • 负相关(接近-1):比如黄金和美元指数,通常反向运动
  • 零相关(接近0):比如比特币和猪肉价格,基本没关系

计算很简单,用皮尔逊相关系数公式:

import numpy as np

def pearson_corr(series1, series2):
    return np.corrcoef(series1, series2)[0, 1]

# 示例:螺纹钢和热卷的日收益率
corr = pearson_corr(steel_returns, hot_coil_returns)
print(f"相关系数: {corr:.4f}")

重要提醒:相关系数有个致命缺陷——它只能捕捉线性关系。而且,它假设数据是平稳的。现实中很多价格序列是非平稳的,这时候相关系数会「虚高」。我见过有人拿两个随机游走序列算出0.8的相关系数,还以为是发现了宝藏。

我的经验:相关系数只适合做初筛。我个人习惯先算一遍所有品种对的相关系数,把低于0.6的剔除掉,然后再用协整做精筛。这样效率高很多。

3.2 协整:真正的套利关系检测

相关系数看的是「价格走势是否相似」,而协整看的是「价差是否稳定回归」。

为什么协整更重要?因为套利的本质是价差回归。两个品种即使相关系数不高,但只要它们的价差在长期内围绕均值波动,那就是好的套利对。

举个例子:我记得有个学员问我,为什么豆粕和菜粕的相关系数只有0.7,但套利效果却很好?原因就是它们之间存在协整关系——价差有明确的上下界,到了边界就会回归。

3.2.1 协整的数学定义

两个非平稳时间序列 \( X_t \) 和 \( Y_t \),如果存在一个线性组合 \( Z_t = Y_t - \beta X_t \) 是平稳的,那么它们就是协整的。

这里的 \( \beta \) 就是对冲比率。简单说,就是每做1手Y,需要做多少手X来对冲。

3.2.2 Engle-Granger两步法

这是最常用的协整检验方法,分两步走:

  1. 第一步:用OLS回归估计对冲比率 \( \beta \)
  2. 第二步:对残差序列做单位根检验(ADF检验)
import statsmodels.api as sm

def engle_granger_coint(Y, X):
    # 第一步:OLS回归
    X_const = sm.add_constant(X)
    model = sm.OLS(Y, X_const).fit()
    beta = model.params[1]
    residual = model.resid
    
    # 第二步:ADF检验残差平稳性
    adf_result = sm.tsa.stattools.adfuller(residual, maxlag=1)
    adf_stat = adf_result[0]
    p_value = adf_result[1]
    
    return beta, adf_stat, p_value

# 示例
beta, adf_stat, p_value = engle_granger_coint(price_Y, price_X)
print(f"对冲比率: {beta:.4f}")
print(f"ADF统计量: {adf_stat:.4f}")
print(f"p值: {p_value:.4f}")

避坑指南:我曾经犯过一个错误——直接用价格做协整检验,结果发现p值很小,以为找到了好对。后来才发现,那是因为两个品种都有明显的趋势项。正确的做法是:先确认两个序列都是I(1)(一阶单整),再做协整检验。否则结果不可靠。

3.3 相关系数 vs 协整:什么时候用哪个?

指标 优点 缺点 适用场景
相关系数 计算快,直观易懂 只能检测线性关系,对非平稳数据失效 初筛,快速排除无关品种
协整 检测长期均衡关系,适合套利 计算复杂,对参数敏感 精筛,确认套利对的有效性

我个人习惯的流程是:先用相关系数把全市场几千个品种对砍到几十个,再用协整从几十个里挑出5-10个真正能用的。这样既节省时间,又保证质量。

3.4 实战中的注意事项

  • 窗口期选择:协整检验对时间窗口很敏感。我建议至少用1年的日线数据,太短了容易误判。
  • 多重检验问题:如果你同时检验100个品种对,即使它们都不协整,也会有5个左右被误判为协整(5%显著性水平)。所以,p值要设得更严格,比如0.01。
  • 经济逻辑:不要只看统计结果。两个品种如果没有任何经济关联,即使统计上协整,也可能是伪回归。比如,我见过有人把中国A股和巴西咖啡豆做协整,结果p值还挺小——但你觉得这能套利吗?

我的小技巧:在做协整检验前,先画个价差图。如果价差看起来有明显的趋势或季节性,那大概率不是好的套利对。眼睛有时候比统计指标更管用。

3.5 本章知识体系

下面这张图总结了相关性分析的核心逻辑:

相关性分析:套利对筛选流程 相关系数初筛 阈值:|r| > 0.6 协整检验 ADF检验 p < 0.01 经济逻辑验证 同产业链/替代关系 关键要点: • 相关系数:快速排除无关品种,但可能误判 • 协整检验:确认长期均衡关系,是套利的核心 • 经济逻辑:避免伪回归,确保套利有基本面支撑 • 窗口期:至少1年日线数据,避免小样本偏差 • 多重检验:严格p值阈值,控制误判风险 三步走:相关系数 → 协整检验 → 经济逻辑验证

好了,这一章就到这里。记住:相关系数是「看脸」,协整是「看心」。两者结合,才能找到真正能赚钱的套利对。