Ornstein-Uhlenbeck 过程:把均值回归做对
OU 过程,它的 SDE,对均值回归序列的校准,以及为什么半衰期是对交易者最有用的参数。
几何布朗运动对股票很棒,但金融中有大量东西不是几何的。相关性资产的价差回归均值。利率均值回归。波动率聚集在长期水平附近。库存头寸被拉回目标。所有这些对的工具是 Ornstein-Uhlenbeck 过程。
OU 过程是 AR(1) 过程的连续时间极限。它是最简单的均值回归扩散。它有平稳分布、高斯转移律、闭式解。它也是 Vasicek 利率模型的基础,我们下一篇文章会涵盖。
这篇文章会走过 SDE,显式求解,推导半衰期公式,并展示怎么校准到数据上。如果你跑过配对交易,你隐式地用过 OU。
SDE
Ornstein-Uhlenbeck 过程 满足
三个参数: 是均值回归速度, 是长期均值, 是波动率。漂移 以速率 把 拉回 ,远离时拉得快,接近时拉得慢。扩散 是常数,不随 成比例(那是另一种不同的东西)。
对比 GBM:。GBM 中的漂移与 成比例,所以过程非平稳(无界增长)。OU 中的漂移有反向项 ,产生恢复力,得到平稳性。OU 中的扩散是常数,所以 不会爆炸。恢复性漂移加常数扩散的组合让 OU 如此有用。
如果 ,方程化简为 ,即布朗运动(非平稳)。如果 大,均值回归强, 紧贴 。无量纲量 相对于 控制行为。
显式解
OU 过程是少数有闭式解的非平凡 SDE 之一。对 应用 Itô 引理:
从 0 积分到 :
解出 :
这是显式的 OU 路径。三块:长期均值 、初始条件衰减 、对布朗运动的随机卷积。卷积是均值为零、方差为 的高斯随机变量。
因此,条件于 , 的分布是高斯的:
均值以速率 回归 。方差收敛到 ,即平稳方差。
平稳分布
当 , 的影响消失( 项趋于零)。 的分布收敛到
这就是 OU 过程的平稳分布。它是均值 、方差 的高斯。过程不会爆炸;不会漂走;永远围绕 起伏,波动幅度正比于 。
两个重要推论:
- 无条件均值是 。无条件方差是 。
- 更高(更快回归)或 更低(更少噪声)意味着更小的平稳方差。过程更紧地贴着均值。
当你听到”均值回归 ,波动率 “,你应该想到的正是这个平稳分布。它是过程的均衡态。
半衰期
OU 过程最有用的汇总统计量是均值回归的半衰期。由显式解可知,对均值的偏离是 。半衰期就是这个偏离减半所需的时间:
所以如果 (年化),半衰期大约 1.4 年。如果 (年化),大约 0.35 年。回归越快,半衰期越短。
半衰期是交易者在说”这对配对 30 天内回归”或”利率的 5 年半衰期”时引用的数字。它比 更可解释,因为它直接对应时间。它也给你一条经验法则:如果你看到一个偏离已经持续了好几个半衰期,“均值回归交易”很可能已经失败。
一个常见陷阱: 很小(半衰期很长)的 OU 过程在短期内看起来像随机游走。30 天之内,半衰期 250 天的 OU 朝均值的移动微乎其微。如果你的回看期短而半衰期长,你分不清看到的是均值回归还是只是噪声。
Fokker-Planck 方程
OU 过程有上面给出的高斯转移密度。密度 随时间的演化受 Fokker-Planck 方程支配:
第一项是漂移贡献(概率流向 )。第二项是扩散贡献(概率扩散开来)。在平稳时 ,上面的高斯就是解。
对 Monte Carlo,你不需要直接用 Fokker-Planck 方程。但它对理解分布如何演化、对验证模拟结果有用。对非 OU 过程(跳跃扩散、Lévy),Fokker-Planck 方程推广为偏积分微分方程。
对数据校准
假设你在等距时刻 观察到时间序列 。你想估计 、、。
OU 的离散时间类比是 AR(1) 过程:
到连续时间参数的关系是:
所以你可以用 OLS 回归估计 、、,然后反推 、、:
这是标准校准。它很快(一次 OLS),并在高斯噪声下给出最大似然估计。
一些实战注意事项:
- 用序列的自相关来抽查 。OU 离散化序列的滞后 1 自相关是 。如果你看到滞后 1 自相关接近 1, 很小。
- 对慢回归(), 的 OLS 估计接近 1, 的小偏差会被 变换放大。要小心。
- 对快回归(),离散序列几乎独立。半衰期比采样间隔短,你不能可靠地估计 。你需要更高频的数据。
import numpy as np
from scipy import stats
def calibrate_ou(x, dt):
"""Calibrate OU parameters from a time series."""
x_lag = x[:-1]
x_now = x[1:]
slope, intercept, r_value, _, _ = stats.linregress(x_lag, x_now)
b = slope
a = intercept
resid = x_now - (a + b * x_lag)
s2 = resid.var(ddof=2)
kappa = -np.log(b) / dt
theta = a / (1 - b)
sigma = np.sqrt(s2 * 2 * kappa / (1 - b**2))
half_life = np.log(2) / kappa
return kappa, theta, sigma, half_life
这是典型的估计器。在模拟序列上跑它验证它能恢复已知参数。在真实数据上跑它来得到校准的 、、 和半衰期。
配对交易
OU 的经典量化用法是配对交易。找到两个协积资产 和 。计算价差 ,其中 是协积系数。把 建模为 OU。当 偏离 时,赌回归:做多 ,做空 单位的 。
OU 参数决定交易。半衰期告诉你预期的持有期。平稳方差告诉你均值回归运动的典型大小。当前对 的偏离,用平稳标准差为单位度量,就是 z-score。只有当 z-score 极端时才交易(比如 )。
配对交易的回测需要用校准的参数模拟 OU 路径。OU 假设不可省:没有均值回归,策略没有期望收益,只有回撤。
Vasicek 联系
OU 过程是 Vasicek 短期利率模型的构造块:
短期利率 服从 OU。它可以变负(对大多数货币来说经验上错误,但数学上干净)。Vasicek 下的债券定价公式是闭式的,用到 OU 转移密度。下一篇会详细讲。
OU 也支撑着远期波动率的 Bergomi 模型、随机波动率的 Schöbel-Zhu 模型,以及许多商品价差方面的从业者模型。同一 SDE,穿上不同状态变量的外衣,适合不同市场。
实战中的半衰期
均值回归的半衰期是做均值回归策略的量化最有用的单一数字。三条经验法则:
- 长半衰期(年)。 慢回归。仓位应该小,因为每次移动相对偏离来说小。持有期长。融资成本重要。
- 中等半衰期(周到月)。 很多配对交易的甜蜜点。移动有意义,持有期可控,融资成本可承受。
- 短半衰期(天)。 快回归。仓位可以大。融资成本低。但模型对微观结构更敏感(买卖价差抖动、离散价格)。
如果你校准出 30 天的半衰期,你的策略应该平均持有大约那么久。如果你持有 5 天,你是在回归发生前就退出了。如果你持有 200 天,你早就过了典型均值回归时间,暴露在模型误设之下。
失败模式
OU 是线性、高斯模型。它在以下情况下失败:
- 过程是非线性的。 漂移以非仿射方式依赖于 。解决方案:用不同的 SDE(CIR、CEV、跳跃扩散)。
- 过程有跳跃。 违反连续性的离散冲击。解决方案:跳跃扩散。
- 体制切换。 参数本身随时间变化。解决方案:隐马尔可夫模型或分段 OU。
- 序列非平稳。 均值或方差漂移。解决方案:差分序列或用别的模型。
实际中,金融中很多”OU”序列其实不是 OU。它们在短窗口看起来像 OU,但参数在更长窗口上漂移。谨慎校准,频繁重新估计。
需要带走的要点
Ornstein-Uhlenbeck 过程是最简单的均值回归扩散。它的 SDE 是 ,有闭式转移密度和平稳分布。半衰期 是最有用的汇总统计量。
对价差、利率、以及任何围绕长期水平波动的序列用 OU。通过对 AR(1) 离散化做 OLS 来校准。当偏离用平稳标准差度量很大时交易,并在大约半衰期时退出。模型简单、稳健、应用广泛。
参考文献:Øksendal (2003),第 5.2 节;Glasserman (2004),第 3.4 节(Cox-Ingersoll-Ross 推广);Hull (2018),第 31 章(利率中的均值回归);Luenberger (1998),第 11 章。ISBN:978-0-19-510809-5。原来的 OU 过程是 1930 年 Leonard Ornstein 和 George Uhlenbeck 作为带摩擦的布朗运动模型提出的。它是最古老的连续时间随机过程之一,至今仍是最有用的之一。
Vasicek 桥梁
OU 过程是让 Vasicek 短期利率模型可处理的原因。如果 是 OU,那么对任何期限 ,条件于 , 的分布是高斯,且均值、方差显式:
这是唯一一个有闭式债券价格的高斯短期利率模型。债券价格 是贴现因子 ,OU 过程的积分是正态分布的(高斯过程的线性泛函还是高斯的)。所以我们能闭式计算期望。Vasicek 债券价格公式是
其中
且 涉及均值回归漂移的积分。关键事实:债券价格对 是仿射的。这就是仿射期限结构模型的定义性质。
下一篇文章详细涵盖 Vasicek 及其扩展 Cox-Ingersoll-Ross 模型。
协积与 Engle-Granger 两步法
配对交易中,我们通常假设两个资产 和 协积:存在线性组合 使得 平稳。Engle-Granger 步骤:
- 把 对 回归(带截距):。得到残差 。
- 用 Augmented Dickey-Fuller 检验残差的平稳性。
- 如果平稳,把 建模为 OU 并继续。
第 1 步中的系数 是协积向量。OU 校准给出的半衰期告诉你回归速度。 的当前值是对均衡的偏离;其 z-score(相对于平稳标准差)是交易信号。
一个常见陷阱:回归的 是拟合到历史数据的。如果 和 之间的关系不稳定, 漂移,你的价差是被误设的。频繁重新估计 (滚动窗口),或者用更复杂的方法比如多协积资产的 Johansen 步骤。
半衰期估计对回看窗口敏感。窗口长给出稳定估计,但可能包含关系不同的时期。窗口短反应快但噪声大。没有完美答案。大多数配对交易者用 60 到 250 个交易日之间的窗口。
关于均值回归速度的注记
参数 单位是时间的倒数。如果你对每日数据拟合 OU 得到 ,半衰期大约 139 天。但如果你对周数据拟合,你会得到不同的数字,因为 OLS 估计器依赖于采样间隔。具体说,采样间隔 下的滞后 1 自相关是 ,所以估计器通过 恢复 。不同 意味着不同 ,于是不同 。
这不是 bug。它反映了连续时间参数尺度不变,而离散估计依赖于采样频率的事实。正确答案是:在你问题自然的单位中校准 ,然后把半衰期转换为同一单位。
实际中,多数量化按年表示 ,半衰期按年。所以 对应 年的半衰期。
为什么不直接用高阶 AR 模型?
OU 在连续时间是 AR(1)。你可以想象把 AR(2) 或 AR(p) 拟合到均值回归序列。好处是更灵活;坏处是没有闭式 SDE。对交易来说,OU 的简单性很难超越。大多数均值回归策略可以用 OU 参数表达。
如果序列有复杂自相关结构(振荡、多时间尺度),AR(2) 或体制切换模型可能合理。但你应该总是从 OU 开始,只在有明确误设证据时才让模型复杂化。简洁原则适用。
Ornstein-Uhlenbeck 桥梁:一个优美的恒等式
OU 过程和布朗运动之间有一个干净的联系。具体说,OU 桥梁,即条件于固定终端值 的 OU 过程,有显式转移律。它是布朗桥梁(本身是带线性均值和二次方差的高斯过程)加上均值回归漂移的修正。
当你需要条件于终端事件时,这对 Monte Carlo 模拟有用。你不必模拟许多完整路径然后拒绝那些不在 终止的,可以直接模拟桥梁。它更快、方差更低。
公式:条件于 和 ,OU 桥梁在时刻 满足
其中 和 是 、、、、 的显式函数。表达式通过对高斯转移律用两次并用马尔可夫性质推导得到。
对带终端条件的路径依赖期权定价(比如收益依赖未来某时刻价格的 forward-start 期权),桥梁表示让你只模拟相关的增量。
闲话:OU 与爱因斯坦
OU 过程有物理诠释。带摩擦的布朗运动。爱因斯坦 1905 年关于布朗运动的论文给出扩散方程。Ornstein 和 Uhlenbeck 在速度上加上摩擦项 ,产生平稳速度分布(Maxwell-Boltzmann)。同一 SDE 在物理上出现在任何由噪声驱动的阻尼简谐振子上。
金融中,摩擦就是均值回归。一个围绕长期均值上下波动的序列像势井中带摩擦的粒子。平稳分布是势井的玻尔兹曼分布。
这个物理类比对直觉偶尔有用,但主要在审美上。数学哪边都一样。
最后的忠告:一个交易配方
如果你在用 OU 交易均值回归序列:
- 在近期数据的滚动窗口上校准 、、。
- 计算半衰期 。
- 计算当前 z-score 。
- 当 (比如 2)时建仓。
- 当 跨过零时退出(均值回归达成),或者经过 时退出(时间止损)。
- 仓位大小反比于 (半衰期长意味着仓位小,因为每次移动慢)。
这是典型配方。它不是交易 OU 的唯一方式,但最常见。在模拟路径上回测以估计期望盈亏,然后用真实数据在风险限额内交易。优势一半来自模型,另一半来自纪律化执行。模型就是我们这里覆盖的。执行就在你身上。