第 31 篇
协整的直观认识
量化课堂第 31 篇(postId=1731,作者石佛、肖睿,编辑宏观经济算命师,难度进阶下、理解深度 level-0,2016-07-05 上线,v1.1 于 2016-10-13 修正概念性错误)。数学工具组的开篇:只用直观语言解释「什么是平稳、什么是协整、协整为什么能赚钱」,不做严格公式推导,具体算法留待后续(第 15 篇《股指期货跨期套利》已用过它的操作版,第 32 篇给回归工具)。素材见 raw/collections/jq-quant-classroom/31-31-协整的直观认识md.md。
这是什么
一篇纯概念的入门文。它回答三个问题:单只股票价格多数不平稳,为什么还能赌「回归」?答案是——找两只都不平稳的股票,它们的价差(线性组合)可能平稳;这时可以赌价差收敛。这就是配对交易的由来。文章用自造数据演示「两只都带趋势的非平稳序列,差序列却围绕常数均值波动」。
核心要点
平稳性:一个很好用、但现实中少见的东西
- 平稳性(stationarity):序列随时间推移保持稳定——均值、方差都不变。有它才能放心套用统计技术。
- 应用逻辑:若某资产价格序列(或两个序列的价差)平稳,则它偏离均值后,人们「可以期待」未来回归均值,借此获利。
- 例子:一只股票长期均值 9 元、现价 8 元。若检验认为序列平稳、且这个平稳性能保持,就买入等它回 9 元,赚 1 元。前提是「平稳性能保持」——这是作者明说的假设。
- 现实:绝大多数股票价格是非平稳的(长期均值在变)。
协整:两串都不稳,组合却稳
- 若两组非平稳序列,它们的线性组合能得到一个平稳序列 → 称它们协整(cointegration)。统计性质可用在这个组合序列上。
- 关键警告:协整 ≠ 相关(correlation)。
- 配对交易(pairs trading)的由来:两只股票的价差平稳 → 价差过大时,买低价股、卖空高价股,等价格回归时反向操作获利。原文称「这就是配对交易的由来」。
平稳的两种层次与单位根检验
- 严平稳(strictly stationary):分布函数始终不变。弱平稳(协方差平稳):描述性统计量恒定。两者互不包含;但严平稳且方差有限 ⇒ 弱平稳。平时说的平稳 = 弱平稳。
- 判定用单位根检验(unit root test)。Dickey-Fuller test 思路:假设 Y_t = α·Y_{t−1} + ε_t(α 回归系数、ε 噪声),若检验出 α < 1 则序列平稳。
- ADF(augmented Dickey-Fuller)是考虑滞后性的衍生版,本文不展开,预告数学专栏会细讲。
自造数据的演示
- 构造 X_t = 100 + γ_t(趋势项)+ ε_t(噪声),Y_t = X_t + 30 + μ_t(再叠独立噪声);逐点再减去 i/10 的公共趋势。
- 两条序列都是非平稳的(均值随时间漂移);但差序列 Y_t − X_t 平稳——围绕自己的均值波动,均值与方差都不随时间变。
- 代码要点:
np.random.seed(100);x,y = norm(0,1,500);X = cumsum(x)+100;Y = X+y+30;import 里带了from statsmodels.tsa.stattools import coint,但展示的代码只画图、没做正式检验。 - 结论定位:这是 level-0 的直观介绍;文末有可运行 notebook,可在聚宽研究环境克隆运行。
机制 / 论证
- 为什么非平稳也能用统计:单个序列不平稳 → 不能直接回归均值。但两个同受长期趋势牵引的序列,它们的差可能把那部分共同趋势消掉,剩下围绕常数均值摆动的平稳残差 → 统计工具又可用。
- 为什么价差会收敛:价差平稳的断言背后是「两序列存在长期均衡关系、偏离会自我修正」。它是统计假设,不是保证——这正是配对交易要设认亏线的原因(第 15 篇把它做成 |resid3|>2 认亏)。
- 协整 ≠ 相关,为什么:相关只衡量两条序列「同步涨跌的程度」,与「组合是否平稳」无关。两条都跟着大盘走的股票相关性极高,价差仍可能发散。要判断的是「线性组合的残差稳不稳」,必须用检验(ADF)而不是看相关系数。
可操作
- 配对交易的数学检查清单(结合第 15 篇的完整操作版):
- 取两只(或多只)标的价格的对数序列。
- 先确认单个序列非平稳(ADF 检验,p 值大 → 非平稳)。
- 对 ln(A) ~ ln(B) 做回归,取残差(回归工具见第 32 篇)。
- 对残差做 ADF:残差平稳(p 值小)→ 协整成立。
- 用价差偏离均值几个标准差做开平仓信号(第 15 篇:1<|resid3|<2 开仓、回 0 平、超 2 认亏)。
- 第 15 篇(股指期货跨期套利)给过完整数字实例:IF1007/IF1008 的 240 分钟对数价差,两序列 ADF p≈0.74/0.80(非平稳),回归残差 ADF p=0.000412(平稳)→ 协整成立。
- 代码运行:在聚宽研究环境克隆文中 notebook(notebookCloneCount=378),改 np.random.seed 复现同一条序列。
术语
- 平稳性:序列均值、方差随时间不变的统计性质。
- 严平稳 / 弱平稳(协方差平稳):分布函数不变 / 描述统计量不变。
- 单位根检验:判断序列是否弱平稳的一族检验。
- Dickey-Fuller / ADF:单位根检验方法;ADF 是其考虑滞后的衍生版。
- 协整:非平稳序列的某个线性组合平稳。
- 配对交易:两只协整标的,价差偏离时买低卖高、回归时反向平仓。
不确定 / 待验证
- 本文是 level-0 直观文,没有给协整的严格数学定义(Engle-Granger 两段法、协整向量等),只到「线性组合平稳」的口头定义;raw 末尾注明严整内容留给「数学专栏」。
- 正文说「构造两组数据、每组长度 100」,但下方代码
np.random.normal(0,1,500)是 500 点——正文与代码数字不一致 [需要验证],按代码 500 记。 - 演示只画了 Y−X 的图、没跑 ADF 等正式检验;import 的
coint函数在展示代码中未被调用。 - 「平稳性能保持」与「价差会收敛」都是假设;本文没有回测/实证数字,实证在应用类文章(第 15 篇等)。
- 第 15 篇(跨期套利)先于本篇落地了协整的操作版;本篇补的是概念源头,两篇的残差/ADF 口径应互相对照读。
相关
- 跨期套利(同一标的、不同交割月的价差交易) — 协整在期货价差套利里的完整应用(第 15 篇,ADF 实例与开平仓规则)
- 协整(非平稳序列的平稳线性组合) — 协整共享概念页(本篇 + 15 篇的提炼)
- 均值回归(买超跌赌反转) — 单序列的均值回归(与本篇「组合回归」的层次区别)
- 股指期货跨期套利策略 — 协整建模 + 回归残差 ADF 的操作版(第 15 篇,postId=4296)
- Statsmodels 统计包之 OLS 回归 — 做残差回归的工具篇(第 32 篇)
- 聚宽量化课堂(低频量化策略 43 篇) — 量化课堂 43 篇总览
更新 2026-09-06