随机微分方程的模拟(一)

无论是资产定价还是风险管理,都要涉及到SDE的蒙特卡洛模拟。

本文仅讨论一维SDE的数值模拟。


对大多数微分方程,我们无法求出解析解,所以为了确定这个方程所对应的函数,就需要进行数值模拟。随机微分方程也是一样的,对于SDE:
d X_{t}=\mu\left(X_{t}, t\right) d t+\sigma\left(X_{t}, t\right) d W_{t}大多数情况下,要求出随机过程X_t在某个时刻的分布,还得靠随机模拟,模拟出若干条路径,来得到近似的分布。模拟的方法,主要就是两种,Euler–Maruyama methodMilstein method

Euler 方法是最直接的方法,扩散过程(diffusion process)是一个马尔可夫过程,因为W_{t+\Delta t}-W_t\sim \mathcal{N}(0, \Delta t),自然就有:
\small X_{t+\Delta t} \simeq X_t+\mu\left(X_{t}, t\right) \Delta t+\sigma\left(X_{t}, t\right) Z \sqrt{\Delta t}

Milstein 方法会更加精确一些:X_{t+\Delta t}\simeq X_t+\mu\left(X_{t}, t\right) \Delta t+\sigma\left(X_{t}, t\right) Z_{t} \sqrt{t}+\frac{1}{2} \sigma\left(X_{t}, t\right) \frac{\partial}{\partial x} \sigma\left(X_{t}, t\right)\left[Z^{2} \Delta t-(\Delta t)^{2}\right]

其中Z\sim \mathcal{N}(0, 1)

Milstein 方法的初衷是让估计:
\int_t^{t+\Delta t}\sigma(X_u, u)dW_u=\sigma(X_t, t)\int_t^{t+\Delta t}dW_u变得稍微精确一点。所以,\sigma(X_t, t)应用伊藤公式,求出d [\sigma(X_t, t)]关于dW_tdt的关系,再积分得到\sigma(X_t, t)的表达式,最后估计\int_t^{t+\Delta t}\sigma(X_u, u)dW_u这是得到米尔斯坦方法的思路,沿着这个思路下去就是随机泰勒展开!

注意到 Milstein 方法需要\sigma(X_t, t)是二阶可微的。

米尔斯坦方法对应到几何布朗运动{d} X_{t}=\mu X {d} t+\sigma X d W_{t}就是:
X_{t+\Delta t}=X_t + \mu X_t \Delta t + \sigma X_t \Delta W_t+\frac{1}{2}\sigma^2\left[(\Delta W_t)^2-\Delta t \right] 它其实是在 Euler 方法的基础上增加了更高阶的小量。

SDE的模拟本质上我认为还是在做数值积分。

order of convergence

Milstein 方法比 Euler 方法要精确,那么这种精确程度该如何来度量呢?
这就要引入收敛阶数的概念,而收敛性分为两种,强收敛和弱收敛。

对于随机过程X_t,我们以\Delta t构造等距节点,使用某种方法插值模拟出的随机过程记为Y^{\Delta}_t

强收敛

对于任意的时间T,如果存在不依赖于\Delta t的常数C\delta,使得:
{E}\left(\left|{X}_{{T}}-{Y}_{{T}}^{{\Delta}}\right|\right) \leq {C} {\Delta t}^{\gamma}, \quad \forall \Delta t \in (0, \delta)我们就说这个方法是\gamma阶强收敛的!

弱收敛

对于任意的时间T和可测函数g,如果存在不依赖于\Delta t的常数C\delta,使得:
|E(g(X_T)) - E(g(Y_T^{\Delta}))| \leq C {\Delta t}^\beta, \quad \forall \Delta t \in (0, \delta)我们就说这个方法是\beta阶弱收敛的!

收敛阶数不仅与模拟方法有关,还与这个随机微分方程的性质有关。 但是一般来说,我们认为 Euler 方法的强收敛阶数是 0.5,Milstein 方法是1;Euler 方法的弱收敛阶数是1。

stochastic taylor expansion

其实 Euler 方法和 Milstein 方法都可以从随机泰勒展开中得到,并且可以类似的分析它们的收敛阶数。

首先考虑一个自治(autonomous)的ODE:
\frac{d}{d t} X(t)=a[X(t)]fX_t的函数,那么根据链导法则:
\frac{d}{d t} f[X(t)]=a[X(t)] \frac{\partial}{\partial X} f[X(t)]定义算子\mathcal{L} \equiv a(X) \frac{\partial}{\partial X},上式可以写成积分的形式:
f[X(t)]=f\left[X\left(t_{0}\right)\right]+\int_{t_{0}}^{t} \mathcal{L} f\left[X\left(\tau_{1}\right)\right] d \tau_{1}f\left[X\left(\tau_{1}\right)\right]也可以写成上式一般的展开形式,继而有:
\begin{aligned} f[X(t)] &=f\left[X\left(t_{0}\right)\right]+\int_{t_{0}}^{t} \mathcal{L}\left[f\left[X\left(t_{0}\right)\right]+\int_{t_{0}}^{\tau_{1}} \mathcal{L} f\left[X\left(\tau_{2}\right)\right] d \tau_{2}\right] d \tau_{1} \\ &=f\left[X\left(t_{0}\right)\right]+\mathcal{L} f\left[X\left(t_{0}\right)\right] \int_{t_{0}}^{t} d \tau_{1}+\int_{t_{0}}^{t} \int_{t_{0}}^{\tau_{1}} \mathcal{L}^{2} f\left[X\left(\tau_{2}\right)\right] d \tau_{2} d \tau_{1} \\ &=f\left[X\left(t_{0}\right)\right]+\mathcal{L} f\left[X\left(t_{0}\right)\right]\left(t-t_{0}\right)+\int_{t_{0}}^{t} \int_{t_{0}}^{\tau_{1}} \mathcal{L}^{2} f\left[X\left(\tau_{2}\right)\right] d \tau_{2} d \tau_{1} \end{aligned}因为:
\begin{aligned} \mathcal{L}^{2} f\left[X\left(\tau_{2}\right)\right] &=\mathcal{L}^{2}\left[f\left[X\left(t_{0}\right)\right]+\int_{t_{0}}^{\tau_{2}} \mathcal{L} f\left[X\left(\tau_{3}\right)\right] d \tau_{3}\right] \\ &=\mathcal{L}^{2} f\left[X\left(t_{0}\right)\right]+\underbrace{\mathcal{L}^{2} \int_{t_{0}}^{\tau_{2}} \mathcal{L} f\left[X\left(\tau_{3}\right)\right] d \tau_{3}}_{O\left(\mathcal{L}^{3}\right)} \end{aligned}上面其实就是我们熟悉的Taylor展开:
f[X(t)]=f\left[X\left(t_{0}\right)\right]+\mathcal{L} f\left[X\left(t_{0}\right)\right]\left(t-t_{0}\right)+\frac{1}{2} \mathcal{L}^{2} f\left[X\left(t_{0}\right)\right]\left(t-t_{0}\right)^{2}+O\left(\mathcal{L}^{3}\right)


接下来我们把上述方法应用到自治的SDE中。定义算子:
\begin{array}{l} \mathcal{L}^{0} \equiv a \frac{\partial}{\partial X}+\frac{1}{2} b^{2}[X] \frac{\partial^{2}}{\partial X^{2}} \\ \mathcal{L}^{1} \equiv b[X] \frac{\partial}{\partial X} \end{array}那么伊藤公式
d X(t)=a[X(t)] d t+b[X(t)] d W(t)可以写成:
f[X(t)]=f\left[X\left(t_{0}\right)\right]+\int_{t_{0}}^{t} \mathcal{L}^{0} f[X(s)] d s+\int_{t_{0}}^{t} \mathcal{L}^{1} f[X(s)] d W(s)接下来,

  • f(x)=x,得到:
    \Large X(t)=X\left(t_{0}\right)+\int_{t_{0}}^{t} a[X(s)] d s+\int_{t_{0}}^{t} b[X(s)] d W(s) \tag{1}
  • f(x)=a(x),得到:
    \Large a[X(t)]=a\left[X\left(t_{0}\right)\right]+\int_{t_{0}}^{t} \mathcal{L}^{0} a[X(s)] d s+\int_{t_{0}}^{t} \mathcal{L}^{1} a[X(s)] d W(s) \tag{2}
  • f(x)=b(x),得到:
    \Large b[X(t)]=b\left[X\left(t_{0}\right)\right]+\int_{t_{0}}^{t} \mathcal{L}^{0} b[X(s)] d s+\int_{t_{0}}^{t} \mathcal{L}^{1} b[X(s)] d W(s) \tag{3}

现在我们要做的是,把伊藤公式应用到伊藤公式中,来得到一个比伊藤公式更加精确的公式!

把(2)和(3)代入(1):

\begin{aligned} X(t)=& X\left(t_{0}\right)+\int_{t_{0}}^{t}\left\{a\left[X\left(t_{0}\right)\right]+\int_{t_{0}}^{s_{1}} \mathcal{L}^{0} a\left[X\left(s_{2}\right)\right] d s_{2}+\int_{t_{0}}^{s_{1}} \mathcal{L}^{1} a\left[X\left(s_{2}\right)\right] d W\left(s_{2}\right)\right\} d s_{1} \\ &+\int_{t_{0}}^{t}\left\{b\left[X\left(t_{0}\right)\right]+\int_{t_{0}}^{s_{1}} \mathcal{L}^{0} b\left[X\left(s_{2}\right)\right] d s_{2}+\int_{t_{0}}^{s_{1}} \mathcal{L}^{1} b\left[X\left(s_{2}\right)\right] d W\left(s_{2}\right)\right\} d W\left(s_{1}\right) \end{aligned}于是:
\large X(t)=X\left(t_{0}\right)+a\left[X\left(t_{0}\right)\right] \int_{t_{0}}^{t} d s_{1}+b\left[X\left(t_{0}\right)\right] \int_{t_{0}}^{t} d W\left(s_{1}\right)+R \tag{4}其中余项:\large \begin{aligned} R \equiv & \int_{t_{0}}^{t} \int_{t_{0}}^{s_{1}} \mathcal{L}^{0} a\left[X\left(s_{2}\right)\right] d s_{2} d s_{1}+\int_{t_{0}}^{t} \int_{t_{0}}^{s_{1}} \mathcal{L}^{1} a\left[X\left(s_{2}\right)\right] d W\left(s_{2}\right) d s_{1} \\ &+\int_{t_{0}}^{t} \int_{t_{0}}^{s_{1}} \mathcal{L}^{0} b\left[X\left(s_{2}\right)\right] d s_{2} d W\left(s_{1}\right)+\int_{t_{0}}^{t} \int_{t_{0}}^{s_{1}} \mathcal{L}^{1} b\left[X\left(s_{2}\right)\right] d W\left(s_{2}\right) d W\left(s_{1}\right) \end{aligned} \tag{5} 我们上面所做的工作就是重复应用伊藤公式获取更高阶的近似!

注意到(4)式右边前三项就是 Euler 近似!所以我们可以通过分析余项R来得到 Euler 方法的余项阶数。

分析一下(5)式中余项R各项的阶数,如果把R的最后一项考虑进去,我们就能得到 Milstein 方法。
注意到:\small \int_{t_{0}}^{t} \int_{t_{0}}^{s_{1}} d W\left(s_{2}\right) d W\left(s_{1}\right)=\frac{1}{2}\left[W(t)-W\left(t_{0}\right)\right]^{2}-\frac{1}{2}\left(t-t_{0}\right)

如果我们把余项R的后三项都考虑进去,就能得到比 Milstein 方法更精确的数值方法!

其它的模拟方法

隐式方法

一般我们用的都是显示的 Euler 方法,但其实也可以有类似于 ODE 里的隐式方法:
X_{t+\Delta t} \simeq X_t+\mu\left(X_{t+\Delta t}, t + \Delta t \right) \Delta t+\sigma\left(X_{t}, t\right) Z \sqrt{\Delta t}我感觉一般常研究的SDE的稳定性都还不错。

Runge-Kutta Methods

Milstein 方法需要计算一次导数,我们也可以不去直接计算导数,而是去近似它。
\left\{\begin{array}{l} \tilde{X}_{i}=X_{i}+a\left(X_{i}\right) \Delta t+b\left(X_{i}\right) \sqrt{\Delta t} \\ X_{i+1}=X_{i}+a\left(X_{i}\right) \Delta t+b\left(X_{i}\right) \Delta W_{i}+\frac{1}{2 \sqrt{\Delta t}}\left[b\left(\tilde{X}_{i}\right)-b\left(X_{i}\right)\right]\left[\left(\Delta W_{i}\right)^{2}-\Delta t\right] \end{array}\right.

Simplified Methods

布朗运动的本质是随机游走的极限,当\Delta t足够小的时候,用离散的随机游走去代替布朗运动,能起到节省计算时间的效果。如果目的只是估计E(X_T),那么 Simplified Methods 的效果也不错。


参考资料:
https://www.mimuw.edu.pl/~apalczew/CFP_lecture5.pdf

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352