- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
R统计模拟的
实验目的;用R作随机模拟计算
作为统计工作者,我们除了可以用R迅速实
现新的统计方法,还可以用R进行随机模拟。
随机模拟可以验证我们的算法、比较不同
算法的优缺点、发现改进统计方法的方向,
是进行统计研究的最有力的计算工具之一。
下面先对模拟作一简单介绍;模拟的概念;模拟的方法; 在实际问题中,面对一些带随机因素的复杂系统,用分析方法建模常常需要作许多简化假设,与面临的实际问题可能相差甚远,以致解答根本无法应用。这时,计算机模拟几乎成为唯一的选择。; 随机模拟方法是一种应用随机数来进行计算机模拟的方法.此方法对研究的系统进行随机抽样观察,通过对样本值的观察统计,求得所研究系统的某些参数.;Buffon投针实验;Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.;随机模拟计算的思路:;用蒙特卡洛方法进行计算机模拟的步骤:; 随机模拟最基本的需要是产生伪随机数,S中已提供了大多数常用分布的伪随机数函数,可以返回一个伪随机数序列向量。
这些伪随机数函数以字母r开头,比如rnorm()是正态伪随机数函数,runif()是均匀分布伪随机数函数,其第一个自变量是伪随机数序列长度n。关于这些函数可以参见系统帮助文件。
下例产生1000个标准正态伪随机数:
y - rnorm(1000)
这些伪随机数函数也可以指定与分布有关的参数,比如下例产生1000个均值为150、标准差为100的正态伪随机数:
y - rnorm(1000, mean=150, sd=100);产生伪随机数序列是不重复的,实际上,R在产生伪随机数时从一个种子出发,不断迭代更新种子,所以产生若干随机数后内部的随机数种子就已经改变了。有时我们需要模拟结果是可重复的,这只要我们保存当前的随机数种子,然后在每次产生伪随机数序列之前把随机数种子置为保存值即可:
the.seed - .Random.seed
……………
.Random.seed - the.seed
y - rnorm(1000) ;作为例子,我们来产生服从一个简单的线性回归
的数据。
# 简单线性回归的模拟
lm.simu - function(n){
# 先生成自变量。假设自变量x的取值范围在150到180之间,大致服从正态分布。
x - rnorm(n, mean=165, sd=7.5)
# 再生成模型误差。假设误差服从N(0, 1.2)
eps - rnorm(n, 0, 1.2)
# 用模型生成因变量
y - 0.8 * x + eps
return(data.frame(y,x))
} ;R没有提供多元随机变量的模拟程序,这里给出一个进行三元正态随机变量模拟的例子。假设要三元正态随机向量 的 n个独立观测,可以先产生n个服从三元标准正态分布的观测,放在一个 n行3列的矩阵中:
U - matrix(rnorm(3*n), ncol=3, byrow=T)
可以认为矩阵U的每一行是一个标准的三元正态分布的观测。设矩阵 的Choleski分解 , A为上三角矩阵,若随机向量 ,则 。因此, 作为一个三行 n列的矩阵每一行都是服从 分布的,且各行之间独立。经过转置,产生的 X;X - matrix(rep(mu,n), ncol=3, byrow=T) + U %*% A
是一个 n行三列的矩阵。
有时模拟需要的计算量很大,多的时候甚至要计算几天的时间。对于这种问题我们要善于把问题拆分成可以单独计算的小问题,然后单独计算每个小问题,把结果保存在R对象中或文本文件中,最后综合保存的结果得到最终结果。;如果某一个问题需要的计算时间比较长,我们在编程时可以采用以下的技巧:每隔一定时间就显示一下任务的进度,以免计算已经出错或进入死循环还不知道;应该把中间结果每隔一段时间就记录到一个文本文件中(cat()函数可以带一个file参数和append参数,对这种记录方法提供了支持),如果需要中断程序,中间结果可能是有用的,有些情况下还可以根据记录的中间结果从程序中断的地方继续执行。;补充内容介绍; 检验一个数据集的分布
我们可以用很多方法分析一个单变量数据集的分布。最简单的办法就是直接看数字。利用函数summary
您可能关注的文档
- OA办公自动化系统方的案书.doc
- oa产品资料的.ppt
- OA办公自动化系统的.doc
- OA协同办公系统的.ppt
- OA操作手册的.doc
- OA相关经验介绍的.doc
- OA管理系统需求分析的.doc
- OA系统培训的.ppt
- OA系统解决方案的.ppt
- OA项目招标书(20090的522).doc
- 2025年无人机低空医疗物资投放社会效益报告.docx
- 2025年再生塑料行业包装回收利用产业链重构研究.docx
- 《AI眼镜周边产品市场机遇:2025年终端销售与需求增长洞察》.docx
- 2025年坚果加工行业深加工技术突破与市场拓展策略报告.docx
- 2025年通信芯片行业技术竞争与未来趋势报告.docx
- 《2025年生鲜电商配送冷链事故分析与预防措施》.docx
- 《商业航天融资新趋势2025民营卫星企业资本涌入估值分析市场动态》.docx
- 2025年能源绿色健康行业创新技术与市场应用报告.docx
- 2025年无人机低空医疗救援通信方案分析报告.docx
- 2025年烹饪机器人行业市场集中度分析报告.docx
原创力文档


文档评论(0)