如何用R进行蒙特卡罗模拟

Python014

如何用R进行蒙特卡罗模拟,第1张

蒙特卡洛模拟法求解步骤应用此方法求解工程技术问题可以分为两类:确定性问题和随机性问题。解题步骤如下:

根据提出的问题构造一个简单、适用的概率模型或随机模型,使问题的解对应于该模型中随机变量的某些特征(如概率、均值和方差等),所构造的模型在主要特征参量方面要与实际问题或系统相一致

2 .根据模型中各个随机变量的分布,在计算机上产生随机数,实现一次模拟过程所需的足够数量的随机数。通常先产生均匀分布的随机数,然后生成服从某一分布的随机数,方可进行随机模拟试验。

3. 根据概率模型的特点和随机变量的分布特性,设计和选取合适的抽样方法,并对每个随机变量进行抽样(包括直接抽样、分层抽样、相关抽样、重要抽样等)。

4.按照所建立的模型进行仿真试验、计算,求出问题的随机解。

5. 统计分析模拟试验结果,给出问题的概率解以及解的精度估计。

在可靠性分析和设计中,用蒙特卡洛模拟法可以确定复杂随机变量的概率分布和数字特征,可以通过随机模拟估算系统和零件的可靠度,也可以模拟随机过程、寻求系统最优参数等。

蒙特卡洛模拟技术,是用随机抽样的方法抽取一组满足输入变量的概率分布特征的数值,输入这组变量计算项目评价指标,通过多次抽样计算可获得评价指标的概率分布及累计概率分布、期望值、方差、标准差,计算项目可行或不可行的概率,从而估计项目投资所承担的风险。

蒙特卡洛模拟的步骤如下:

第一步,通过敏感性分析,确定风险变量。

第二步,构造风险变量的概率分布模型。

第三步,为各输入风险变量抽取随机数。

第四步,将抽得的随机数转化为各输入变量的抽样值。

第五步,将抽样值组成一组项目评价基础数据。

第六步,根据基础数据计算出评价指标值。

第七步,整理模拟结果所得评价指标的期望值、方差、标准差和它的概率分布及累计概率,绘制累计概率图,计算项目可行或不可行的概率。

蒙特卡洛模拟程序如图7-26所示。

图7-26 蒙特卡洛模拟程序图

【实训Ⅷ】某项目建设投资为1亿元,流动资金1000 万元,项目两年建成,第三年投产,当年达产。不含增值税年销售收入为5000万元,经营成本2000万元,附加税及营业外支出每年为50万元,项目计算期12 a。项目要求达到的项目财务内部收益率为15%,求内部收益率低于15%的概率。

由于蒙特卡洛模拟的计算量非常大,必须借助计算机来进行。本案例通过手工计算,模拟20次,主要是演示模拟过程。

(1)确定风险变量。通过敏感性分析,得知建设投资、产品销售收入、经营成本为主要风险变量。流动资金需要量与经营成本线性相关,不作为独立的输入变量。

(2)构造概率分布模型。建设投资变化概率服从三角形分布,其悲观值为1.3亿元、最大可能值为1亿元、乐观值为9000万元,如图7-27所示。年销售收入服从期望值为5000万元、σ=300万元的正态分布。年经营成本服从期望值为2000万元、σ=100 万元的正态分布。

图7-27 投资三角形分布图

建设投资变化的三角形分布的累计概率,见表7-16及图7-27所示。

表7-16 投资额三角形分布累计概率表

(3)对投资、销售收入、经营成本分别抽取随机数,随机数可以由计算机产生,或从随机数表中任意确定起始数后,顺序抽取。本例从随机数表(表7-20)中抽取随机数。假定模拟次数定为k=20,从随机数表中任意从不同地方抽取三个20 个一组的随机数,见表7-17。

表7-17 输入变量随机抽样取值

(4)将抽得的随机数转化为各随机变量的抽样值。

这里以第1组模拟随机变量产生做出说明。

1)服从三角形分布的随机变量产生方法。

根据随机数在累计概率表(表7-16)或累计概率图(图7-28)中查取。投资的第1个随机数为48867万元,查找累计概率0.48 867所对应的投资额,从表7-16中查得投资额在10300与10600之间,通过线性插值可得

第1个投资抽样值=10300+300×(48867-39250)/(52000-39250)=10526万元

2)服从正态分布的随机变量产生方法。

从标准正态分布表(表7-21)中查找累计概率与随机数相等的数值。例如销售收入第1个随机数06242,查标准正态分布表得销售收入的随机离差在-1.53与-1.54之间,经线性插值得-1.5348。

图7-28 投资的累计概率分布图

第1个销售收入抽样值=5000-1.5348×300≈4540万元。

同样,经营成本第一个随机数66 903相应的随机变量离差为0.4328,第一个经营成本的抽样值=2000+100×0.4328=2043万元。

3)服从离散型分布的随机变量的抽样方法。

本例中没有离散型随机变量。另举例如下,据专家调查获得的某种产品售价的概率分布见表7-18。

表7-18 某种产品售价的概率分布

根据上表绘制累计概率如图7-29所示。

若抽取的随机数为43252,从累计概率图纵坐标上找到累计概率为0.43252,划一水平线与累计概率折线相交的交点的横坐标值125元,即是售价的抽样值。

(5)投资、销售收入、经营成本各20个抽样值组成20组项目评价基础数据。

(6)根据20组项目评价基础数据,计算出20 个计算项目评价指标值,即项目财务内部收益率。

(7)模拟结果达到预定次数后,整理模拟结果按内部收益率从小到大排列并计算累计概率,见表7-19所示。

从累计概率表可知内部收益率低于15%的概率为15%,内部收益率高于15%的概率为85%。

图7-29 售价累计概率曲线

表7-19 蒙特卡洛模拟法累积概率计算表

①每次模拟结果的概率=1/模拟次数。

更为确切的是指,在一定概率水平(置信度)下,某一金融资产或证券组合价值在未来特定时期内的最大可能损失。用公式表示为:Prob(△Ρ<VAR)=1-α 其中Prob表示:资产价值损失小于可能损失上限的概率。△Ρ表示:某一金融资产在一定持有期△t的价值损失额。VAR表示:给定置信水平α下的在险价值,即可能的损失上限。α为:给定的置信水平。VAR从统计的意义上讲,本身是个数字,是指面临“正常”的市场波动时“处于风险状态的价值”。即在给定的置信水平和一定的持有期限内,预期的最大损失量(可以是绝对值,也可以是相对值)。例如,某一投资公司持有的证券组合在未来24小时内,置信度为95%,在证券市场正常波动的情况下,VaR 值为800万元。其含义是指,该公司的证券组合在一天内(24小时),由于市场价格变化而带来的最大损失超过800万元的概率为5%,平均20个交易日才可能出现一次这种情况。或者说有95%的把握判断该投资公司在下一个交易日内的损失在800万元以内。5%的机率反映了金融资产管理者的风险厌恶程度,可根据不同的投资者对风险的偏好程度和承受能力来确定。VAR的计算系数由上述定义出发,要确定一个金融机构或资产组合的VAR值或建立VAR的模型,必须首先确定以下三个系数:一是持有期间的长短;二是置信区间的大小;三是观察期间。1、持有期。持有期△t,即确定计算在哪一段时间内的持有资产的最大损失值,也就是明确风险管理者关心资产在一天内一周内还是一个月内的风险价值。持有期的选择应依据所持有资产的特点来确定比如对于一些流动性很强的交易头寸往往需以每日为周期计算风险收益和VaR值,如G30小组在1993年的衍生产品的实践和规则中就建议对场外OTC衍生工具以每日为周期计算其VaR,而对一些期限较长的头寸如养老基金和其他投资基金则可以以每月为周期。从银行总体的风险管理看持有期长短的选择取决于资产组合调整的频度及进行相应头寸清算的可能速率。巴塞尔委员会在这方面采取了比较保守和稳健的姿态,要求银行以两周即10个营业日为持有期限。2、置信水平α。一般来说对置信区间的选择在一定程度上反映了金融机构对风险的不同偏好。选择较大的置信水平意味着其对风险比较厌恶,希望能得到把握性较大的预测结果,希望模型对于极端事件的预测准确性较高。根据各自的风险偏好不同,选择的置信区间也各不相同。比如J.P. Morgan与美洲银行选择95%,花旗银行选择95.4%,大通曼哈顿选择97.5%,Bankers Trust选择99%。作为金融监管部门的巴塞尔委员会则要求采用99%的置信区间,这与其稳健的风格是一致的。3、第三个系数是观察期间(Observation Period)。观察期间是对给定持有期限的回报的波动性和关联性考察的整体时间长度,是整个数据选取的时间范围,有时又称数据窗口(Data Window)。例如选择对某资产组合在未来6个月,或是1年的观察期间内,考察其每周回报率的波动性(风险) 。这种选择要在历史数据的可能性和市场发生结构性变化的危险之间进行权衡。为克服商业循环等周期性变化的影响,历史数据越长越好,但是时间越长,收购兼并等市场结构性变化的可能性越大,历史数据因而越难以反映现实和未来的情况。巴塞尔银行监管委员会目前要求的观察期间为1年。综上所述,VaR实质是在一定置信水平下经过某段持有期资产价值损失的单边临界值,在实际应用时它体现为作为临界点的金额数目。