没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第 一 章 : M o n t e C a r l o 方 法 概 述
讲课人:Xaero Chang | 课程主页:
本章主要概述 Monte Carlo 的一些基础知识,另外包括一个最简单的用 Monte Carlo
方法计算数值积分的例子;
一、Monte Carlo 历史渊源
Monte Carlo 方法的实质是通过大量随机试验,利用概率论解决问题的一种数值方
法,基本思想是基于概率和体积间的相似性 ;它和 Simulation 有细微区别 ;单独的
Simulation 只是模拟一些随机的运动,其结果是不确定的;Monte Carlo 在计算的中间
过程中出现的数是随机的,但是它要解决的问题的结果却是确定的;
历史上有记载的 Monte Carlo 试验始于十八世纪末期约 1777 年,当时布丰 Buffon
为了计算圆周率,设计了一个“投针试验”;后文会给出一个更加简单的计算圆周率的
例子;虽然方法已经存在了 200 多年,此方法命名为 Monte Carlo 则是在二十世纪四十
年,美国原子弹计划的一个子项目需要使用 Monte Carlo 方法模拟中子对某种特殊材料
的穿透作用;出于保密缘故,每个项目都要一个代号,传闻命名代号时,项目负责人之一
von Neumann 灵犀一点选择摩洛哥著名赌城蒙特卡洛作为该项目名称,自此这种方法也
就被命名为 Monte Carlo 方法广为流传;
十一、Monte Carlo 方法适用用途
一数值积分
计算一个定积分,如 ,如果我们能够得到 fx 的原函数 Fx,那么直接由表达
式: Fx1-Fx0 可以得到该定积分的值;但是,很多情况下,由于 fx 太复杂,我们无法计算
得到原函数 Fx 的显示解,这时我们就只能用数值积分的办法;如下是一个简单的数值积
分的例子;
数值积分简单示例
如图,数值积分的基本原理是在自变量 x 的区间上取多个离散的点,用单个点的值
来代替该小段上函数 fx 值;
常规的数值积分方法是在分段之后 ,将所有的柱子粉红色方块的面积全部加起来 ,
用这个面积来近似函数 fx 蓝色曲线与 x 轴围成的面积;这样做当然是不精确的,但是随
着分段数量增加,误差将减小,近似面积将逐渐逼近真实的面积;
Monte Carlo 数值积分方法和上述类似;差别在于,Monte Carlo 方法中,我们不需要
将所有方柱的面积相加,而只需要随机地抽取一些函数值 ,将他们的面积累加后计算平
均值就够了;通过相关数学知识可以证明 ,随着抽取点增加 ,近似面积也将逼近真实面
积;
在金融产品定价中 ,我们接触到的大多数求基于某个随机变量的函数的期望值 ;考
虑一个欧式期权 ,假定我们已经知道在期权行权日的股票服从某种分布理论模型中一
般是正态分布,那么用期权收益在这种分布上做积分求期望即可;
五随机最优化
Monte Carlo 在随机最优化中的应用包括:模拟退火 Simulated Annealing、进化
策略 Evolution strategy 等等;一个最简单的例子是,已知某函数,我们要求此函数的
最大值,那么我们可以不断地在该函数定义域上随机取点 ,然后用得到的最大的点作为
此函数的最大值;这个例子实质也是随机数值积分,它等价于求此函数的无穷阶范数
-Norm 在定义域上的积分;
由于在金融产品定价中 ,这部分内容用的相对较不常见 ,所以此课程就不介绍随机
最优化方法了;
十二、Monte Carlo 形式与一般步骤
一积分形式
做 Monte Carlo 时,求解积分的一般形式是:
X 为自变量,它应该是随机的,定义域为 x0, x1,fx 为被积函数,ψx 是 x 的概率密度;
在计算欧式期权例子中,x 为期权到期日股票价格,由于我们计算期权价格的时候该期
权还没有到期,所以此时 x 是不确定的是一随机变量,我们按照相应的理论,假设 x 的概
率密度为ψx、最高可能股价为 x1 可以是正无穷、最低可能股价为 x0 可以是 0,另外,
期权收益是到期日股票价格 x 和期权行权价格的函数,我们用 fx 来表示期权收益;
二一般步骤
我将 Monte Carlo 分为三加一个步骤:
1.依据概率分布ψx 不断生成随机数 x, 并计算 fx
由于随机数性质,每次生成的 x 的值都是不确定的,为区分起见,我们可以给生成的
x 赋予下标;如 x
i
表示生成的第 i 个 x;生成了多少个 x,就可以计算出多少个 fx 的值
2.将这些 fx 的值累加,并求平均值
例如我们共生成了 N 个 x,这个步骤用数学式子表达就是
3.到达停止条件后退出
常用的停止条件有两种,一种是设定最多生成 N 个 x,数量达到后即退出,另一种是
检测计算结果与真实结果之间的误差,当这一误差小到某个范围之内时退出;
有趣的类比:积分表达式中的积分符合类比为上式中累加符号,dx 类比为 1/N
数学知识告诉我们积分实质是极限意义下的累加;fx 还是它自己,积分中的ψx 可类
比为依据ψx 生成随机数
4.误差分析
Monte Carlo 方法得到的结果是随机变量,因此,在给出点估计后,还需要给出此估
计值的波动程度及区间估计 ;严格的误差分析首先要从证明收敛性出发 ,再计算理论方
差,最后用样本方差来替代理论方差 ;在本课程中我们假定此方法收敛 ,同时得到的结
果服从正态分布,因此可以直接用样本方差作区间估计;详细过程在例子中解释;
这个步骤的理论意义很重要,但在实际应用中,它的重要性有所淡化,倘若你的老板
不太懂这些知识,你报告计算结果时可以只告诉他点估计即可;
注意,前两大步骤还可以继续细分 ,例如某些教科书上的五大步骤就是将此处的前
两步细分成四步;
十三、最简单的例子
举个例子:
计算从 函数从 0 到 2 的定积分值
的原函数是
;
,那么定积分值就是: Matlab 中输入代码:数学方法:我们已知
exp2-exp0
上面得到的值是此不定积分的真实值;
常规数值积分:在 区间内取 N 个点,计算各个点上的函数值,然后用函数值乘
以每个区间宽度,最后相加;Matlab 代码:
N=100;x=linspace0,2,N;sumexpx.2/N
试着调大 N 的值,你会发现,最后的结果将更接近真实值;
Monte Carlo 数值积分法:在 内随机取 N 个点,计算各个点上的函数值,最后
求这些函数值的平均值再乘以 2 为何要乘以 2 在后面小节详细讲;看 Matlab 代码:
N=100;x=unifrnd0,2,N,1;mean2expx
同样的,通过增大 N,这种方法得到的结果也将越来越接近真实值;
解释
这个例子要求的积分形式是: , 还不完全是 形式,我们先做变
换, ,这里 是 fx;1/2 是ψx,它表示,在取值范围 0,2 区间内,x 服从均匀
分布;
前一例子共三条语句,逐句解释如下:
N=100;
设定停止条件,共做 N 次 Monte Carlo 模拟;
x=unifrnd0,2,N,1;
按照 0,2 区间均匀分布概率密度对 x 随机抽样,共抽取 N 个 x
i
;此句相当于第一个步
骤中的前半部分;
mean2expx
2expx 作用是对每个 x
i
计算 fx
i
的值,共可得到 N 个值,这个相当于第一个步骤后半
部分;Mean 函数的作用是将所有的 fx
i
加起来取平均值,相当于第二个步骤;
这段代码中的停止条件隐含于 N 值设定中,它一次性生成 N 个 x 值,完成此次计算后
整个程序就结束了;
十四、Monte Carlo 方法的优点
对比前面常规数值积分和 Monte Carlo 数值积分代码,同样数量的 N 值——也就意
味这几乎相同的计算量——常规数值积分结果的精确度要高于 Monte Carlo 数值积分
的结果;那么,我们为何还需要用 Monte Carlo 来算数值积分呢
答案的关键在于 ,常规数值积分的精度直接取决于每个维度上取点数量 ,维度增加
了,但是每个维度上要取的点却不能减少 ;在多重积分中,随着被积函数维度增加,需要
计算的函数值数量以指数速度递增;例如在一重积分 中,只要沿着 x 轴取 N
个 点 ; 要 达 到 相 同 大 小 的 精 确 度 , 在 s 重 积 分
中,仍然需要在每个维度上取 N 个点,s 个
s
纬度的坐标相组合,共需要计算 N 个坐标对应的 f 函数值;取点越多,会占用计算机大量
内存,也需要更长运算时间,最终导致这种计算方法不可行
Monte Carlo 方法却不同,不管是积分有多少重,取 N 个点计算的结果精确度都差不
多;因此,即使在一重积分的情形下 ,Monte Carlo 方法的效率比不过常规数值积分 ,但
随着积分维度增加,常规数值积分的速度呈指数下降 ,Monte Carlo 方法的效率却基本
不变;经验表明,当积分重数达到 4 重积分甚至更高时,Monte Carlo 方法将远远优于常
规数值积分方法;
现在回到金融产品定价,欧式期权理论定价公式只需要一重积分,此时 Monte Carlo
方法的效果不明显,但是如果我们考虑一个亚式期权:期限为 1 年期,期权价格基于此 1
年内每天某个时点时的价格,全年共 252 个交易日,这样此亚式期权理论定价公式是一
个 252 重积分;常规的数值积分方法,需要取 N
252
个点,这个数有多大,你自己去计算一下
就知道了注意:N 取值要远远大于 2,常规数值积分方法不可行,只能用 Monte Carlo;
综上,如果计算高维度多重积分,如路径依赖的 exotic options 奇异期权等金融产
品定价,我们一般用的方法都是 Monte Carlo;
十五、Monte Carlo 方法原理选读
Monte Carlo 方法计算的结果收敛的理论依据来自于大数定律 ,且结果渐进地
Asymptotically 服从正态分布的理论依据是中心极限定理;
以上两个属性都是渐进性质,要进行很多次抽样,此属性才会比较好地显示出来,如
果 Monte Carlo 计算结果的某些高阶距存在,即使抽样数量不太多,这些渐进属性也可
以很快地达到;
这些原理在理论上意义重大,但由于我们一般遇上的 Monte Carlo 问题都是收敛的、
结果也都是渐进正态分布,所以工作中使用时可以不加考虑;
详细推导见相关书籍;
第二章:随机数的生成
讲课人:Xaero Chang | 课程主页:
本章第一节会简要复习随机变量的一些概念 ,但学习本章最好要有一定的数学
基础;第二节主要介绍如何生成一维概率分布的随机数,第三节介绍如何生成高维分
布的随机数;最后略提及伪随机数问题的应对策略;
由前文可知,Monte Carlo 积分解决的问题形如 ,fx 值只需由 x 值决定,
因此此处最重要的就是如何生成服从ψ x 概率分布的随机数 ;可以说 ,正确生成随机
数,Monte Carlo 方法就做完了一半;
一、随机变量基本概念
一随机变量
现实世界中有很多可以用数字来衡量的事物 ,站在当前时间点来看 ,它们在未来时
刻的值是不确定的;例如,我们掷一骰子,在它停稳前,我们不可能知道掷出多少点传说
中的赌王除外,哈哈;例如某只股票在明天的股价 ,没有人能准确知晓第二天股票的价
格不然他就发惨了;但是,我们却可以描述这些事物未来各种值的可能性;
二离散型随机变量
离散型随机变量最重要的是分布律,即每个取值的概率是多少;例如掷骰子,我们认
为扔出任何一个点的概率都是 1/6;那么掷骰子得到的点数的分布律如下表:
骰子点数 1 2 3 4 5 6
概率 1/6 1/6 1/6 1/6 1/6 1/6
三连续性随机变量
连续型随机变量有两个重要的概念;概率密度函数 PDF 和累积概率分布函数 CDF,具
体定义见数学书籍;
PDF 函数本身不是概率,只有对 x 的某段区间中的 PDFfx 积分得到的数值才有概率
的含义;CDF 是概率的意思,点 x 上 CDFFX 的值表示该随机变量可能取值小于 x 的概率的
大小;
如图是正态分布的 PDF 和 CDF
四多元分布
在这个课程里面 ,我不将多维的随机变量拆分成多个一维的随机变量来表述 ,而是
将各个维度组合成一个随机变量向量;多元随机变量分布需要掌握联合分布、边缘分布
和条件分布;
联合分布和单变量 PDF 类似,如果将其对随机变量某个取值范围做积分就可以得到
随机变量最终取值落在该区间内的概率;
边缘分布是只考虑多维随机变量中的某一维,其他维度不考虑情况下的 PDF
条件分布是固定随机变量在其他维度的取值,再考虑剩余那个维度上的 PDF;
如图是一个二维正态分布两个维度间相关系数为 0.3 的示意图;两个小图分别是第
一和第二维度的边缘分布 PDF 图都是标准正态分布 PDF;右上角的大图是依据此二维正
态联合分布生成的随机数;从随机数的疏密程度可以看出联合分布 PDF 函数在该区域的
大小;
研究这些分布不是我们的目的 ,只是达到目的的手段 ;我们所需要做的事情是生成
符合各种分布的随机数;由分布的不同类型——连续型和离散型,常规型 Matlab 中有内
剩余29页未读,继续阅读
资源评论
不吃鸳鸯锅
- 粉丝: 8299
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功