运用蒙特卡罗模拟进行风险分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运用蒙特卡罗模拟进行风险分析
蒙特卡罗模拟由著名的摩纳哥赌城而得名,他是一种非常强有力的方法学。
对专业人员来说,这种模拟为方便的解决困难而复杂的实际问题开启了一扇大门。
估计蒙特卡罗模拟最著名的早期使用是诺贝尔奖物理学家Enrico Fermi(有时也说是原子弹之父)在1930年的应用,那时他用一种随机方法来计算刚发现的中子的性质。
蒙特卡罗模拟是曼哈顿计划所用到的模拟的核心部分,在20世纪50年代蒙特卡罗模拟就用在Los Alamos国家实验室发展氢弹的早期工作中,并流行于物理学和运筹学研究领域。
兰德公司和美国空军是这个时期主要的两个负责资助和传播蒙特卡罗方法的组织,今天蒙特卡罗模拟也被广泛应用于不同的领域,包括工程,物理学,研发,商业和金融。
简而言之,蒙特卡罗模拟创造了一种假设的未来,它是通过产生数以千计甚至成千上万的样本结果并分析他们的共性实现的。
在实践中,蒙特卡罗模拟法用于风险分析,风险鉴定,敏感度分析和预测。
模拟的一个替代方法是极其复杂的随机闭合数学模型。
对一个公司的分析,使用研究生层次的高等数学和统计学显然不合逻辑和实际。
一个出色的分析家会使用所有他或她可得的工具以最简单和最实际的方式去得到相同的结果。
任何情况下,建模正确时,蒙特卡罗模拟可以提供与更完美的数学方法相似的答案。
此外,有许多实际生活应用中不存在闭合模型并且唯一的途径就是应用模拟法。
那么,到底什么是蒙特卡罗模拟以及它是怎么工作的?
什么是蒙特卡罗模拟?
今天,高速计算机使许多过去看来棘手的复杂计算成为可能。
对科学家,工程师,统计学家,管理者,商业分析家和其他人来说,计算机使创建一个模拟现实的模型成为可能,这有助于做出预测,其中一种方法应用于模拟真实系统,它通过调查数以百计甚至数以千计的可能情况来解释随机性和未来不确定性。
结果通过编译后用于决策。
这就是蒙特卡罗模拟的全部内容。
形式最简单的蒙特卡罗模拟是一个随机数字生成器,它对预测,估计和风险分析都很有用。
一个模拟计算模型的许多情况,这通过反复地从预先定义的特定变量概率分布中采集数据并将之应用于模型来实现。
因为所有的情况都产生相应的结果,每种情况都可以蕴含一种预测。
预测的是你定义为重要模型结果的事项(通常含有公式或函数)。
将蒙特卡罗模拟法想象为从一个大篮子里可放回的反复拿出高尔夫球。
拦在的大小和形
状取决于分布输入假定(例如,一个均值为100,标准方差为10的正态分布,均匀分布或者三角分布),这里有些篮子相对较深或者更对称,可使特定的球更顺利的被拿出。
反复拿出的球数取决于模拟试验的次数。
对一个具有多重相关假设的大模型,不妨将它想象为一个巨大的篮子,很多婴儿筐放在里面。
每个婴儿筐都有自己的一套彩色高尔夫球在四周跳动。
有时这些婴儿筐之间相互连接(如果变量之间相关),迫使高尔夫球协力跳动,而在其他不相关情况下,这些球则彼此独立的跳动。
每次从模型内的相互作用中拿出的球都列出并记录下来,以提供一个该模拟的预测输出结果。
模拟为何重要
一个解释模拟重要性的例子在图4.1和图4.2的案例说明中可以看到,叫做平均值缺陷。
这个例子非常值得深入研究。
它说明了一个分析者在不进行模拟的情况下可能被误导而做出错误的决策。
假设你是销售易腐商品商店的老板,你需要做出一个决定以确定当前的最优库存。
你新雇用的分析者成功的下载了5年的月度历史销售数据,并且她估计出平均值为五个单位。
然后你决定当前的最优库存就是五个单位。
你已经犯了平均值缺陷的错误。
如此例所示,这个错误发生的明显原因就是历史需求分布是高偏度的而成本结构确是对称的。
例如,假设你在参加一个会议,你的老板问你去年每个人赚了多少钱。
你做了一个快速调查,发现工资范围从$60,000到$150,000不等。
快速计算之后你发现平均值是$100,000.然后你老板告诉你他去年赚了$20,000,000!整个组的平均值一下子就变成了$15,000,000。
这个$15,000,000显然不可能代表你的同事去年赚了这么多钱。
这种情况下,中位值可能更合适。
这里你可以看到仅仅使用平均值会导致高度误导性的结果。
继续这个例子,图4.2说明了怎么使用模拟法计算正确的存货水平。
这里使用的方法是非参数拔靴模拟。
之所以是非参数是因为在这种模拟法中没有制定分布参数。
不同于蒙特卡罗参数模拟中需要假设特定的预设分布(正态,三角,对数正态一类的)及其所要求的参数(均值,标准方差,等等),非参数模拟利用数据本身来说明一件事情。
假设你搜集了5年来的历史需求水平并把每个月的需求量写在一个高尔夫球上。
把所有60个高尔夫球扔进一个大篮子并随机混合。
随机拿出一个高尔夫球并在纸上写下它的值,然后将球放回篮子并再次混合。
这样做60次并计算平均值。
这一过程是单独的一个分组试验。
可放回地完成整个过程数千次。
这几千个平均值的分布就代表模拟预测的结果。
所期待的模拟结果就是这几千个平均值的平均值。
图4.2显示了从非参数模拟得到的一个分布。
如你所见,经营成本最小是的最优存货率是9单位,远远不同于之前图4.1中计算出来的五单位。
很明显,每种方法都有它的有点和缺陷。
非参数模拟可以方便的通过风险模拟®的常用分布来实现,它使用历史数据来描述事实并预测未来。
然而,参数分布迫使模拟出来的结果服从规则分布,这是大多数情况下人们所期待的。
不像非参数模拟要求的必须考虑剔除杂乱数据(例如,离群值和谬值),参数模拟每次都是重新开始。
蒙特卡罗模拟是一种参数模拟,模拟开始之前要求有特定的分布参数。
替代方法是非参数模拟,它用原始历史数据来描述事实并且模拟的运行不需要分布参数。
模拟与传统分析比较
图4.3介绍了一些用来处理不确定性和风险的传统方法。
这些方法包括执行敏感度分析,情境分析和概率情境。
下一步是易用蒙特卡罗模拟,它可以被看作是不确定性和风险的一种扩展。
图4.4说明了一种应用更高级的蒙特卡罗模拟作预测的方法。
图4.4中的例子显示了蒙特卡罗模拟到底可以多复杂,而这取决于其用途。
从以下网站
下载的软件有一个随机过程模块,它运用了这些更复杂的随机预测模型,包括布朗运动,均值回归和随机漫步模型。
应用和EXCEL进行模拟
可以通过Excel实现模拟。
然而,更高级的模拟软件比如执行这种人物效率更高并且有预先设置在模拟中的附加特性。
现在我们介绍使用Excel和进行蒙特卡罗参数模拟和非参数资助模拟。
图4.5和图4.6中的例子显示了在一系列概率假设基础上运用Excel执行有限次数模拟。
我们假设已经完成了一系列的情景分析,并得到了九个结果值,其各自的发生概率也已计算出来。
运用Excel对这样一个情境分析建立模拟的第一步是理解Excel函数“RAND()”。
这个函数就是一个简单的随机数字生成器,Excel用它来从0到1的均匀分布中随机生成数字。
然后用假设中指定的概率把数字0到1转换成范围或区间。
例如,如果$362,995的发生概率是55%,我们就可以生成一个从0.00到0.55的区间。
类似地,对下一个值$363,522我们可以生成0.56到0.65的区间,这个的发生概率是10%,等等。
在这些区间的基础上就可以建立非参数模拟。
图4.5说明了一个5000套试验的例子。
每组试验需要模拟100次;也就是说,在每组模拟试验中,Excel用函数VLOOKUP(RAND(),$D$16:$F$24,3)可放回的随机抽取原始数字,这个函数先将RAND()函数产生的值与D16到F24区域的第一列数据相匹配,然后抽取第三列中相应的数据。
然后计算每组试验中采样数据的平均值。
这5000组试验的平均值的分布就可以得到,频率分布图显示在图4.5底部。
根据中心极限定理,这些样本均值的平均值将在极限意义上逼近真正的总体均值。
此外,当进行足够多组试验时,分布将非常逼近正态分布。
显然,在Excel中人工运行这种非参数模拟是相当乏味的。
一个替代方案是使用中的常用分布,它做的是同样的事情但是速度更快且效率更高。
第六章,潘多拉的工具箱,更详细的展示了一些模拟工具。
非参数模拟是一个强有力的工具但是只有当数据可得时才适用。
显然,越多的数据存在,模拟结果的精度和置信度就更高。
然而,当数据不存在或一个有效的系统过程支持着数据集(例如,物理学,工程学,经济关系)时,参数模拟可能更合适,它使用精确的概率分布。
Excel函数RAND()用来从0到1的均匀分布中随机生成数字。
RAND()*(B-A)用来从A 到B的均匀分布中随机生成数字。
NORMSINV(RAND())从均值为1,方差为0的标准正态分布中随机生成数字。
用Excel模拟简单问题简单而且高效。
然而,当产生更复杂的问题时,比如下面将要介绍的这个,就需要使用更专业的模拟软件。
就是这样一个软件。
在图4.7的例子中,单元格“Revenue”,“Opex”,“FCF/EBITDA Multiple”和“Revenue Growth Rate”(深灰色)是假定单元格,我们在里面填上分布的输入假定,比如变量遵循的分布类型和有哪些参数。
例如,在分析该公司历史收入数据的基础上,我们可以说收入服从一个均值为$1010,标准方差为$100的正态分布。
净现值(NPV)单元格是预测结果单元格,就是说,这些单元格的结果就是我们想要的最终分析结果。
参见第五章,试用,以得到更多安装和启动软件的细节。
风险分析是我们制定的每个决策的一部分。
我们一直面对着不确定,不明确和变异。
甚至我们无法获得信息,我们不能准确的预测未来。
蒙特卡洛模拟( Monte Carlo simulation)让您看到了您决策的所有可能的输出,并评估风险,允许在不确定的情况下制定更好的决策。
什么是蒙特卡洛模拟( 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)中,可能要建模输入变量之间的相关关系。
它对于准确的描绘在某些因子增长时,其它的因子是如何增长或下降的情况时是重要的。
对蒙特卡洛模拟( Monte Carlo simulation)的增强是使用拉丁超立方(Latin Hypercub)抽样,它对于从整个分布范围内抽样更准确。
Palisade对蒙特卡洛模拟产品
用于个人计算机的电子表格应用的出现给日常工作中使用对蒙特卡洛模拟的专业人士提供了一个机会。
Microsoft Excel是占有主导地位的电子表格分析工具,Palisade’s @RISK是适用Excel的处于领导地位的蒙特卡洛模拟插件。
早在1987年,Palisade就为DOS平台下的Lotus 1-2-3引入了蒙特卡洛模拟,长期以来@RISK因为其计算准确,建模灵活和容易使用而享有盛誉。
导入到Microsoft Project中产生了蒙特卡洛模拟的其它逻辑应用-分析在大型项目管理中的不确定性和风险。
@RISK for Project是Palisade 用于 Microsoft Project的蒙特卡洛模拟插件。