如果你曾经试图对一个股票价格的函数求导,结果错了,你就撞上了 Itô 引理。普通微积分不够。当你要微分那个变量本身就是一个带 dW 项的随机过程时,你会得到一个确定型链式法则漏掉的项。那个额外的项就是随机微积分存在的全部理由。
这篇文章从头走一遍推导。我们从 Taylor 展开开始,丢掉小项,到达 Itô 引理。一路上我们会看到为什么 dW2=dt,为什么这不是一个粗心的近似,以及当底层过程有 dt 漂移项时什么会变。
普通微积分的问题
设 Xt 是带漂移的布朗运动:
dXt=adt+bdWt
其中 a 和 b 是常数。现在设 Yt=f(Xt),f 是某个光滑函数。dYt 是什么?
如果你用普通微积分的链式法则,你会写 dYt=f′(Xt)dXt。这是错的。它漏掉一项。具体说,对 f(x)=x2,普通微积分给出 dYt=2XtdXt=2Xt(adt+bdWt)。但 Xt2 在 [t,t+dt] 上的实际变化有一个涉及 (dXt)2 的部分,跟 dt 成比例。普通微积分忽略了这点,因为在确定型情况下 (dXt)2=0。在随机情况下,(dWt)2 不是 0。
要得到正确答案,我们必须更仔细。
Taylor 展开到二阶
把 f(Xt+dt) 在 Xt 周围展开:
f(Xt+dt)=f(Xt)+f′(Xt)dXt+21f′′(Xt)(dXt)2+61f′′′(Xt)(dXt)3+⋯
我们保留二阶项、丢掉三阶的原因是 (dXt)2 是 dt 量级,所以需要二阶 Taylor 来捕捉 dt 大小的项。三阶项是 (dXt)3,是 dt3/2 量级(因为 dWt3=dWt⋅dt∼dt1/2⋅dt=dt3/2),在极限下消失。
所以我们有
df(Xt)=f′(Xt)dXt+21f′′(Xt)(dXt)2+高阶
现在用随机微分的乘法表计算 (dXt)2。回忆:
-
dt2=0
-
dt⋅dWt=0
-
dWt2=dt
这些是形式规则。理由是 dWt∼dt,所以 (dWt)2∼dt,而 dt⋅dWt∼dt3/2→0。对我们的过程,
(dXt)2=(adt+bdWt)2=a2dt2+2abdtdWt+b2dWt2=b2dt
漂移项的平方消失,交叉项消失,只有扩散平方存活。这是关键步骤。
代回去:
df(Xt)=f′(Xt)(adt+bdWt)+21f′′(Xt)b2dt
=[af′(Xt)+21b2f′′(Xt)]dt+bf′(Xt)dWt
这就是 Xt 有常数漂移 a 和常数扩散 b 情形下的 Itô 引理。额外项 21b2f′′(Xt)dt 就是 Itô 修正。它是你在 (dWt)2 不为零的世界里工作的代价。
一般陈述
对满足 SDE
dXt=μ(Xt,t)dt+σ(Xt,t)dWt
的过程 Xt,以及一个二次可微的函数 f(x,t),Itô 引理说:
df(Xt,t)=[∂t∂f+μ∂x∂f+21σ2∂x2∂2f]dt+σ∂x∂fdWt
这是你在每本随机微积分教科书里会看到的公式。五个项是:时间导数、漂移贡献、扩散贡献、二阶导数(Itô 修正),以及扩散噪声。记住这个。或者至少把结构内化:时间、漂移、二阶扩散修正、然后是随机项。
一个常见简写是
df=ftdt+fxdXt+21fxx(dXt)2
最后一项按规则 (dXt)2=σ2dt。这个紧凑形式就是人们说”把 dW2 当成 dt 处理”的意思。
例子:f(Xt)=Xt2
设 Xt=Wt(所以 a=0、b=1)。那么 f(Xt)=Wt2。应用 Itô 引理,μ=0、σ=1、f′(x)=2x、f′′(x)=2:
d(Wt2)=(0⋅2Wt+21⋅1⋅2)dt+1⋅2WtdWt=dt+2WtdWt
从 0 到 T 积分:
WT2=2∫0TWtdWt+T
这是一个著名的恒等式。它说布朗运动在 [0,T] 上的二次变分等于 T, 这正是 ⟨W⟩T=T 的意思。Itô 积分 ∫0TWtdWt 是均值为零的鞅,所以 E[WT2]=T,恢复了 WT 的方差。
例子:GBM 的 f(Xt)=logXt
对满足 dXt=μXtdt+σXtdWt 的 Xt,取 f(x)=logx。我们有 f′(x)=1/x、f′′(x)=−1/x2,没有显式时间依赖。Itô 引理给出:
d(logXt)=[μXt⋅Xt1+21σ2Xt2⋅(−Xt21)]dt+σXt⋅Xt1dWt
=(μ−21σ2)dt+σdWt
这就是让 GBM 可处理的干净的对数收益结果。Itô 修正 −σ2/2 把 logSt 的漂移向下移了半个方差。这就是为什么期权定价公式包含 (r−σ2/2) 项而不仅仅是 r。
为什么修正重要
Itô 修正 −21σ2 不是个小效应。对 30% 波动率的股票,它是每年 4.5%。五年期累积,这复合成终端中位价格减少 25%。这个项错了,你的期权价格差几十个百分点。
修正的直觉是凸性。函数 f(x)=logx 是凹的。凹函数的随机游走的平均值低于平均位置处的函数值。Itô 修正 −21σ2f′′(x) 正是这个凸性调整。对凸函数,修正反方向。
同样的逻辑解释了对数正态分布著名的 Jensen 不等式。logST 的均值小于 ST 均值的对数,差正好是 σ2T/2。这不是巧合。这是同一个 Itô 修正,表达为积分。
多维 Itô 引理
当 Xt 是被多个相关布朗运动驱动的过程向量时,Itô 引理有二次型形式。设 Xt 满足
dXt=μ(Xt,t)dt+Σ(Xt,t)dWt
其中 Wt 是独立布朗运动的向量。对函数 f(x,t),
df=[∂t∂f+∇f⋅μ+21tr(ΣΣTHess(f))]dt+∇f⋅ΣdWt
trace 项是多维 Itô 修正。它是 21ΣkiΣkj∂2f/∂xi∂xj 对 i,j,k 求和。等价地,它是半二次型 ∇fTΣΣT∇f……不,那是错的。trace 形式是对的。直觉是你把二阶导数按 X 的瞬时协方差矩阵加权求和。
对两个被同一个布朗运动驱动、相关为 ρ 的过程 Xt 和 Yt,交叉项 dXtdYt=ρσXσYdt 出现。这就是为什么相关性在多资产问题里对 Itô 修正重要。
乘法表
记住随机微积分规则最干净的方式是微分的乘法表:
| dt | dWt |
|---|
| dt | 0 | 0 |
| dWt | 0 | dt |
所有乘积都在 L2 意义下求值,只有 dWt2=dt 存活。等价地,计算 dXt=μdt+σdWt 的 dXt2 时,只保留 σ2dt。
这个表在细分极限下是精确的。不是近似。Itô 积分被定义为左端点 Riemann 和的 L2 极限,在那个极限下交叉项消失,只有 dWt2 部分存活。证明用了布朗运动有独立增量且 E[(ΔW)2]=Δt 在极限下成立。
为什么不直接用 Stratonovich?
有一个替代的随机积分叫 Stratonovich 积分,记为 ∘dWt,它服从普通链式法则。具体说,如果你把 ∫f(Wt)∘dWt 定义为中点 Riemann 和而不是左端点 Riemann 和的极限,你得到关系
f(WT)−f(W0)=∫0Tf′(Wt)dWt+21∫0Tf′′(Wt)dt
其中最后一项跟普通微积分类似。Stratonovich 微积分对几何问题(随机微分几何、力学)方便,但有一个大缺点:Stratonovich 积分不是鞅。
在金融建模里,我们关心鞅,因为风险中性定价依赖它们。贴现股票价格 e−rtSt 在 Q 下是鞅。自融资交易策略的贴现财富是鞅。这些事实在定价和对冲里是根本的,在 Stratonovich 下不成立。所以我们用 Itô 积分。我们付出 Itô 修正的代价来换取鞅性质。
这是个真正的权衡。一些作者(特别是物理学家)更喜欢 Stratonovich。在金融里,Itô 赢了,因为鞅性质。如果你在做数学金融,用 Itô。
Itô 引理 vs. 乘积法则
一个相关公式是 Itô 乘积法则。对两个过程 Xt 和 Yt,
d(XtYt)=XtdYt+YtdXt+dXtdYt
额外项 dXtdYt 来自 Taylor 展开里的乘积法则。如果 X 和 Y 都是 Itô 过程,交叉项是协方差项:dXtdYt=σXσYρXYdt,其中 ρXY 是驱动布朗运动的瞬时相关。
这是随机积分的分部积分基础。也是你推导像 Ste−rt(贴现股票)这类乘积的动力学的方式,当 r 和 St 有相关动态时。
常见坑
这里有一个我常见到的错误。有人想对满足 dSt=μStdt+σStdWt 的 St 计算 dSt2。他们应用普通规则 (dSt)2=0(因为 dSt “小”)然后得出 St2 的动态是 d(St2)=2StdSt 的结论。这是错的。Itô 引理的正确答案:
d(St2)=2StdSt+(dSt)2=2μSt2dt+2σSt2dWt+σ2St2dt
=(2μ+σ2)St2dt+2σSt2dWt
漂移是 (2μ+σ2)St2,不是 2μSt2。额外的 σ2St2 是 Itô 修正。对高波动率资产,这不是可忽略的。这就是为什么杠杆 ETF 有反直觉的长期漂移性质。
该带走的
Itô 引理是随机过程的链式法则。关键的额外项是二阶导数项 21σ2fxxdt,它捕捉了 (dWt)2 是 dt 量级而不是 0 的事实。这个引理让我们计算 Itô 过程的任何光滑函数的动态。
实务中,你会用 Itô 引理来:
- 求解 SDE(GBM 的对数技巧用了它)。
- 找到衍生品价格的动态(Black-Scholes 推导)。
- 换元(波动率变换、计价物变换)。
- 构造鞅(随机指数、密度过程)。
这里的参考文献是 Øksendal (2003) Stochastic Differential Equations 第 4 章;Glasserman (2004) 3.3 节;和 Hull (2018) 第 14 章(Itô 引理)。Øksendal 是数学上更清晰的来源。Glasserman 面向金融读者,更务实。三本都读。第一次过的时候,乘法表和二阶导数项是唯一应该感到新的东西。其他都是普通微积分加一个小修正。
代码示例:数值验证 Itô 引理
理论没问题。让我用一个快速模拟验证 Itô 引理。我们检验恒等式 d(Wt2)=dt+2WtdWt,方法是模拟细的布朗路径并检查漂移。
import numpy as np
def verify_ito_squared_brownian(n_paths=20000, T=1.0, n_steps=10000, seed=0):
rng = np.random.default_rng(seed)
dt = T / n_steps
dW = rng.standard_normal((n_paths, n_steps)) * np.sqrt(dt)
W = np.concatenate([np.zeros((n_paths, 1)), np.cumsum(dW, axis=1)], axis=1)
X2 = W[:, -1]**2
ito_integral = np.sum(W[:, :-1] * dW, axis=1)
empirical_drift = (X2 - 2 * ito_integral).mean() / T
print(f"Empirical drift of W^2 - 2∫W dW: {empirical_drift:.4f}")
print(f"Theoretical drift: {1.0:.4f}")
verify_ito_squared_brownian()
跑这个给出接近 1.0 的漂移(在 Monte Carlo 误差内),确认 d(Wt2)=dt+2WtdWt。Monte Carlo 误差按 1/npaths 缩放,所以 20,000 条路径足够清楚看到这个结果。这是你对随机恒等式不确定时应该跑的健全性检验。
通过 Itô 的几何布朗运动
一个更有趣的验证是 GBM 的对数技巧。在 dSt=μStdt+σStdWt 下,我们声称 d(logSt)=(μ−σ2/2)dt+σdWt。漂移应该是 μ−σ2/2,不是 μ。
def verify_gbm_log_drift(mu=0.08, sigma=0.30, T=1.0, n_paths=20000, n_steps=2000, seed=1):
rng = np.random.default_rng(seed)
dt = T / n_steps
S0 = 100.0
log_S = np.zeros(n_paths)
for _ in range(n_steps):
dW = rng.standard_normal(n_paths) * np.sqrt(dt)
log_S += (mu - 0.5 * sigma**2) * dt + sigma * dW
final_log = log_S
empirical_drift = (final_log / T).mean()
theoretical_drift = mu - 0.5 * sigma**2
print(f"Empirical drift of log(S_T)/T: {empirical_drift:.4f}")
print(f"Theoretical drift: {theoretical_drift:.4f}")
verify_gbm_log_drift()
输出:经验约 0.0350 vs 理论 0.0350。半波动率平方修正正是让它能工作的东西。如果你忘了 −σ2/2 并用 μ 作为对数漂移,你模拟的路径会有错的终值分布,你的期权价格会有偏。
历史花絮
Kiyosi Itô 在 1940 和 1950 年代推导了他的引理,建立在 Kiyoshi Kunita、Paul Lévy 和 Joseph Doob 的工作上。原始论文是日文的,在西方直到 1970 年代才被广泛阅读。Black-Scholes 论文 (1973) 甚至都没提到 Itô 的名字。Scholes 后来说他和 Black 从头重新推导了他们需要的东西,叫它”随机微积分”,不知道它有名字。
这是数学金融里反复出现的主题。人们重新发明他们需要的数学。有时候他们做得好。经常他们重新发明得很差。好好学 Itô 的好处是你不再重新发明、开始用一个经过良好测试的工具。坏处是你必须学一次。
“可预测”的那部分
最后一个经常让人困惑的技术点。在 Itô 积分 ∫0tσ(Su,u)dWu 里,被积函数在 u 处求值,Wu 有独立增量。这意味着被积函数在极限下独立于 dWu。这就是 Itô 积分是鞅的原因。也是为什么我们在每个子区间的左端点求值, 保持这个独立性。
Stratonovich 积分在中点求值,给出一个不可预测的、依赖于 dWu 的被积函数。这破坏了鞅性质但恢复了普通链式法则。两者通过一个修正项相关。转换是
∫f(Wt)dWt=∫f(Wt)∘dWt−21∫f′(Wt)dt
右边是 Stratonovich,左边是 Itô。修正正好是导数时间积分的一半, 跟之前的 Itô 修正一样。所以 Stratonovich 和 Itô 积分差一个确定性平移。
在金融里,我们总用 Itô。在物理和工程里,Stratonovich 更自然,因为链式法则更简单。转换是良定义的。选适合你问题的微积分。