5. 统计套利基础:均值回归理论、平稳性检验(ADF)、自相关与偏自相关分析

各位同学,欢迎来到第五章。这一章我们聊点硬核的——统计套利的数学地基。

说实话,我刚入行那会儿,觉得统计套利就是“买便宜的,卖贵的”,简单粗暴。后来在实盘里被市场狠狠教育了几次,才明白:没有统计检验支撑的套利,跟赌博没什么区别

今天我们就来拆解三个核心概念:均值回归理论平稳性检验(ADF)自相关与偏自相关分析。这三板斧,是基差交易套利模型的入门必修课。


5.1 均值回归理论:套利的底层信仰

均值回归,说白了就是一句话:价格涨多了会跌,跌多了会涨。听起来像废话?但背后有严谨的数学逻辑。

在金融时间序列里,如果一个序列是均值回归的,那它就会围绕某个长期均值上下波动。偏离均值越远,回归的概率越大。

核心公式(简化版):

Δyt = θ(μ - yt-1) + εt

其中:θ 是回归速度,μ 是长期均值,εt 是随机扰动。

θ 越大,回归越快;θ 为负,说明序列发散——那套利就危险了。

我在项目中遇到过一种情况:两个相关性很高的品种,价差看起来在均值附近来回摆动。我兴冲冲地建了套利头寸,结果价差一路狂奔不回头。后来复盘才发现——那个“均值”早就变了

所以,均值回归不是万能的。你得先确认:

  • 这个均值是稳定的,不是漂移的
  • 回归速度θ是显著非零
  • 偏离程度在统计上显著,而不是随机波动

我的个人习惯:在实盘前,先用滚动窗口计算均值,看看它是不是随时间变化。如果均值本身在漂移,那这套利模型大概率会亏钱。


5.2 平稳性检验(ADF):套利的“体检报告”

你想想看,如果价差序列不平稳,均值回归就无从谈起。所以,平稳性检验是套利模型的第一道门槛

最常用的就是ADF检验(Augmented Dickey-Fuller Test)。它的原假设是:序列存在单位根(即非平稳)。

如果p值小于0.05,我们就拒绝原假设,认为序列是平稳的。嗯,这里要注意:p值不是越小越好,而是越小越有信心

5.2.1 ADF检验的Python实现

import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import adfuller

# 模拟一个均值回归序列
np.random.seed(42)
n = 500
theta = 0.3  # 回归速度
mu = 100     # 长期均值
y = np.zeros(n)
y[0] = 105
for t in range(1, n):
    y[t] = y[t-1] + theta * (mu - y[t-1]) + np.random.normal(0, 2)

# ADF检验
result = adfuller(y, autolag='AIC')
print(f'ADF统计量: {result[0]:.4f}')
print(f'p值: {result[1]:.6f}')
print(f'临界值:')
for key, value in result[4].items():
    print(f'  {key}: {value:.4f}')

if result[1] < 0.05:
    print('✅ 序列平稳,可以继续套利分析')
else:
    print('❌ 序列非平稳,需要差分或寻找其他配对')

输出结果大概长这样:

指标
ADF统计量 -4.8721
p值 0.000042
1%临界值 -3.4435
5%临界值 -2.8673
10%临界值 -2.5699

我曾经踩过的坑:有一次,ADF检验p值0.03,我以为是平稳的。结果实盘跑了两个月,价差突然“起飞”,亏了不少。后来发现——样本量太小,只有100个数据点。ADF检验在小样本下功效很低,建议至少用500个以上的数据点。


5.3 自相关与偏自相关分析:找“记忆”的工具

平稳性只是第一步。接下来我们要问:这个序列有没有“记忆”?也就是说,今天的价差和昨天的价差有没有关系?

这就引出了两个工具:

  • 自相关函数(ACF):衡量yt和yt-k之间的相关性
  • 偏自相关函数(PACF):剔除中间变量后,yt和yt-k的“净”相关性

为什么重要?因为ACF和PACF能帮你确定均值回归模型的阶数。比如,如果PACF在滞后1期后截尾,那可能是个AR(1)过程——也就是一阶自回归。

5.3.1 画图看ACF和PACF

import matplotlib.pyplot as plt
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8))

plot_acf(y, lags=30, ax=ax1, alpha=0.05)
ax1.set_title('自相关函数 (ACF)')

plot_pacf(y, lags=30, ax=ax2, alpha=0.05, method='ywm')
ax2.set_title('偏自相关函数 (PACF)')

plt.tight_layout()
plt.show()

你会看到类似这样的图形:

  • ACF:缓慢衰减,像“拖尾”一样
  • PACF:在滞后1期后突然截尾,掉到置信区间内

这说明什么?序列可以用AR(1)模型描述。也就是说,今天的价差主要受昨天的影响,更早的历史影响不大。

我的经验:在实盘里,我很少看到完美的截尾或拖尾。市场数据总有噪声。我的做法是:看前5-10个滞后的模式,如果PACF在滞后2-3期后基本都在置信区间内,那就用AR(2)或AR(3)试试。别过度拟合。


5.4 知识体系总览

下面这张图,是我自己整理的知识框架。你可以把它当作本章的“地图”:

统计套利基础:知识体系 统计套利基础 均值回归理论 平稳性检验 (ADF) 自相关/偏自相关 核心:θ(μ - yt-1) 前提:均值稳定不漂移 风险:结构突变导致失效 原假设:存在单位根 p值 < 0.05 → 平稳 注意:样本量≥500 ACF:整体相关性 PACF:净相关性 用途:确定模型阶数 三者结合 → 构建可交易的套利策略 平稳性确认 + 回归速度估计 + 模型阶数确定

5.5 实战中的注意事项

讲完了理论,我分享几个实战中的“血泪教训”:

  1. 不要只看p值。p值显著不代表模型能赚钱。还要看回归速度θ的大小——θ太小,回归太慢,资金占用成本可能吃掉利润。
  2. 滚动检验。市场结构会变。我习惯每100个数据点重新做一次ADF检验,如果发现序列变得不平稳,立刻平仓。
  3. ACF/PACF的置信区间。默认的95%置信区间在样本量小时会偏窄。我一般用99%的置信区间,宁可漏掉一些信号,也不要被假信号骗进去。
  4. 小心“伪回归”。两个非平稳序列的回归,即使R²很高,也可能是假的。一定要先做协整检验(下一章会讲)。

我曾经犯过的错:有一次,我看到ACF在滞后10期还有显著的相关性,就自作聪明地建了一个AR(10)模型。结果过拟合严重,样本外预测一塌糊涂。后来才明白——ACF的“拖尾”可能是长记忆性的表现,不一定需要高阶模型。有时候,简单就是最好的。


5.6 本章小结

这一章我们聊了三件事:

  • 均值回归理论:套利的底层逻辑,但要注意均值是否稳定
  • ADF平稳性检验:判断序列是否适合套利,p值不是唯一标准
  • ACF与PACF分析:帮你找到序列的“记忆长度”,确定模型阶数

这三者环环相扣。没有平稳性,均值回归就是空中楼阁;没有ACF/PACF,你就不知道回归模型该用几阶。说白了,统计套利不是拍脑袋,而是用数据说话

下一章,我们会把这些工具串起来,构建一个完整的基差交易套利模型。到时候,你会看到这些理论是怎么在代码里落地的。


公众号:蓝海资料掘金营,微信deep3321