个人爱好分享
蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数估计量和统计量,进而研究其分布特征的 *** 。具体的,当系统中各个单元的可靠性特征量已知,但系统的可靠性过于复杂,难以建立可靠性预计的精确数学模型或模型太复杂而不便应用时,可用随机模拟法近似计算出系统可靠性的预计值;随着模拟次数的增多,其预计精度也逐渐增高。由于涉及到时间序列的反复生成,蒙特卡洛模拟法是以高容量和高速度的计算机为前提条件的,因此只是在近些年才得到广泛推广。
蒙特卡洛(Monte Carlo)模拟这个术语是二战时期美国物理学家Metropolis执行曼哈顿计划的过程中提出来的。
蒙特卡洛模拟 *** 的原理是当问题或对象本身具有概率特征时,可以用计算机模拟的 *** 产生抽样结果,根据抽样计算统计量或者参数的值;随着模拟次数的增多,可以通过对各次统计量或参数的估计值求平均的 *** 得到稳定结论。
蒙特卡洛模拟法求解步骤
应用此 *** 求解工程技术问题可以分为两类:确定性问题和随机性问题。
解题步骤如下:
1.根据提出的问题构造一个简单、适用的概率模型或随机模型,使问题的解对应于该模型中随机变量的某些特征(如概率、均值和方差等),所构造的模型在主要特征参量方面要与实际问题或系统相一致
2 .根据模型中各个随机变量的分布,在计算机上产生随机数,实现一次模拟过程所需的足够数量的随机数。通常先产生均匀分布的随机数,然后生成服从某一分布的随机数,方可进行随机模拟试验。
3. 根据概率模型的特点和随机变量的分布特性,设计和选取合适的抽样 *** ,并对每个随机变量进行抽样(包括直接抽样、分层抽样、相关抽样、重要抽样等)。
4.按照所建立的模型进行仿真试验、计算,求出问题的随机解。
5. 统计分析模拟试验结果,给出问题的概率解以及解的精度估计。
蒙特卡洛模拟法的应用领域
蒙特卡洛模拟法的应用领域主要有:
1.直接应用蒙特卡洛模拟:应用大规模的随机数列来模拟复杂系统,得到某些参数或重要指标。
2.蒙特卡洛积分:利用随机数列计算积分,维数越高,积分效率越高。
3.MCMC:这是直接应用蒙特卡洛模拟 *** 的推广,该 *** 中随机数的产生是采用的马尔科夫链形式。
[img]我们一直面对着不确定,不明确和变异。甚至我们无法获得信息,我们不能准确的预测未来。蒙特卡洛模拟( Monte Carlo simulation)让您看到了您决策的所有可能的输出,并评估风险,允许在不确定的情况下制定更好的决策。蒙特卡洛模拟( Monte Carlo simulation)是一种计算机数学技术,允许人们在定量分析和决策制定过程中量化风险。这项技术被专家们用于各种不同的领域,比如财经,项目管理,能源,生产,工程,研究和开发,保险,石油天然气,物流和环境。蒙特卡洛模拟( Monte Carlo simulation)提供给了决策制定者大范围的可能输出和任意行动选择将会发生的概率。它显示了极端的可能性-最的输出,最保守的输出-以及对于中间路线决策的最可能的结果。这项技术首先被从事 *** 工作的科学家使用;它被命名为蒙特卡洛,摩纳哥有名的娱乐旅游胜地。它是在二战的时候被传入的,蒙特卡洛模拟( Monte Carlo simulation)现在已经被用于建模各种物理和概念系统。蒙特卡洛模拟( Monte Carlo simulation)是如何工作的蒙特卡洛模拟( Monte Carlo simulation)通过构建可能结果的模型-通过替换任意存在固有不确定性的因子的一定范围的值(概率分布)-来执行风险分析。它一次又一次的计算结果,每次使用一个从概率分布获得的不同随机数集。根据不确定数和为他们制定的范围,蒙特卡洛模拟( Monte Carlo simulation)能够在它完成计算前调用成千上万次的重复计算。蒙特卡洛模拟( Monte Carlo simulation)产生可能结果输出值的分布。通过使用概率分布,变量能够拥有不同结果发生的不同概率。概率分布是一种用来描述风险分析的变量中的不确定性的更加可行的 *** 。常用的概率分布包括:正态分布(Normal)-或"钟型曲线".用户简单的定义均值或期望值和标准差来描述关于均值的变异。在中部靠近均值的值是最有可能发生的值。它是对称的,可以用来描述多种自然现象,比如人的身高。可以通过正态分布描述的变量示例包括通货膨胀率和能源价格。对数正态分布(Lognormal)-值是正偏的,不像正态分布那样是对称的。它被用来代表不会小于零但可能有无限大正值的结果。可以通过对数正态分布描述的变量示例包括房地产价值,股票价格和石油储量。均匀分布(Uniform)-所有的值发生的机会相等,用户只需制定最小和更大值。可以通过均匀分布描述的变量示例包括一个新产品的制造费用或未来销售收入。三角分布(Triangular)-用户指定最小,最可能和更大值。在最可能附近的值最可能发生。可以通过三角分布描述的变量示例包括每时间单位内的过去销售历史和库存水平。PERT分布-用户指定最小,最可能和更大值,类似三角分布。在最可能附近的值最可能发生。然而在最可能和极值之间的值比三角分布更有可能发生;那就是说,the extremes are not as emphasized. 可以通过三角分布描述的变量示例包括在项目管理模型中的一项任务的持续时间。离散分布(Discrete)-用户指定最可能发生的值和每个值的可能性。比如关于诉讼结果的示例,20%的机会陪审团判决无罪,30%的机会陪审团判决有罪,40%的机会审批有效,10%的机会审批无效。在蒙特卡洛模拟( Monte Carlo simulation)过程中,值被从输入概率分布中随机抽取。每个样本集被称为一次迭代,从样本获得的结果被记录。蒙特卡洛模拟( Monte Carlo simulation)执行这样的操作成百上千次,可能结果形成一个概率分布。用这种 *** ,蒙特卡洛模拟( Monte Carlo simulation)生成了一个更加全面关于将会发生的结果的视图。它不仅仅告诉什么结果会发生,而且还有结果发生的可能性。蒙特卡洛模拟( Monte Carlo simulation)提供了许多超越确定性或"单点估计"分析的优势:概率结果,结果不仅显示会发生什么,而且还有每个结果发生的可能性图形化报告,因为蒙特卡洛模拟( Monte Carlo simulation)生成的数据,它很容易创建不同结果和他们发生机会的图形。这对于和其他投资者沟通结果是很重要的。敏感性分析,如果只有很少的一些案例,确定性分许就很难发现哪个变量对结果影响更大。在蒙特卡洛模拟( Monte Carlo simulation)中,很容易发现哪个输入对底线结果有更大的影响。情境分析,在确定性模型中,对于为不同输入值的不同组合建模来真实的查看不同情境的效果是很困难的。使用蒙特卡洛模拟( Monte Carlo simulation),分析员能够正确的查看当确定的输出发生时某个输入对应的值。这对于进一步的分析来说是无价的。相关性输入,在蒙特卡洛模拟( Monte Carlo simulation)中,可能要建模输入变量之间的相关关系。它对于准确的描绘在某些因子增长时,其它的因子是如何增长或下降的情况时是重要的。
蒙特卡洛模拟作为一种常用的模拟技术,在PMBOK里经常可以看到它的身影,其主要出现在风险管理知识领域中的定量风险分析过程,是用于做项目定量风险分析的工具之一,同时蒙特卡洛模拟也可以用于估算进度或成本以及制定进度计划等。(全文共 2741 字,阅读大约需要 10 分钟。)
蒙特卡洛模拟由于在PMBOK里讲得较为简单和抽象,理解起来稍微有点困难。为了让大家更加通透地理解蒙特卡洛模拟的作用及其过程原理,本文试图通过一个简单的例子来实操模拟一下这个蒙特卡洛模拟的过程。
一、简要介绍
到底什么是蒙特卡洛模拟呢?蒙特卡洛模拟是一种统计学的 *** ,用来模拟大量数据。可能童鞋们看到这个定义更晕了,到底什么是统计学 *** ,模拟大量数据干什么?别着急下面会慢慢一一道来。
我们先来简单介绍一下关于蒙特卡洛模拟的一些背景知识。蒙特卡洛模拟是在二战期间,当时在 *** 研制的项目中,为了模拟裂变物质的中子随机扩散现象,由美国数学家冯·诺伊曼(学计算机的同学都知道这位冯同志的大名,人称“计算机之父”)和乌拉姆等发明的一种统计 *** 。之所以起名叫蒙特卡洛模拟,是因为蒙特卡洛在是欧洲袖珍国家摩纳哥一个城市,这个城市在当时是非常著名的一个赌城。因为赌博的本质是算概率,而蒙特卡洛模拟正是以概率为基础的一种 *** ,所以用赌城的名字为这种 *** 命名。
蒙特卡洛模拟是在计算机上模拟项目实施了成千上万次,每次输入都随机选择输入值。由于每个输入很多时候本身就是一个估计区间,因此计算机模型会随机选取每个输入的该区间内的任意值,通过大量成千上万甚至百万次的模拟次数,最终得出一个累计概率分布图,这个就是蒙特卡洛模拟。
二、 模拟过程
蒙特卡洛模拟在实际的项目管理应用中一般较为复杂,而且很多时候用在专业的项目风险分析软件里面(比如Pertmaster),通常用在较为大型的项目和企业中。我们这篇文章只是为了让童鞋们对于蒙特卡洛模拟有个更为直观清晰的认识,同时鉴于篇幅和不至于让讲解过于晦涩,所以这儿我们只是准备用Excel工具来简单地模拟和介绍一下蒙特卡洛模拟的实施操作过程,这样大家也能对蒙特卡洛模拟有个更为直观地了解。
我们以定量分析项目总持续时间为例来简要介绍一下蒙特卡洛模拟。比如说我们现在有个项目,该项目共有三个WBS要素分别是设计、建造和测试,为了简单起见我们假设这三个WBS要素的预估的工期概率分布都呈标准正态分布,各自的平均工期、标准差以及最悲观、最可能和最乐观的估计工期如下图所示(我们这儿简单地认为基于正态分布的工期的最悲观/最乐观的估算工期定在均值正负3个标准差的位置),而且三者之间都是完成到开始的逻辑关系,这样整个项目工期就是这三个WBS要素工期之和。
现在我们需要用蒙特卡洛模拟来以这三个要素的工期的分布为输入,来模拟得到整个项目的工期概率分布图。由于设计、建造和测试这三个要素都是呈标准正态分布,我们可以根据上面表格中的各自的均值和标准差数据大致画出这三个要素工期的概率分布图如下面的样子:
我们要用蒙特卡洛模拟来定量分析整个项目的工期进度风险。于是我们用计算机来模拟项目的实施,我们的思路是: 之一步: 随机选取每个WBS要素的工期值作为输入(因为每个要素的工期不是恒定的,本身就是一个估计的分布区间); 第二步: 然后把三个WBS要素的值相加得到整个项目的工期值,这样就完成了一次模拟; 第三步: 重复之一二步,然后就这样一次一次的模拟,需要模拟成千上万次最终得到成千上万个整个项目总工期的数值; 第四步: 再对这些海量模拟次数得到海量总工期数值进行统计分析,得出其最终的项目总工期估计的概率分布。
我们先做之一步。之一步需要我们先产生这些每个要素的随机工期值。Excel里面有个函数可以生成呈正态分布的随机数,就是NORMINV。我们的设计要素的之一个随机工期取值的公式就是这么写的:=ROUND(NORMINV(RAND(),$E$3,$F$3),0),如下图所示:
解释一下这个公式:ROUND(NORMINV(RAND(),$E$3,$F$3),0),RAND() 是生成0到1之间的随机数,NORMINV(RAND(),$E$3,$F$3) 是生成呈均值为E3(图中为14)、标准差为F3(图中为2)的正态分布的随机数,ROUND 是四舍五入的意思,这样回车我们就生成了设计这个要素的之一个随机工期值17。同理我们把这个公式值往下拉,复制400次(我们此例中模拟400次),就得到了400个呈正态分布的随机工期值;然后建造和测试的随机工期值也是照葫芦画瓢,这样我们就得到了这3个要素的400次模拟的随机值,再每次的3个要素的随机值相加得到总工期的模拟值,如下图所示:
此时前三步就做完了得到了总工期的一组数据(400个)。现在开始做第四步对这组数据做统计分析和作图。
4.1 先把总工期这一列(图中E列)400个值拷贝一份,粘贴数值到另外一列(注意粘贴的时候选择“选择性粘贴”然后选“值”,因为随机数随时变动,这儿需要把值固定下来),用MAX和MIN函数计算出这一列400个值的更大值为76,和最小值为45,作为分组依据,然后在旁边 I 列依次升序排列42-78(前后多取几个数值图像更完整)这部分数值作为分组数据,如下图所示:
4.2 然后计算每个分组数据在总工期这组数据中出现的概率,这儿需要用到函数FREQUENCY,计算概率的公式为:=FREQUENCY(H8:H407,I8:I40)/400,意思是统计每个分组数据在总工期这一组数据中出现的次数,再除以模拟总次数400就得到这个分组数据出现的概率。再计算一个累积概率值,累积概率值就是前面的所有单个概率值加起来的概率,比如算分组数据46的累积概率值就是把46以下的数值的概率值全部加起来,这样我们就得到关于分组数据在总工期这组数据中出现的概率和累积概率的数据,如下表格所示:
4.3 通过对上面表格的数据,以分组数据为X轴,出现概率和累积概率的值为Y轴于是可以做出下面关于总工期的概率分布图:
红色柱状图是整个项目估计刚好多少天完工的概率数据,比如图中60天对应的概率大约是11%,表示整个项目刚好60天完工的概率是11%;蓝线就是我们PMBOK上定量风险分析得到的那张S曲线图,也是我们最终蒙特卡洛模拟需要得到的最终的模拟输出:总工期的概率分布图。通过这个S曲线,我们可以预测整个项目在多少天内完工的概率。比如我们需要预测整个项目在56天完工的概率,通过S曲线了解到56天对应的累积概率是34%左右,也就是整个项目56天内完工的概率是34%,那么56天内不能完工的概率就是1-34%=66%,这就是风险。如果觉得风险太高无法接受,那么我们可以把工期适当规划长一些,比如60天,这样查询S曲线可以得到60天内整个项目完工的概率是70%,这样就只有剩下30%的不能按时完工的风险,项目在进度方面的风险就大大降低了。
好了,至此关于蒙特卡洛模拟的基本概念和操作流程就说完了,希望能通过本文对大家学习和理解蒙特卡洛模拟有所助益,如有任何疑问、建议或指正,欢迎留言交流,谢谢阅读。
推荐阅读作者更多的文章(直接点击下面的标题):
详解挣值管理(EVM)
详解净现值(NPV)与内部报酬率(IRR)
什么是边际效益递减规律?
“活动”失踪了吗? | 《PMBOK®指南》第6版解读
如何用通俗的案例解释「借壳上市」?
以执行价 K=98 的美式看跌期权为例,蒙特卡洛模拟的结果是一条确定的价格路径,比如下面这样:
T | t=0 | t=1 | t=2 | t=3
路径1 | 100 | 97 | 103 | 105
如果你对照着这条路径,就应该在t=1时行权。但这样就相当于,你在t=1时,就已经知道未来的价格走势了。
这种预知未来,在现实中是不被允许的。你可以回归数据,得到映射关系(或者说 规律),但不可以翻剧本、直接用未来的结果。所以考虑引入最小二乘蒙特卡洛模拟,E(Y|X)=g(X),其中Y是继续持有、不提前行权、所带来的未来收益贴现值(即内在价值),而X是标的物在t时刻的价格。
作为加深理解,你考虑下欧式期权,由于不依赖路径,不会提前行权,只关注到期日 T 这一个时间点上的标的物价格,所以可以直接用蒙特卡洛模拟。
网站首页:期货手续费网-加1分开户(微信:527209157)
本文链接:http://52ol.cn/post/152114.html
Copyright 2012-2024 期货手续费网-加1分开户 网站地图 邮箱:diyijiaoyi@qq.com 微信:527209157 湘ICP备18014167号