跳到正文

Itô 引理:随机过程的链式法则

从 Taylor 展开一步步推导 Itô 引理,为什么 $dW^2 = dt$,以及普通链式法则哪里出错。

第 6 篇 · 共 12 篇 约 11 分钟

如果你曾经试图对一个股票价格的函数求导,结果错了,你就撞上了 Itô 引理。普通微积分不够。当你要微分那个变量本身就是一个带 dWdW 项的随机过程时,你会得到一个确定型链式法则漏掉的项。那个额外的项就是随机微积分存在的全部理由。

这篇文章从头走一遍推导。我们从 Taylor 展开开始,丢掉小项,到达 Itô 引理。一路上我们会看到为什么 dW2=dtdW^2 = dt,为什么这不是一个粗心的近似,以及当底层过程有 dtdt 漂移项时什么会变。

普通微积分的问题

设 XtX_t 是带漂移的布朗运动:

dXt=a dt+b dWtdX_t = a \, dt + b \, dW_t

其中 aa 和 bb 是常数。现在设 Yt=f(Xt)Y_t = f(X_t),ff 是某个光滑函数。dYtdY_t 是什么?

如果你用普通微积分的链式法则,你会写 dYt=f′(Xt) dXtdY_t = f'(X_t) \, dX_t。这是错的。它漏掉一项。具体说,对 f(x)=x2f(x) = x^2,普通微积分给出 dYt=2Xt dXt=2Xt(a dt+b dWt)dY_t = 2X_t \, dX_t = 2X_t(a \, dt + b \, dW_t)。但 Xt2X_t^2 在 [t,t+dt][t, t+dt] 上的实际变化有一个涉及 (dXt)2(dX_t)^2 的部分,跟 dtdt 成比例。普通微积分忽略了这点,因为在确定型情况下 (dXt)2=0(dX_t)^2 = 0。在随机情况下,(dWt)2(dW_t)^2 不是 0。

要得到正确答案,我们必须更仔细。

Taylor 展开到二阶

把 f(Xt+dt)f(X_{t+dt}) 在 XtX_t 周围展开:

f(Xt+dt)=f(Xt)+f′(Xt) dXt+12f′′(Xt)(dXt)2+16f′′′(Xt)(dXt)3+⋯f(X_{t+dt}) = f(X_t) + f'(X_t) \, dX_t + \frac{1}{2} f''(X_t) (dX_t)^2 + \frac{1}{6} f'''(X_t) (dX_t)^3 + \cdots

我们保留二阶项、丢掉三阶的原因是 (dXt)2(dX_t)^2 是 dtdt 量级,所以需要二阶 Taylor 来捕捉 dtdt 大小的项。三阶项是 (dXt)3(dX_t)^3,是 dt3/2dt^{3/2} 量级(因为 dWt3=dWt⋅dt∼dt1/2⋅dt=dt3/2dW_t^3 = dW_t \cdot dt \sim dt^{1/2} \cdot dt = dt^{3/2}),在极限下消失。

所以我们有

df(Xt)=f′(Xt) dXt+12f′′(Xt)(dXt)2+高阶df(X_t) = f'(X_t) \, dX_t + \frac{1}{2} f''(X_t) (dX_t)^2 + \text{高阶}

现在用随机微分的乘法表计算 (dXt)2(dX_t)^2。回忆:

  • dt2=0dt^2 = 0
  • dt⋅dWt=0dt \cdot dW_t = 0
  • dWt2=dtdW_t^2 = dt

这些是形式规则。理由是 dWt∼dtdW_t \sim \sqrt{dt},所以 (dWt)2∼dt(dW_t)^2 \sim dt,而 dt⋅dWt∼dt3/2→0dt \cdot dW_t \sim dt^{3/2} \to 0。对我们的过程,

(dXt)2=(a dt+b dWt)2=a2 dt2+2ab dt dWt+b2 dWt2=b2 dt(dX_t)^2 = (a \, dt + b \, dW_t)^2 = a^2 \, dt^2 + 2ab \, dt \, dW_t + b^2 \, dW_t^2 = b^2 \, dt

漂移项的平方消失,交叉项消失,只有扩散平方存活。这是关键步骤。

代回去:

df(Xt)=f′(Xt)(a dt+b dWt)+12f′′(Xt)b2 dtdf(X_t) = f'(X_t) (a \, dt + b \, dW_t) + \frac{1}{2} f''(X_t) b^2 \, dt =[af′(Xt)+12b2f′′(Xt)]dt+bf′(Xt) dWt= \left[a f'(X_t) + \frac{1}{2} b^2 f''(X_t)\right] dt + b f'(X_t) \, dW_t

这就是 XtX_t 有常数漂移 aa 和常数扩散 bb 情形下的 Itô 引理。额外项 12b2f′′(Xt)dt\frac{1}{2} b^2 f''(X_t) dt 就是 Itô 修正。它是你在 (dWt)2(dW_t)^2 不为零的世界里工作的代价。

一般陈述

对满足 SDE

dXt=μ(Xt,t) dt+σ(Xt,t) dWtdX_t = \mu(X_t, t) \, dt + \sigma(X_t, t) \, dW_t

的过程 XtX_t,以及一个二次可微的函数 f(x,t)f(x, t),Itô 引理说:

df(Xt,t)=[∂f∂t+μ∂f∂x+12σ2∂2f∂x2]dt+σ∂f∂x dWtdf(X_t, t) = \left[\frac{\partial f}{\partial t} + \mu \frac{\partial f}{\partial x} + \frac{1}{2} \sigma^2 \frac{\partial^2 f}{\partial x^2}\right] dt + \sigma \frac{\partial f}{\partial x} \, dW_t

这是你在每本随机微积分教科书里会看到的公式。五个项是:时间导数、漂移贡献、扩散贡献、二阶导数(Itô 修正),以及扩散噪声。记住这个。或者至少把结构内化:时间、漂移、二阶扩散修正、然后是随机项。

一个常见简写是

df=ft dt+fx dXt+12fxx(dXt)2df = f_t \, dt + f_x \, dX_t + \frac{1}{2} f_{xx} (dX_t)^2

最后一项按规则 (dXt)2=σ2 dt(dX_t)^2 = \sigma^2 \, dt。这个紧凑形式就是人们说”把 dW2dW^2 当成 dtdt 处理”的意思。

例子:f(Xt)=Xt2f(X_t) = X_t^2

设 Xt=WtX_t = W_t(所以 a=0a = 0、b=1b = 1)。那么 f(Xt)=Wt2f(X_t) = W_t^2。应用 Itô 引理,μ=0\mu = 0、σ=1\sigma = 1、f′(x)=2xf'(x) = 2x、f′′(x)=2f''(x) = 2:

d(Wt2)=(0⋅2Wt+12⋅1⋅2)dt+1⋅2Wt dWt=dt+2Wt dWtd(W_t^2) = (0 \cdot 2W_t + \frac{1}{2} \cdot 1 \cdot 2) dt + 1 \cdot 2W_t \, dW_t = dt + 2W_t \, dW_t

从 00 到 TT 积分:

WT2=2∫0TWt dWt+TW_T^2 = 2 \int_0^T W_t \, dW_t + T

这是一个著名的恒等式。它说布朗运动在 [0,T][0, T] 上的二次变分等于 TT, 这正是 ⟨W⟩T=T\langle W \rangle_T = T 的意思。Itô 积分 ∫0TWt dWt\int_0^T W_t \, dW_t 是均值为零的鞅,所以 E[WT2]=T\mathbb{E}[W_T^2] = T,恢复了 WTW_T 的方差。

例子:GBM 的 f(Xt)=log⁡Xtf(X_t) = \log X_t

对满足 dXt=μXt dt+σXt dWtdX_t = \mu X_t \, dt + \sigma X_t \, dW_t 的 XtX_t,取 f(x)=log⁡xf(x) = \log x。我们有 f′(x)=1/xf'(x) = 1/x、f′′(x)=−1/x2f''(x) = -1/x^2,没有显式时间依赖。Itô 引理给出:

d(log⁡Xt)=[μXt⋅1Xt+12σ2Xt2⋅(−1Xt2)]dt+σXt⋅1Xt dWtd(\log X_t) = \left[\mu X_t \cdot \frac{1}{X_t} + \frac{1}{2} \sigma^2 X_t^2 \cdot \left(-\frac{1}{X_t^2}\right)\right] dt + \sigma X_t \cdot \frac{1}{X_t} \, dW_t =(μ−12σ2)dt+σ dWt= \left(\mu - \frac{1}{2} \sigma^2\right) dt + \sigma \, dW_t

这就是让 GBM 可处理的干净的对数收益结果。Itô 修正 −σ2/2-\sigma^2/2 把 log⁡St\log S_t 的漂移向下移了半个方差。这就是为什么期权定价公式包含 (r−σ2/2)(r - \sigma^2/2) 项而不仅仅是 rr。

为什么修正重要

Itô 修正 −12σ2-\frac{1}{2} \sigma^2 不是个小效应。对 30% 波动率的股票,它是每年 4.5%。五年期累积,这复合成终端中位价格减少 25%。这个项错了,你的期权价格差几十个百分点。

修正的直觉是凸性。函数 f(x)=log⁡xf(x) = \log x 是凹的。凹函数的随机游走的平均值低于平均位置处的函数值。Itô 修正 −12σ2f′′(x)-\frac{1}{2} \sigma^2 f''(x) 正是这个凸性调整。对凸函数,修正反方向。

同样的逻辑解释了对数正态分布著名的 Jensen 不等式。log⁡ST\log S_T 的均值小于 STS_T 均值的对数,差正好是 σ2T/2\sigma^2 T / 2。这不是巧合。这是同一个 Itô 修正,表达为积分。

多维 Itô 引理

当 XtX_t 是被多个相关布朗运动驱动的过程向量时,Itô 引理有二次型形式。设 Xt\mathbf{X}_t 满足

dXt=μ(Xt,t) dt+Σ(Xt,t) dWtd\mathbf{X}_t = \boldsymbol{\mu}(\mathbf{X}_t, t) \, dt + \boldsymbol{\Sigma}(\mathbf{X}_t, t) \, d\mathbf{W}_t

其中 Wt\mathbf{W}_t 是独立布朗运动的向量。对函数 f(x,t)f(\mathbf{x}, t),

df=[∂f∂t+∇f⋅μ+12tr(ΣΣTHess(f))]dt+∇f⋅Σ dWtdf = \left[\frac{\partial f}{\partial t} + \nabla f \cdot \boldsymbol{\mu} + \frac{1}{2} \text{tr}\left(\boldsymbol{\Sigma} \boldsymbol{\Sigma}^T \text{Hess}(f)\right)\right] dt + \nabla f \cdot \boldsymbol{\Sigma} \, d\mathbf{W}_t

trace 项是多维 Itô 修正。它是 12ΣkiΣkj∂2f/∂xi∂xj\frac{1}{2} \Sigma_{ki} \Sigma_{kj} \partial^2 f / \partial x_i \partial x_j 对 i,j,ki, j, k 求和。等价地,它是半二次型 ∇fTΣΣT∇f\nabla f^T \boldsymbol{\Sigma} \boldsymbol{\Sigma}^T \nabla f……不,那是错的。trace 形式是对的。直觉是你把二阶导数按 XX 的瞬时协方差矩阵加权求和。

对两个被同一个布朗运动驱动、相关为 ρ\rho 的过程 XtX_t 和 YtY_t,交叉项 dXt dYt=ρσXσY dtdX_t \, dY_t = \rho \sigma_X \sigma_Y \, dt 出现。这就是为什么相关性在多资产问题里对 Itô 修正重要。

乘法表

记住随机微积分规则最干净的方式是微分的乘法表:

dtdtdWtdW_t
dtdt00
dWtdW_t0dtdt

所有乘积都在 L2L^2 意义下求值,只有 dWt2=dtdW_t^2 = dt 存活。等价地,计算 dXt=μ dt+σ dWtdX_t = \mu \, dt + \sigma \, dW_t 的 dXt2dX_t^2 时,只保留 σ2 dt\sigma^2 \, dt。

这个表在细分极限下是精确的。不是近似。Itô 积分被定义为左端点 Riemann 和的 L2L^2 极限,在那个极限下交叉项消失,只有 dWt2dW_t^2 部分存活。证明用了布朗运动有独立增量且 E[(ΔW)2]=Δt\mathbb{E}[(\Delta W)^2] = \Delta t 在极限下成立。

为什么不直接用 Stratonovich?

有一个替代的随机积分叫 Stratonovich 积分,记为 ∘dWt\circ dW_t,它服从普通链式法则。具体说,如果你把 ∫f(Wt)∘dWt\int f(W_t) \circ dW_t 定义为中点 Riemann 和而不是左端点 Riemann 和的极限,你得到关系

f(WT)−f(W0)=∫0Tf′(Wt) dWt+12∫0Tf′′(Wt) dtf(W_T) - f(W_0) = \int_0^T f'(W_t) \, dW_t + \frac{1}{2} \int_0^T f''(W_t) \, dt

其中最后一项跟普通微积分类似。Stratonovich 微积分对几何问题(随机微分几何、力学)方便,但有一个大缺点:Stratonovich 积分不是鞅。

在金融建模里,我们关心鞅,因为风险中性定价依赖它们。贴现股票价格 e−rtSte^{-rt} S_t 在 Q\mathbb{Q} 下是鞅。自融资交易策略的贴现财富是鞅。这些事实在定价和对冲里是根本的,在 Stratonovich 下不成立。所以我们用 Itô 积分。我们付出 Itô 修正的代价来换取鞅性质。

这是个真正的权衡。一些作者(特别是物理学家)更喜欢 Stratonovich。在金融里,Itô 赢了,因为鞅性质。如果你在做数学金融,用 Itô。

Itô 引理 vs. 乘积法则

一个相关公式是 Itô 乘积法则。对两个过程 XtX_t 和 YtY_t,

d(XtYt)=Xt dYt+Yt dXt+dXt dYtd(X_t Y_t) = X_t \, dY_t + Y_t \, dX_t + dX_t \, dY_t

额外项 dXt dYtdX_t \, dY_t 来自 Taylor 展开里的乘积法则。如果 XX 和 YY 都是 Itô 过程,交叉项是协方差项:dXt dYt=σXσYρXY dtdX_t \, dY_t = \sigma_X \sigma_Y \rho_{XY} \, dt,其中 ρXY\rho_{XY} 是驱动布朗运动的瞬时相关。

这是随机积分的分部积分基础。也是你推导像 Ste−rtS_t e^{-rt}(贴现股票)这类乘积的动力学的方式,当 rr 和 StS_t 有相关动态时。

常见坑

这里有一个我常见到的错误。有人想对满足 dSt=μSt dt+σSt dWtdS_t = \mu S_t \, dt + \sigma S_t \, dW_t 的 StS_t 计算 dSt2dS_t^2。他们应用普通规则 (dSt)2=0(dS_t)^2 = 0(因为 dStdS_t “小”)然后得出 St2S_t^2 的动态是 d(St2)=2St dStd(S_t^2) = 2S_t \, dS_t 的结论。这是错的。Itô 引理的正确答案:

d(St2)=2St dSt+(dSt)2=2μSt2 dt+2σSt2 dWt+σ2St2 dtd(S_t^2) = 2 S_t \, dS_t + (dS_t)^2 = 2 \mu S_t^2 \, dt + 2 \sigma S_t^2 \, dW_t + \sigma^2 S_t^2 \, dt =(2μ+σ2)St2 dt+2σSt2 dWt= (2\mu + \sigma^2) S_t^2 \, dt + 2\sigma S_t^2 \, dW_t

漂移是 (2μ+σ2)St2(2\mu + \sigma^2) S_t^2,不是 2μSt22\mu S_t^2。额外的 σ2St2\sigma^2 S_t^2 是 Itô 修正。对高波动率资产,这不是可忽略的。这就是为什么杠杆 ETF 有反直觉的长期漂移性质。

该带走的

Itô 引理是随机过程的链式法则。关键的额外项是二阶导数项 12σ2fxx dt\frac{1}{2} \sigma^2 f_{xx} \, dt,它捕捉了 (dWt)2(dW_t)^2 是 dtdt 量级而不是 0 的事实。这个引理让我们计算 Itô 过程的任何光滑函数的动态。

实务中,你会用 Itô 引理来:

  1. 求解 SDE(GBM 的对数技巧用了它)。
  2. 找到衍生品价格的动态(Black-Scholes 推导)。
  3. 换元(波动率变换、计价物变换)。
  4. 构造鞅(随机指数、密度过程)。

这里的参考文献是 Øksendal (2003) Stochastic Differential Equations 第 4 章;Glasserman (2004) 3.3 节;和 Hull (2018) 第 14 章(Itô 引理)。Øksendal 是数学上更清晰的来源。Glasserman 面向金融读者,更务实。三本都读。第一次过的时候,乘法表和二阶导数项是唯一应该感到新的东西。其他都是普通微积分加一个小修正。

代码示例:数值验证 Itô 引理

理论没问题。让我用一个快速模拟验证 Itô 引理。我们检验恒等式 d(Wt2)=dt+2Wt dWtd(W_t^2) = dt + 2W_t \, dW_t,方法是模拟细的布朗路径并检查漂移。

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+2Wt dWtd(W_t^2) = dt + 2W_t \, dW_t。Monte Carlo 误差按 1/npaths1/\sqrt{n_{\text{paths}}} 缩放,所以 20,000 条路径足够清楚看到这个结果。这是你对随机恒等式不确定时应该跑的健全性检验。

通过 Itô 的几何布朗运动

一个更有趣的验证是 GBM 的对数技巧。在 dSt=μSt dt+σSt dWtdS_t = \mu S_t \, dt + \sigma S_t \, dW_t 下,我们声称 d(log⁡St)=(μ−σ2/2) dt+σ dWtd(\log S_t) = (\mu - \sigma^2/2) \, dt + \sigma \, dW_t。漂移应该是 μ−σ2/2\mu - \sigma^2/2,不是 μ\mu。

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-\sigma^2/2 并用 μ\mu 作为对数漂移,你模拟的路径会有错的终值分布,你的期权价格会有偏。

历史花絮

Kiyosi Itô 在 1940 和 1950 年代推导了他的引理,建立在 Kiyoshi Kunita、Paul Lévy 和 Joseph Doob 的工作上。原始论文是日文的,在西方直到 1970 年代才被广泛阅读。Black-Scholes 论文 (1973) 甚至都没提到 Itô 的名字。Scholes 后来说他和 Black 从头重新推导了他们需要的东西,叫它”随机微积分”,不知道它有名字。

这是数学金融里反复出现的主题。人们重新发明他们需要的数学。有时候他们做得好。经常他们重新发明得很差。好好学 Itô 的好处是你不再重新发明、开始用一个经过良好测试的工具。坏处是你必须学一次。

“可预测”的那部分

最后一个经常让人困惑的技术点。在 Itô 积分 ∫0tσ(Su,u) dWu\int_0^t \sigma(S_u, u) \, dW_u 里,被积函数在 uu 处求值,WuW_u 有独立增量。这意味着被积函数在极限下独立于 dWudW_u。这就是 Itô 积分是鞅的原因。也是为什么我们在每个子区间的左端点求值, 保持这个独立性。

Stratonovich 积分在中点求值,给出一个不可预测的、依赖于 dWudW_u 的被积函数。这破坏了鞅性质但恢复了普通链式法则。两者通过一个修正项相关。转换是

∫f(Wt) dWt=∫f(Wt)∘dWt−12∫f′(Wt) dt\int f(W_t) \, dW_t = \int f(W_t) \circ dW_t - \frac{1}{2} \int f'(W_t) \, dt

右边是 Stratonovich,左边是 Itô。修正正好是导数时间积分的一半, 跟之前的 Itô 修正一样。所以 Stratonovich 和 Itô 积分差一个确定性平移。

在金融里,我们总用 Itô。在物理和工程里,Stratonovich 更自然,因为链式法则更简单。转换是良定义的。选适合你问题的微积分。