基于r软件的统计模拟

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于R软件的统计模拟奚潭(南京财经大学统计系2006级)主要内容1.统计模拟的基本概念2.赶火车问题3.R软件的统计模拟功能4.应用R软件模拟验证大数定律5.应用R软件模拟验证中心极限定理一、统计模拟的基本概念(一)统计模拟的定义统计模拟即是计算机统计模拟,它实质上是计算机建模,而这里的计算机模型就是计算机方法、统计模型(如程序、流程图、算法等),它是架于计算机理论和实际问题之间的桥梁。它与统计建模的关系如下图。实际问题统计、逻辑模型计算机模拟(程序、算法)统计、计算机解实际解一、统计模拟的基本概念(二)统计模拟方法一般地,统计模拟分类如下:若按状态变量的变化性质分为连续随机模拟和离散随机模拟。而按变量是否随时间变化又可分为动态随机模拟和静态随机模拟。常用的统计模拟方法主要有以下几种:1.蒙特卡罗法2.系统模拟方法3.其它方法:包括Bootstrap(自助法)、MCMC(马氏链蒙特卡罗法)等。一、统计模拟的基本概念(三)统计模拟的一般步骤二、赶火车问题火车离站时刻13:0013:0513:10概率0.70.20.1一列列车从A站开往B站,某人每天赶往B站上车。他已经了解到火车从A站到B站的运行时间是服从均值为30min,标准差为2min的正态随机变量。火车大约下午13:00离开A站,此人大约13:30到达B站。火车离开A站的时刻及概率如表1所示,此人到达B站的时刻及概率如表2所示。问此人能赶上火车的概率有多大?表1:火车离开A站的时刻及概率表2:某人到达B站的时刻及概率人到站时刻13:2813:3013:3213:34概率0.30.40.20.1二、赶火车问题——问题的分析——这个问题用概率论的方法求解十分困难,它涉及此人到达时刻、火车离开站的时刻、火车运行时间几个随机变量,而且火车运行时间是服从正态分布的随机变量,没有有效的解析方法来进行概率计算。在这种情况下可以用计算机模拟的方法来解决。:火车从A站出发的时刻;:火车从A站到B站的运行时间;:某人到达B站的时刻;:随机变量服从正态分布的均值;:随机变量服从正态分布的标准差;二、赶火车问题进行计算机统计模拟的基础是抽象现实系统的数学模型为了便于建模,对模型中使用的变量作出如下假定:1T2T3T2T2T此人能及时赶上火车的充分必要条件为:,所以此人能赶上火车的概率模型为:。二、赶火车问题123TTT123{}pTTT为了分析简化,假定13时为时刻t=0,则变量、的分布律为:1T3T05100.70.20.1283032340.30.40.20.11/minT()Pt3/minT()Pt二、赶火车问题R软件求解的总算法:关系式成立产生随机数验证模型成立次数k=k+1否是计算估计结果k/n成立次数不变试验次数是否达到n次是否编写R程序①借助区间(0,1)分布产生的随机数,对变量、概率分布进行统计模拟;1T3T②根据变量、、概率分布及模拟程序、命令产生n个随机分布数;1T2T3T③使用随机产生的n组随机数验证模型中的关系表达式是否成立;④计算n次模拟实验中,使得关系表达式成立的次数k;⑤当时,以作为此人能赶上火车的概率p的近似估计;nkn进入演示windows(7,3)prb=replicate(100,{#括号内程序重复100次x=sample(c(0,5,10),1,prob=c(0.7,0.2,0.1))y=sample(c(28,30,32,34),1,prob=c(0.3,0.4,0.2,0.1))plot(0:40,rep(1,41),type=n,xlab=time,ylab=,axes=FALSE)axis(1,0:40)r=rnorm(1,30,2)points(x,1,pch=15)i=0while(i=r){i=i+1segments(x,1,x+i,1)if(x+i=y)points(y,1,pch=19)Sys.sleep(0.1)}points(y,1,pch=19)title(ifelse(x+r=y,poor...missedthetrain!,Bingo!catchedthetrain!))Sys.sleep(4)x+ry})mean(prb)进入模拟三、R软件的统计模拟功能1、R软件优秀的随机数模拟功能分布产生随机数序列命令参数设置binomialrbinom()n,size,probchi-squaredrchisq()n,df,ncpexponentialexp()n,rateFF()n,df1,df2,ncpnormalnorm()n,mean,sdPoissonpois()n,lambdaStudent’stt()n,df,ncpunifomunif()n,min,max生产某概率分布的随机数是实现统计模拟的前提条件,而使用R命令可以生成以下常用分布的随机数:三、R软件的统计模拟功能2、优良的编程环境和编程语言R所拥有的好的兼容性、拓展性和强大的内置函数有利于统计模拟的实现。3、高效率的向量运算功能使用R拥有的向量运算功能可以大大减少程序运行的时间,提高程序运行的效率。下面以求解Pi的程序为例加以说明未采用R向量运算功能的程序为:mc1-function(n){set.seed(1234579)k-0;x-runif(n);y-runif(n);for(iin1:n){if(x[i]^2+y[i]^21)k-k+1;}data.frame(Pi=4*k/n)}引入向量运算功能改进后的程序为:mc1-function(n){set.seed(1234579)k-0;x-runif(n);y-runif(n);k-length(x[x^2+y^21])data.frame(Pi=4*k/n)}--下面用R软件分别执行两个程序,看看有什么差异程序1......程序2三、R软件的统计模拟功能四、应用R软件模拟验证大数定律1、验证的大数定律有:(1)伯努利大数定理——设是次独立重复试验中事件发生的次数。是事件在每次试验中发生的概率,则对于任意正数0,有AnnAPAlim{||}1AnnPpn(2)辛钦定理:设随机变量相互独立,服从同一分布,且具有数学期望,,则对于任意正数,有12,,,,nXXX()(1,2,)kEXk11lim1nknkPXn四、应用R软件模拟验证大数定律2、在R软件实现的算法思想:由大数定律可知,当,样本的均值趋向与理论分布的期望,因此利用样本容量逐渐增大这一趋势来模拟这一趋势,在这种趋势下,样本的均值与理论分布期望的误差应该呈现出越来越小的趋势,同时,根据上述思想,分别对五种常用分布下的大数定律进行验证。nnn四、应用R软件模拟验证大数定律大数定律模拟算法设置参数值产生m维序列绘图试验次数是否达到m次是否编写R程序选择分布类型产生随机数计算样本均值y①设置循环的跳跃步长、的第一次抽样的样本容量初始值和上限值;stepsn1n2n②利用函数产生由各模拟样本空间大小组成的m维序列;1,2(,)seqfromntonbysteps③选择随机数的分布类型,本文中的相关程序仅选择了常用的随机分布:正态分布、指数分布、均匀分布、泊松分布、二项分布、两点分布;iX④利用R软件产生n个服从同一分布的随机数;),...,2,1(niXi⑤计算(或)的值;11nkkXnAnn⑥若循环次数im,则回转④,否则转⑦;⑦以x轴代表样本容量n,y轴代表每次抽样所得的样本均值,描绘出整个试验的过程。进入演示……五、应用R软件模拟验证中心极限定理1、验证的中心极限定理有(1)独立同分布的中心极限定理:设随机变量相互独立,服从同一分布,且具有数学期望和方差:,则随机变量之和的标准化变量:12,,,,nXXX2(),()0(1,2,)kkEXDXk1nkkX1111()()nnnkkkikinnkiXEXXnYnDX的分布函数对于任意满足:2/211lim()lim{}()2nkxtinnnXnFxPxedtxn(2)DeMoivre-Laplace(棣莫弗-拉普拉斯)中心极限定理设相互独立的随机变量服从参数为p的两点分布,则对于任意实数x,有(1,2,)nn2/211lim{}()(1)2nixtinXnpPxedtxnpp五、应用R软件模拟验证中心极限定理选择分布类型确定参数m和n统计检验和描述性分析jm是否编写R程序产生随机数计算标准化随机变量设置参数j和step中心极限定理模拟算法①选择随机变量的分布类型,主要分布类型有正态分布、指数分布、均匀分布、泊松分布、二项分布和两点分布;iX②设置模拟试验总次数m及每次模拟试验中随机变量的个数n的值;③利用R软件模拟产生n个服从同一分布的随机数;,(1,2,,)ixin④使用产生的n个随机数计算标准化随机变量值1(1,2,,)nkijxnyjmn⑤设置循环变量j和循环的跳跃步长,当时,重复步骤③、④,直至;1stepjmjm⑥对m个值进行正态性检验和描述性统计分析,包括直观的QQ图检验、正态性W检验以及偏度系数、峰度系数、均值和方差。iy进入演示……五、应用R软件模拟验证中心极限定理非常感谢!

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功