4. 最小二乘法(OLS)估计:OLS原理、回归残差分析、对冲比率计算实例
好,咱们进入正题。配对交易里最核心的一步,就是算对冲比率。说白了,就是找到两个品种之间稳定的线性关系。怎么找?最经典的方法就是最小二乘法,也就是OLS。
我刚开始做配对交易那会儿,也试过各种花里胡哨的方法。后来发现,OLS虽然简单,但用好了,效果一点不差。关键是你要理解它背后的逻辑,而不是只会调包。
4.1 OLS原理:到底在最小化什么?
OLS的全称是Ordinary Least Squares,普通最小二乘法。名字听着挺唬人,其实核心思想就一句话:找到一条直线,让所有数据点到这条直线的垂直距离的平方和最小。
你想想看,我们有两个品种,比如X和Y。我们想用X去解释Y,也就是:
Y = α + β * X + ε
这里的β就是我们要的对冲比率。ε是残差,也就是模型没解释掉的部分。
OLS要做的,就是找到一组α和β,让所有残差的平方和最小。为什么是平方?因为平方可以放大大的误差,让模型更关注那些偏离大的点。嗯,这里要注意,平方也意味着异常值会被放大,后面我们会讲到怎么处理。
核心公式:
β = Cov(X, Y) / Var(X)
α = mean(Y) - β * mean(X)
我个人习惯,拿到数据后先算一下协方差和方差,心里有个底。这两个值能告诉你两个品种的联动性有多强。
4.2 回归残差分析:别只看R²
很多人做完OLS,看一眼R²很高就完事了。我建议你别这样。R²高不代表模型就好,残差里可能藏着大问题。
残差分析,说白了就是看模型没解释掉的部分有没有规律。如果残差还有明显的趋势或周期性,说明你的模型没抓到关键信息。
我在项目中遇到过一件事:有一次做两个能源股的配对,R²高达0.95,我差点就直接上线了。后来仔细一看残差图,发现残差有明显的季节性波动。原来这两个品种受不同季节的供需影响,简单的线性关系根本不够用。
残差分析主要看三点:
- 残差是否平稳:用ADF检验,p值要小于0.05
- 残差是否自相关:用Durbin-Watson检验,值接近2最好
- 残差是否异方差:用Breusch-Pagan检验,p值要大于0.05
我的小技巧:
画一张残差vs拟合值的散点图。如果点随机分布在0轴上下,没有明显的喇叭形或弯曲,那模型基本靠谱。
4.3 对冲比率计算实例:手把手来一遍
光说不练假把式。咱们拿两个ETF来举个例子:SPY(标普500ETF)和IVV(另一个标普500ETF)。理论上它们应该高度相关,但实际交易中会有价差。
假设我们有100个交易日的收盘价数据:
| 日期 | SPY | IVV |
|---|---|---|
| 2024-01-02 | 475.20 | 473.80 |
| 2024-01-03 | 473.50 | 472.10 |
| ... | ... | ... |
| 2024-05-31 | 520.30 | 518.90 |
用Python跑一下OLS:
import numpy as np
import statsmodels.api as sm
# 假设spy和ivv是已经准备好的价格数组
X = sm.add_constant(spy) # 加常数项
model = sm.OLS(ivv, X).fit()
print(model.summary())
# 提取对冲比率
hedge_ratio = model.params[1]
print(f"对冲比率: {hedge_ratio:.4f}")
跑出来的结果大概是这样的:
对冲比率: 0.9972
R²: 0.9985
残差标准差: 0.4521
你看,对冲比率接近1,这符合预期。两个都是标普500ETF,理论上应该同涨同跌。但0.9972意味着什么?意味着每持有1份SPY,需要做空0.9972份IVV来对冲。
我曾经踩过的坑:
直接用收盘价做OLS,忽略了股息调整。结果回测时发现对冲比率一直在漂移。后来我改用调整后的价格,问题就解决了。记住,数据质量决定模型质量。
4.4 动态调整:为什么不能一劳永逸?
有人会问:算出来一个对冲比率,是不是就能一直用?我的回答是:别做梦了。
市场在变,两个品种的关系也在变。半年前算出来的对冲比率,放到今天可能已经失效了。我建议的做法是:
- 滚动窗口:用最近60个交易日的数据,每天重新算一次
- 指数衰减:给近期的数据更高的权重,远的权重低
- 阈值触发:当残差的标准差超过某个阈值时,重新估计
我个人比较喜欢滚动窗口,简单直接。窗口大小选多少?这得看你的交易频率。做日频交易,60天差不多。做高频的,可能20天就够了。
下面这张图展示了OLS的核心流程,从数据输入到对冲比率输出,每一步都环环相扣:
你看,整个流程其实不复杂。关键是要形成闭环——算出来、检验、不行就重来。这才是实战中该有的态度。
实战建议:
别一次性把所有资金都押上。先用小仓位跑一段时间,观察对冲比率是否稳定。稳定了再加仓,这是我从亏钱中学到的教训。
好了,这一章的内容就到这儿。OLS的原理、残差分析、还有具体的计算实例,我都给你讲透了。下一章咱们聊聊怎么用这些对冲比率去构建实际的交易策略。
公众号:蓝海资料掘金营,微信deep3321