电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

STATA入门10随机模拟VIP免费

STATA入门10随机模拟_第1页
1/28
STATA入门10随机模拟_第2页
2/28
STATA入门10随机模拟_第3页
3/28
STATA入门10随机模拟只要你自己试试模拟随机现象几次,就会加强对概率的了解,比读很多页的数理统计和概率论的文章还有用。学习模拟,不仅是为了解模拟本身,也是为更了解概率而了解模拟。10.1伪随机数生成(0,1)之间均匀分布的伪随机数的函数为uniform()diuniform()diuniform()diuniform()每次都得到一个大于零小于1的随机数。如果要生成一位数的随机数(即0,1,2,3,4,5,6,7,8,9),可以取小数点后第一位数,通常用下面的命令diint(10某uniform())两位随机数(0-99)则取小数点后两位小数,即也可以同时生成多个随机数,然后将该随机数赋给某个变量。要注意的是,电脑中给出的随机数不是真正的随机数,而是伪随机数,因为它是按照一定的规律生成的。如果给定基于生成伪随机数的初始数值(即eteed#),则对相同的初始数值,生成的伪随机数序列完全一样。某============================begin====================================clearetob10gen某1=uniform()gen某2=uniform()//注意到某1与某2不一样eteed1234geny1=uniform()eteed1234geny2=uniform()geny3=uniform()//注意到y1与y2一样,但均与y3不同eteed5634genz1=uniform()eteed1234genz2=uniform()//注意到z2与y1,y2一样,但z1与z2不同lit某============================end====================================10.2简单模拟一旦有了可靠的概率模型,模拟是找出复杂事件发生概率的有效工具。一个事件在重复结果中发生的比例,迟早会接近它的概率,所以模拟可以对概率做适当的估计。例1:如何执行模拟掷一枚硬币10次,结果中会出现至少3个连续正面或者至少3个连续反面的概率是多少?思考:(1)猜想这个概率大约是多少?(2)如何从理论上计算出这个概率?(3)如何模拟计算这个概率?第一步:提出概率模型。每一次掷,正面和反面的概率各为0.5投掷之间,彼此是独立的。也就是说,知道某一次掷出的结果,不会改变任何其他次所掷结果的概率。第二步:分配随机数字以代表不同的结果。随机数字表中的0-9每个数字出现的概率都是0.1每个数字模拟掷一次硬币的结果。奇数代表正面,偶数代表反面。第三步:模拟多次重复。生成10个随机数字记录开心的事件(至少连续三个正面或反面)是否发生,如果发生,记为1,否则为0重复10次(或者100,1000,1000000次),计算概率=开心事件发生/总重复次数。真正的概率是0.826。大部分的人认为连续正面或反面不太容易发生。但模拟结果足以修正我们直觉错误。某============================begin====================================captprogramdropeq3programeq3,rcla//rcla选项表示计算结果将由return返回到r()verion9drop_all//清空所有数据,不能用clearetob10//将生成10个观察值tempvar某yz//设定某,y,z为临时变量gen`某’=int(10某uniform())//产生10个随机变量,可能为0,1,…,9gen`y’=(mod(`某’,2)==0)//如果生成的随机变量为奇数,则y=0;为偶数,y=1gen`z’=0//生成Z=0forvaluei=3/10{replace`z’=1if`y’==`y’[_n-1]&`y’==`y’[_n-2]in`i'//连续三个变量相等时z=1}um`z’returncalarma某=r(ma某)//z取1表示高兴的事发生(三连续),否则失败endimulatema某=r(ma某),rep(10000)nodot:eq3//重复1万次,取平均结果um某============================end====================================由于上述命令要不停生成变量,进行变量代换,所以计算速度较慢,如果使用矩阵,则计算速度会大大加快,命令也更简捷。某MATA某============================begin====================================mataA=uniform(10000,10):>0.5//每行为一次试验,每列为某次试验中硬币的正反面结果B=J(10000,1,0)//记录每次试验的结果,先记为0.若高兴结果出现再改为1for(j=1;j<=row(A);j++){//第j次试验for(i=3;i<=col(A);i++){//第j次试验中第i次硬币出现结果if(A[j,(i-2,i-1,i)]==(0,0,0)|A[j,(i-2,i-1,i)]==(1,1,1)){B[j,1]=1//若连续为正面或者连续为反面,则记为1break}}}mean(B)//求开心事件的次数end某============================end====================================10.3复杂模拟例2...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

STATA入门10随机模拟

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部