- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
运用SAS进行Monte?Carlo蒙特卡罗模拟简要介绍
运用SAS进行Monte Carlo蒙特卡罗模拟(第一弹):
运用SAS进行Monte Carlo蒙特卡罗模拟简要介绍
?
本文未经作者同意严禁转载
?
1 什么是蒙特卡罗模拟
?
蒙特卡罗模拟的定义:the use of random sampling techniques and often the use of computer simulation to obtain approximate solutions to mathematical or physical problems especially in terms of a range of values each of which has a calculated probability of being the solution (Merriam-Webster, Inc., 1994, pp. 754-755)
?
蒙特卡罗模拟的基本思想
当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。(资料来源: /wiki/%E8%92%99%E7%89%B9%C2%B7%E5%8D%A1%E7%BD%97%E6%96%B9%E6%B3%95)
?
蒙特卡罗模拟的试验过程:
计算机模拟试验过程,就是将试验过程转化为数学问题,在计算机上实现。在解决实际问题的时候应用蒙特卡罗模拟主要有两部分工作:用蒙特卡罗模拟某一过程时,需要产生各种概率分布的随机变量,然后用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。
(资料来源: /wiki/%E8%92%99%E7%89%B9%C2%B7%E5%8D%A1%E7%BD%97%E6%96%B9%E6%B3%95)
?
2 举例:用蒙特卡罗模拟掷骰子
一个均匀正方形的六面体,它在每一面刻有1到6的六个数码,如果要想知道掷骰子时某一面向上机会的多少,或者掷两次,求两次的和的值出现的概率,既可以用数学理论来证明,也可以用多次投掷方法来验证。只要投掷的数目足够多,就一定能证明每一面朝上的机会是1/6。
如果根据概率知识,我们知道骰子每一面出现的概率为1/6,因此,当掷两次时,因为每一次掷都是独立的,根据联合概率我们知道掷两次时的概率为1/6*1/6=1/36,那么当我们要求出掷两次,其和为7的概率时,因为1+6,2+5,3+4,4+3,5+2,6+1共六种可能,因为其概率为6*1/36=1/6。
如果我们不用概率理论,我们也可以用经验的方式得到结果,即用蒙特卡罗模拟每次掷骰子的结果。
用蒙特卡罗模拟掷骰子的程序如下:
DATA DICE(KEEP=SUM) OUTCOMES(KEEP=OUTCOME);
???? DO ROLL=1 TO 10000;?????????????????? *** 掷10000次骰子;
??????? OUTCOME1=1+INT(6*RANUNI(123));???? *** 第一次掷骰子的结果;
??????? OUTCOME2=1+INT(6*RANUNI(123));???? ***第二次掷骰子的结果;
??????? SUM=OUTCOME1+OUTCOME2;???????????? *** 两次掷骰子的结果的和;
??????? OUTPUT DICE;?????????????????????? *** 保存两次掷骰子的结果的和;
??????? OUTCOME=OUTCOME1; OUTPUT OUTCOMES; *** 保存第一次掷骰子的结果;
??????? OUTCOME=OUTCOME2; OUTPUT OUTCOMES; *** 保存第二次掷骰子的结果;
???? END;
RUN;
这里我们模拟10000次掷骰子的结果,得到这些结果的分布:
PROC FREQ DATA=DICE;???????? *** 得到两次掷骰子的结果的和的分布;
???? TABLE SUM;
RUN;
结果如下:
???????????????????????????? Cumulative? Cumulative
? SUM?? Frequency?? Percent?? Frequency??? Percent
? -------------------------------------------------
??? 2??????? 299????? 2.99???????? 299?????? 2.99
??? 3??????? 534????? 5.34????????
原创力文档


文档评论(0)