本文从理论上分析了利用分层MC抽样技术可以提高模拟的计算精度,以及推导了分层抽样方差缩减的效果(通过VRERS值或粗糙估计量方差的比较),给出了分层MC模拟的具体算法;且根据推导发现分层概率加权方法、分层匹配样本方法与最优分层方法这三种方法中,最优分层方法方差缩减效果比分层匹配样本方法方差缩减效果好。并把所研究的成果应用于欧式看涨期权的定价之中,对于期权理论的研究和完善具有重要的基础作用。 This paper enhances the calculation precision and operation efficiency of stratified sampling via analyzing stratified MC sample technique in theory, deduces the effect of stratified sampling in variance reduction techniques and provides idiographic arithmetic of stratified MC simulation. Finding in the three method of stratified probability weighted, stratified matched sampling and optimal stratified sampling after deducing, the optimal stratified sampling performs well in vari-ance reduction techniques. The results also are applied in the European call option. It plays to the basic key role to the theoretical researches and perfection of the option.
陈云烁,姜晴琼
贵州民族大学,数据科学与信息工程学院,贵州 贵阳
收稿日期:2018年11月16日;录用日期:2018年12月6日;发布日期:2018年12月13日
本文从理论上分析了利用分层MC抽样技术可以提高模拟的计算精度,以及推导了分层抽样方差缩减的效果(通过VRERS值或粗糙估计量方差的比较),给出了分层MC模拟的具体算法;且根据推导发现分层概率加权方法、分层匹配样本方法与最优分层方法这三种方法中,最优分层方法方差缩减效果比分层匹配样本方法方差缩减效果好。并把所研究的成果应用于欧式看涨期权的定价之中,对于期权理论的研究和完善具有重要的基础作用。
关键词 :Monte-Carlo模拟,分层MC,方差缩减
Copyright © 2018 by authors and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
期权既是高效的风险对冲工具又是高效的投资工具,一直被投资者青睐。1973年著名学者Black与Scholes [
但是蒙特卡罗模拟方法自身也有不足之处,就是模拟结果的精度、波动性等受到模拟的路径数量的重大影响 [
在我们以下的讨论模型中,均以欧式看涨期权
S ( T ) = S ( t ) exp { ( r − 1 2 σ 2 ) ( T − t ) + σ ( B ( T ) − B ( t ) ) }
为例,其中T风险价格到期日, S ( t ) 表示当前时刻风险资产价格, B ( T ) − B ( t ) ∼ N ( 0 , T − t ) ,r无风险利率, σ 为年波动率。对风险资产在T时刻的模拟常常借助下面的代码:
该模拟显然是要借助正态随机数代码的,但是正态随机数的产生过程容易产生不均衡现象,也就是说:
通过上面的代码可以验证,在产生的10,000个标准正态随机数中,n1,n2的个数很难保证是1:1,有时差距还很大。
基于此,统计学家们构造出一种新的随机数产生方案,将密度函数分成有限个区间,然后在每个区间上按照各自的概率比重产生一定数量的随机数,最后用这些数进行Monte-Carlo模拟,该方法被称为分层Monte-Carlo方法(以下称为分层MC方法),最终通过在每个小区间上的抽样来实现提高模拟精度这一目的。
分层抽样的原理是对所输入数据进行处理,使其更加规律,从而使经验概率与理论概率更加匹配(Glasserman和Gaussia [
假设拟估计:
Y = E [ f ( U ) ] = ∫ 0 1 f ( y ) d y = μ
其中 U ∼ U i n f [ 0 , 1 ] ,假设对样本分为两层,即:
Y S = 1 2 f ( V 1 ) + 1 2 f (V2)
其中
V 1 ∼ U n i f [ 0 , 1 2 ] V 2 ∼ U n i f [ 1 2 , 1 ]
现在比较变量Y的粗糙估计量 Y c r u d e 和分层抽样估计量 Y S 之间的关系:
Y ^ c r u d e = 1 n ∑ i = 1 n f ( μ i ) Y ^ S = 1 n / 2 ∑ i = 1 n / 2 Y S i = 1 n [ ∑ i = 1 n / 2 ( f ( V 1 i ) + f ( V 2 i ) ) ] (1)
接下来(1)式期望和方差为:
E [ Y ^ S ] = 1 n [ ∑ i = 1 n / 2 f ( V 1 i ) + f ( V 2 i ) ] = ∫ 0 1 f ( y ) d y = μ (2)
V a r [ f ( V 1 i ) ] = ∫ 0 1 2 2 f 2 ( x ) d x − [ ∫ 0 1 2 2 f ( x ) d x ] 2 ≡ 2 ν 1 − 4 m 1 2 (3)
V a r [ f ( V 2 i ) ] = ∫ 1 2 1 2 f 2 ( x ) d x − [ ∫ 1 2 1 2 f ( x ) d x ] 2 ≡ 2 ν 2 − 4 m 2 2 (4)
其中
ν 1 = ∫ 0 1 2 f 2 ( x ) d x m 1 = ∫ 0 1 2 f ( x ) d x ν 2 = ∫ 1 2 1 f 2 ( x ) d x m 1 = ∫ 1 2 1 f ( x ) d x
根据公式(3)、(4)得:
V a r [ f ( V 1 i ) ] + V a r [ f ( V 2 i ) ] = 2 ( ν 1 + ν 2 ) − 4 ( m 1 2 + m 2 2 ) = 2 ( ν 1 + ν 2 ) − 2 ( m 1 + m 2 ) − 2 ( m 1 − m 2 ) 2 = 2 V a r ( f ) − 2 ( m 1 − m 2 ) 2 (5)
根据公式(1)、(5),推导出公式(6):
V a r [ Y ^ S ] = 1 n 2 [ ∑ i = 1 n / 2 V a r ( f ( V 1 i ) ) + V a r ( f ( V 2 i ) ) ] = 1 n [ V a r ( f ) − ( m 1 − m 2 ) 2 ] (6)
V a r [ Y ^ c r u d e ] = V a r ( f ) / n V a r [ Y ^ c r u d e ] = V a r [ Y ^ S ] − ( m 1 + m 2 ) 2 / n (7)
整理公式(7),得:
V a r [ Y ^ S ] − V a r [ Y ^ c r u d e ] = ( m 1 + m 2 ) 2 / n (8)
假设
f ( U ) = e U n = 2 E [ f ( U ) ] = 1.718 V a r [ f ( U ) ] = 0.240
根据公式(6)、(7)计算,得:
Y ^ c r u d e = ( e u 1 + e u 2 ) / 2 V a r [ Y c r u d e ] = 0.121 m 1 = 0.6487 m 2 = 1.069 V a r [ Y ^ S ] = V a r [ Y ^ c r u d e ] − ( m 1 + m 2 ) 2 / n = 0.0375
则
V R E R S = 3.227
从方差缩减比率 V R E R S 的值可看出分层抽样方差缩减技术的效果比较明显。
根据第1节我们了解当分层层数为 n = 2 的情形,方差缩减的大小为(8)式。接下来我们将研究当分层层数 n > 2 的情形时均匀分布和非均匀分布分层抽样的估计量。方差缩减的大小在后面的章节给出证明。
假设把[0,1]分为n层,记第一层为 A 1 = [ 0 , 1 / n ) ,第二层为 A 2 = [ 1 / n , 2 / n ) ,依次类推, A n = [ ( n − 1 ) / n , 1 ) ,
在均匀分布的条件下,落在每一个小区间的概率为 1 n ,假设样本空间为n,定义如下:
V i = i − 1 + U i n ∼ U n i f [ i − 1 n , i n ]
其中 U i ∼ U n i f ( 0 , 1 ) , i = 1 , 2 , ⋯ , n 。因此 V i 为给定 U ∈ A i 时U的条件分布, V 1 , V 2 , ⋯ , V n 构成了(0,1)均匀分布的一个分层样本。如果 Y = f ( U ) ,则有 E [ f ( U ) ] 的分层抽样估计为:
Y S = 1 n ∑ i = 1 n f (Vi)
给定概率 p 1 , p 2 , ⋯ , p K , ∑ i = 1 K p i = 1 ,并定义K个分层分别为:
A 1 = ( a 0 , a 1 ) , A 2 = ( a 2 , a 3 ) , ⋯ , A K = ( a K − 1 , a K )
其中 a 0 = − ∞ , a 1 = F − 1 ( p 1 ) , a 2 = F − 1 ( p 1 + p 2 ) , ⋯ , a K = F − 1 ( p 1 + p 2 + ⋯ + p K ) ,F为概率分布函数。假设随机变量Y的概率分布函数为F,则有 P r ( Y ∈ A i ) = F ( a i ) − F ( a i − 1 ) = p i 。为了利用所产生的分层抽样 A 1 , A 2 , ⋯ , A K ,需要生成随机变量 Y | Y ∈ A i 的样本,利用逆变换方法可实现。假设 V = a i − 1 + U ( a i − a i − 1 ) ,则 F − 1 ( V ) 具有 Y | Y ∈ A i 分布。
考察欧式看涨期权定价问题。注意:
S ( T ) = S ( t ) exp { ( r − 1 2 σ 2 ) ( T − t ) + σ T − t ⋅ ε } (9)
其中 ε 服从标准正态分布,将随机变量 ε 的值域进行分层,划分为没有交集的K个区间 A 1 , A 2 , ⋯ , A K ,并用 p i 来表示标准正态随机变量落入每一个小区间 A i 的概率,即: P ( A i ) = p i , i = 1 , 2 , ⋯ , K 。
那么:
P r ( Y ∈ ∪ i = 1 K A i ) = 1 E [ Y ] = ∑ i = 1 K P r ( ε ∈ A i ) E [ Y | ε ∈ A i ] = ∑ i = 1 K P i E [ Y | ε ∈ A i ]
其中 Y = max { S ( T ) − K , 0 } ,最后生成 Y | ε ∈ A i 分布的样本。
在随机抽样时,产生的与 ε 同分布随机数落入区间 A i 的比例通常不等于 p i ,尽管产生的随机总数n增大时,它会趋于 p i 。在分层抽样中提前约定:从每层 A i 中提取一定数量的随机数,每个从 A i 提取的随机数,都被限制在条件 ε ∈ A i 的标准正态随机数。最后计算每一层上的条件期望,并把它们按照概率比重 p i 进行加权平均。按分层概率加权Monte-Carlo方法的计算步骤如下:
Step1:将随机数对应的总体X的值域进行K个区间划分 A 1 , A 2 , ⋯ , A K ,并计算落入每个区间的概率 p i ,即(直接对总体 max { S ( T ) − K , 0 } 分层即可)。
P ( A i ) = p i , i = 1 , 2 , ⋯ , K
Step2:给定第一层样本容量 n 1 (数量必须保证模拟精度),产生的随机数 ε ,若 ε ∈ A i 则保留,否则重复产生随机数,直到达到容量 n 1 为止。这样我们就获取了第一层 A i 上的 n 1 个随机数。
ε 1 , 1 , ε 1 , 2 , ⋯ , ε 1 , n 1
Step3:利用第一层的 A i 上的 n 1 个随机数估计条件期望
E 1 = 1 n ∑ j = 1 n 1 Y 1 , j , j = 1 , 2 , ⋯ , n 1
其中 Y 1 , j = max { S 1 j − K , 0 } , S 1 , j = S ( 0 ) exp { ( r − 1 2 σ 2 ) ( T − t ) + σ T − t ⋅ ε 1 , j }
Step4:重复步骤2和步骤3,估计其他分层的条件 E 2 , E 3 , ⋯ , E k ;
Step5:按照概率比重 p i 将 E i 加权平均,即可估计欧式看涨期权在t时刻的价格
c ^ = exp { − r ( T − t ) } ∑ i = 1 K p i n i ∑ j = 1 n 1 Y i , j (10)
为了节省计算机运行时间,同时兼顾精度的需求,通常按照概率比重设置分层的模拟次数,令
q i = n i / n , ∑ i = 1 K n i = n , i = 1 , 2 , ⋯ , K
由于 n i 必须取值非负整数,很难做到 q i 和 p i 完全一致,但当n足够大时, p i ≈ q i ,此时统计量可以改写为:
c ^ = exp { − r ( T − t ) } p i n q i ∑ i = 1 K ∑ j = 1 n 1 Y i , j (11)
则(11)式可改写成(12)式:
c ^ = exp { − r ( T − t ) } 1 n ∑ i = 1 K p i q i ∑ j = 1 n 1 Y i j (12)
分层概率加权的区间估计现在我们讨论使用分层抽样对欧式看涨期权价格进行区间估计,假设样本数为n,分到每层的样本数为 n 1 , n 2 , ⋯ , n K ,且有 n 1 + n 2 + ⋯ + n K = n , Y | ε ∈ A i 的样本值为 Y i , j , i = 1 , 2 , ⋯ , K ,有:
μ i = E [ Y i , j ] = E [ Y | ε ∈ A i ] σ i 2 = V a r [ Y i , j ] = V a r [ Y | ε ∈ A i ] μ = E [ Y ] = ∑ i = 1 K p i μ i
其中
Y i , j = max { S i , j − K , 0 }
无论是否按照比例设置分层样本容量,估计量 c ^ 是无偏,因为
E [ c ^ ] = exp { − r ( T − t ) } ∑ i = 1 K p i n i ∑ j = 1 n 1 μ i = exp { − r ( T − t ) } ∑ i = 1 K p i μ i = c
其中
c = exp { − r ( T − t ) } E [ max { S ( T ) − K , 0 } ]
E [ Y | ε ∈ A i ] 的无偏估计为:
Y i = ( ∑ j = 1 n i Y i , j ) / n i
则 E [ Y ] 的分层抽样估计为:
Y ^ S = ∑ i = 1 K p i Y i = ∑ i = 1 K p i 1 n i ∑ j = 1 n 1 Y i , j (13)
通过(13)可以计算出 E [ Y S ] = μ ,因此分层抽样估计 Y S 为 E [ Y ] 的无偏估计。分层抽样 Y S 的方差为:
V a r [ Y S ] = ∑ i = 1 K p i 2 V a r ( Y i ) = ∑ i = 1 K p i 2 V a r [ 1 n i ∑ j = 1 n i Y i , j ] = ∑ i = 1 K P i 2 σ i 2 n i (14)
对于每一层 A i ,样本 ε 1 , 1 , ε 1 , 2 , ⋯ , ε 1 , n 1 是独立同分布且均值为 μ i ,方差为 σ i 2 ,因此满足当 n → ∞ 时,
1 n q i ∑ j = 1 n q i ( Y i , j − μ i ) → d N ( 0 , σ i 2 ) (15)
其中 q 1 , q 2 , ⋯ , q K 固定,经中心化与规范化后的变量 n ( Y ^ − μ ) 可以写成
n ( c ^ − c ) = n exp { − r ( T − t ) } ∑ i = 1 K ( 1 n q i ∑ j = 1 n q i Y i , j − μ i ) (16)
整理之后我们有:
n ( c ^ − c ) = n exp { − r ( T − t ) } ∑ i = 1 K p i q i ( 1 n q i ∑ j = 1 n q i Y i j − μ i ) (17)
这表明 n ( c ^ − c ) 可渐进表示为独立同分布正态随机变量(均值为0,方差为 σ i 2 )的线性组合(系数为 exp { − r T } p i / q i ),因而当层级数量K固定、样本容量n足够大时
n ( c ^ − c ) ∼ N ( 0 , exp { − 2 r ( T − t ) } σ 2 ( q ) ) (18)
从而我们给出的显著水平 α 的置信区间
[ c ^ − z α / 2 exp { − 2 r ( T − t ) } σ ( q ) n , c ^ + z α / 2 exp { − 2 r ( T − t ) } σ ( q ) n ] (19)
在(18)与(19)实际应用中, σ 2 ( q ) 是未知的,但通常可以通过使用
s ( q ) = ∑ i = 1 K p i q i s i 2 (20)
通过(20)式来得到它的一致估计,其中 s i 2 为 max { S i , 1 − K , 0 } , ⋯ , max { S i , n 1 − K , 0 } 的修正样本标准差。
分层抽样的误差估计有两种方法:一种是直接方法,即利用 V a r [ Y S ] = ∑ i = 1 K p i 2 ( σ i 2 / n i ) 直接进行计算,其中 σ i 用其样本方差 s i 进行代替;另一种就是蒙特卡罗模拟方法,即直接模拟m个独立的分层抽样估计值,然后再计算这m个独立的分层估计值的标准差。
分层匹配样本方法也称为比例分层抽样法。分层概率加权Monte-Carlo方法需要在每一层上不停的产生足够数量的样本,虽然可以最大限度的提高模拟精度,但是在反复产生随机数的同时需要不停的舍去那些不符分层标准的随机数,这肯定延长计算机运行时间。
本节构造了另一种分层方案,注意区间 A 1 , A 2 , ⋯ , A k 是随机变量 ε 的值域的完整划分。这意味着对于总体 ε 的任何一个随机数 ε (仍用 ε 表示),存在一个分层区间 A i ,使得:
ε ∈ A i , ε ∉ A j , i ≠ j , j = 1 , 2 , ⋯ , K
在比例分层抽样下, n i = n p i ,所以有:
Y ^ S = Y ^ S ∘ p r o p = ( ∑ i = 1 K ∑ j = 1 n i Y i j ) / n V a r [ Y ^ S ∘ p r o p ] = ( ∑ i = 1 K p i σ i 2 ) / n (21)
另外 V a r ( Y ) 为:
V a r ( Y ) = E [ Y 2 ] − ( E [ Y ] ) 2 = ∑ i = 1 K p i E [ Y 2 | ε ∈ A i ] − μ 2 = ∑ i = 1 K p i ( σ i 2 + μ i 2 ) − μ 2 = ∑ i = 1 K p i σ i 2 − ∑ i = 1 K p i ( μ i − μ ) 2 / n (22)
则
V a r ( Y ^ c r u d e ) = V a r ( Y ) / n = V a r ( Y ^ S ∘ p r o p ) + ∑ i = 1 K p i ( μ i − μ ) 2 / n (23)
所以比例分层抽样的方差缩减效果为:
V a r ( Y ^ c r u d e ) − V a r ( Y ^ S ∘ p r o p ) = ∑ i = 1 K p i ( μ i − μ ) 2 / n (24)
分层匹配样本的Monte-Carlo方法步骤如下:
Step1:将随机数对应的总体X的值域进行K个区间划分 A 1 , A 2 , ⋯ , A K ,并计算落入每个区间的概率 p i ,即(直接对总体 max { S ( T ) − K , 0 } 分层即可)。
P ( A i ) = p i , i = 1 , 2 , ⋯ , K
Step2:产生一定量的样本(容量为n),然后将他们匹配到分层 A 1 , A 2 , ⋯ , A K 去,假定第i个分层 A i 的样本为
ε i , 1 , ε i , 2 , ⋯ , ε i , n 1 , i = 1 , 2 , ⋯ , K
其中 n 1 + n 2 + ⋯ + n K = n
Step3:利用第i层的 A i 上的 n 1 个随机数估计条件期望
E i = 1 n i ∑ j = 1 n i Y i , j , j = 1 , 2 , ⋯ , n 1 , i = 1 , 2 , ⋯ , K
其中 Y i , j = max { S i , j − K , 0 } , S i , j = S ( 0 ) exp { ( r − 1 2 σ 2 ) ( T − t ) + σ T − t ⋅ ε i , j }
Step4:按照概率比重 p i 将 E i 加权平均,即可估计欧式看涨期权在t时刻的价格
c = exp { − r ( T − t ) } ∑ i = 1 K p i μ i (25)
在按比例匹配分层容量时,也就是在 n 1 + n 2 + ⋯ + n K = n 的条件下,求解 V a r [ Y S ] 的最小值, p i = q i 且方差参数 σ 2 ( q ) 化解为
∑ i = 1 K p i 2 q i σ i 2 = ∑ i = 1 K p i σ i 2 (26)
利用拉格朗日法求解(26)式最小值,假设:
L ( n 1 , n 2 , ⋯ , n K , λ ) = ∑ i = 1 K p i 2 σ i 2 n i + λ ( n 1 + n 2 + ⋯ + n K − n ) { ∂ L ∂ n i = − p i 2 σ i 2 n i 2 + λ = 0 ∂ L ∂ λ = n 1 + n 2 + ⋯ + n K − n = 0 ⇒ { n i = p i σ i λ n 1 + n 2 + ⋯ + n K = n ⇒ n i ∗ = n p i σ i ∑ i = 1 K p i σ i , i = 1 , 2 , ⋯ , K
换句话说,每个层级的最优分配与层标准差的乘积成正比,所以最优分层的方差为:
V a r ( Y ^ S ∘ o p t ) = ∑ i = 1 K p i n i * σ i 2 = σ ¯ 2 / n (27)
其中
σ ¯ = ∑ i = 1 K p i σ i
因为
∑ i = 1 K p i ( σ i − σ ¯ ) 2 = ∑ i = 1 K p i σ i 2 − σ ¯ 2
所以公式(26)可写成:
V a r ( Y ^ S ∘ o p t ) = [ ∑ i = 1 K p i σ i 2 − ∑ i = 1 K p i ( σ i − σ ¯ ) 2 ] / n (28)
则最优分层抽样的方差缩减效果为:
V a r ( Y ^ c r u d e ) − V a r ( Y ^ S ∘ o p t ) = ∑ i = 1 K p i ( μ i − μ ) 2 / n + ∑ i = 1 K p i ( σ i − σ ¯ ) 2 / n (29)
另外,最优分层抽样相对比例分层抽样的方差缩减效果为:
V a r ( Y ^ S ∘ p r o p ) − V a r ( Y ^ S ∘ o p t ) = ∑ i = 1 K p i ( σ i − σ ¯ ) 2 / n (30)
最优分层抽样方差的分解假设用 Y | η 表示 Y | ε ∈ A i ,其中 i = 1 , 2 , ⋯ , K ,则有:
V a r ( Y ^ c r u d e ) = 1 n V a r [ E ( Y | η ) ] + 1 n E [ V a r ( Y | η ) ]
其中
V a r [ E ( Y | η ) ] = ∑ i = 1 K p i ( μ i − μ ) 2 E [ V a r ( Y | η ) ] = ∑ i = 1 K p i ( σ i − σ ¯ ) 2 + σ ¯ 2
所以为了降低 V a r ( Y ^ c r u d e ) 的值,在选择分层变量 ε 时,应该尽量保证 V a r [ E ( Y | η ) ] 取得最大值,或 E [ V a r ( Y | η ) ] 取得最小值。也就是说,在进行分层时应该尽量保证各层之间的波动性比较大,层内波动性较小。
本文详细地分析了利用分层MC抽样技术模拟提高其计算精度与运行效率,及推导了分层抽样方差缩减的效果(也就是方差缩减比率 V R E R S 的值),而且我们根据推导发现分层概率加权方法、分层匹配样本方法与最优分层方法这三种方法中,而且我们从(30)式看出最优分层方法方差缩减效果比分层匹配样本方法的方差缩减效果好。并把所研究的成果应用于欧式看涨期权的定价之中,其对于期权理论的研究和完善具有重要的基础作用。作用分析各种理财产品现值,为投资者和相关人员机构提供一种较好的与预测工具和手段。
贵州民族大学科研基金资助项目(2017YB070);贵州民族大学网络安全与大数据应用训练中心(20161113006)。
陈云烁,姜晴琼. 分层MC在期权定价中的应用Application of Layered MC in Option Pricing[J]. 应用数学进展, 2018, 07(12): 1511-1520. https://doi.org/10.12677/AAM.2018.712176