当前位置:文档之家› 最新统计计算课程设计汇总

最新统计计算课程设计汇总

2014统计计算课程设计《统计计算》课程设计报告学院专业姓名学号评语:分数二○一四年五月2014统计计算课程设计题型题型一: 若产生总体),5(~2σN X,其中2σ未知,请设计一个随机模拟实验,要求从该总体产生一个容量为100的样本,考虑置信水平分别取0.95和0.5时,对上述过程重复1000次,统计有多少个区间包含均值5,要求画出置信水平分别取0.95和0.5时均值的置信区间图,并给出实验总结。

问题分析:实验要求在置信水平分别取0.95和0.5的情况下,从总体),5(~2σN X 中产生一个容量为100的样本,由于2σ未知,在分析中先暂且把它设置为21。

由于方差未知,估计正态总体均值的置信区间时使用公式1()/2n Xt s n 。

如果均值5在置信区间内,那么符合条件的区间数m 加1。

该过程重复1000次,统计最终符合条件的区间的频数m 为多少,对应的频率p 为多少。

SAS 结果:图1 输出结果:符合条件的区间数累加结果以及频率图2 置信水平取0.95时均值的置信区间图图3 置信水平分别取0.5时均值的置信区间图由于对SAS作图操作的了解程度有限,尚未能掌握画出标准的置信区间图的方法。

图2、图3中,横轴表示置信区间的编号,纵轴表示总体均数;星号表示的是该编号的置信区间上限,点表示的是该编号的置信区间下限;中间是总体均值等于5的参考线,方便观察对比得出结论。

结论:在置信水平取1时,如果从同一总体中重复抽取1000份样本含量相同(本实验样本容量为100)的独立样本,每份样本分别计算1个置信区间,在这1000个置信区间中将大约有1000(1)个置信区间覆盖总体均数,大约有1000个置信区间并不覆盖总体均数。

所以,对于某一次估计的置信区间,我们平时总是宣称这个区间覆盖了总体均数,但不一定是真的覆盖了总体均数,于是,我们补充一句:置信度为100(1)%。

题型二:在实际观察中,已知腐蚀深度与腐蚀时间有线性关系,设给定腐蚀时间X 时腐蚀深度Y 的总体均数E(Y|X)与X 的关系满足方程E(Y|X)=70+0.6X ,且腐蚀时间)2,170(~2N X,腐蚀深度)2,6.070(~2X N Y 。

现随机抽取该总体20对腐蚀深度与腐蚀时间的关系,构成一份样本,做一次回归分析;重复抽取相同样本量的10份样本,分别进行回归,得到10条直线,观察它们的图形,得出结论。

要求:(1)给出随机样本表;(2)10条回归重叠图形;(3)实验结论。

问题分析:实验要求从总体2~(170,2)X N ,2~(700.6,2)Y N X 中随机抽取20对X 和Y 的关系。

然后根据这20对样本做一次回归分析。

该过程重复10次,并画出这10条回归直线,观察并得出相应结论。

SAS结果:图4 随机样本表图5 10条回归直线重叠图形结论:观察图5可以发现,10条回归直线的趋势大致相同,但是具体每条直线的截距和斜率都存在着差异。

同时可以比较10个模型的回归结果和样本的来源()700.6E Y X X (截距为70,斜率为0.6),相差也很大而且不稳定。

综上所述,这10个回归模型的拟合效果并不理想,造成这一现象的主要原因是样本量不够大。

在一元线性回归中,有22021ˆvar()ix nx x。

显然n 越大,0ˆvar()越小。

所以,要想使1,的估计值01ˆˆ,更稳定,在收集数据时,样本量应尽可能大一些,样本量n 大小时,估计量的稳定性肯定不会太好。

题型三:设有一个由两个服务台串联组成的服务机构(双服务太串联排队系统)。

顾客在第一个服务台接受服务后进入第二个服务台,服务完毕后离开。

假定顾客达到第一个服务台的时间间隔是均值为1分钟的指数分布,顾客在第一个和第二个服务台的服务时间分别是均值为0.7分和0.9分的指数分布。

请模拟这种双服务台串联排队系统(分别模拟600分和1000分的系统);并估计出顾客在两个服务台的平均逗留时间和排队中的顾客平均数。

问题分析:首先引入几个记号:1i x 顾客到达第一个服务台的时刻 2i x 顾客到达第二个服务台的时刻 1i s 顾客在第一个服务台的服务时间 2i s顾客在第二个服务台的服务时间 1i d顾客在第一个服务台的等待时间 2i d 顾客在第二个服务台的等待时间 1i n 在第一个服务台排队的顾客数 2i n 在第二个服务台排队的顾客数 1i c顾客离开第一个服务台的时刻 2i c顾客离开第二个服务台的时刻模拟时钟从0T分开始,产生指数分布(1)e 随机数,比如得0.3,0.9,0.3,0.4,0.1,0.4,;在第一个服务台的服务时间1(1/0.7)s e ,产生随机数比如得1,0.6,0.3,0.3,0.1,0.3,;在第二个服务台的服务时间2(1/0.9)s e ,产生随机数比如得0.2,0.4,0.3,1.5,0.1,2,。

0.3T分时,第一个顾客到达第一个服务台,记为110.3x,因没有人排队,马上接受服务,即110d,此时110n ;第一个顾客在第一个服务台接受服务时间为1分,计算110.310 1.3c 分;接着进入第二个服务台,记211.3x ;因没有人排队,马上接受服务,即210d,此时210n ;第一个顾客在第二个服务台接受服务时间为0.2分,计算211.30.20 1.5c分,即第一个顾客于开门后1.5分离开(即 1.5T分时离开)。

……2.4T 分时,第六个顾客到达第一个服务台,记为162.4x,而根据前面的计算,152.6c,即162.6 2.40.2d;此时在第一个服务台的排队中,第四个和第五个顾客仍在(因为142.5c ,152.6c ,都大于162.4x,即第六个顾客到达时他们都还没走),所以162n;第六个顾客在第一个服务台接受服务时间为0.3分,计算162.40.30.2 2.9c 分;接着进入第二个服务台,记262.9x;而根据前面的计算,254.2c,即264.2 2.9 1.3d ;此时在第二个服务台的排队中,第四个和第五个顾客仍在(因为244.1c,254.2c,都大于2.9T,即第六个顾客到达时他们都还没走),所以262n ;第六个顾客在第二个服务台接受服务时间为2.0分,计算262.9 1.32 6.2c分,即第六个顾客于开门后6.2分离开(即6.2T分时离开)。

……一直按这个过程循环直至模拟时钟的时间到达600或者1000分。

表1、表2列出模拟600分系统试验的部分结果。

表1 模拟过程(输入过程)0.3表2 模拟过程(输出结果)思路框图:下面以模拟600分系统为例,画出流程图。

SAS结果:图6 顾客在两个服务台的平均逗留时间和排队中的顾客平均数的估计结果结论:在模拟600分的系统中,顾客在第一个服务台的平均逗留时间为2.59分,排队中的顾客平均数为2人;在第二个服务台的平均逗留时间为6.43分,排队中的顾客平均数为7人;平均每个顾客在服务机构逗留的总时间为9.02分。

在模拟1000分的系统中,顾客在第一个服务台的平均逗留时间为2.15分,排队中的顾客平均数为2人;在第二个服务台的平均逗留时间为6.05分,排队中的顾客平均数为6人;平均每个顾客在服务机构逗留的总时间为8.20分。

程序:题型一:data ex1;array x(100) x1-x100; /*定义数列的元素*/do alpha=0.95,0.5; /*置信水平取0.95、0.5时各执行程序一次*/1() 2n*/sigma=1; /*设置方差*/m=0; /*初始化符合条件的区间数*/do j=1to1000;/*重复1000次实验*/do i=1to100;/*每次实验产生100个样本*/r=rannor(32789);x(i)=5+r*1; /*产生服从5,2sigma正态分布的随机数*/*/1()/ 2nt s n*/计算置信区间上限/如果置信区间包含output;end;end;end;end;data m(keep=m); /*创建一个只包含符合条件的区间数累加结果的数据集*/ set ex1;keep m j;if j=1000then output;data p; /*创建一个只包含符合条件的区间数累加结果以及频率的数据集*/ set m;p=m/1000;output;proc print data=p; /*输出结果*/run;data a; /*创建一个只包含alpha=0.95时置信区间上下限的数据集*/set ex1;if alpha=0.95then output;data b; /*创建一个只包含alpha=0.5时置信区间上下限的数据集*/set ex1;if alpha=0.5then output;proc gplot data=a; /*画alpha=0.95时的置信区间图*/symbol1c=blue v=star i=none;symbol2c=red v=dot i=none;plot lcl*j=1 ucl*j=2/overlay vref=5;run;proc gplot data=b; /*画alpha=0.5时的置信区间图*/symbol1c=blue v=star i=none;symbol2c=red v=dot i=none;plot lcl*j=1 ucl*j=2/overlay vref=5;run;题型二:data ex2;seed=32789;array x(10) x1-x10; /*定义数列的元素*/array y(10) y1-y10; /*定义数列的元素*/do i=1to20; /*每次实验产生20个样本*/do k=1to10;/*取十份样本*/x(k)=170+rannor(seed)*2; /*产生服从170,24正态分布的随机数*/y(k)=70+0.6*x(k)+rannor(seed)*2; /*产生服从700.6X,24正态分布的随机数*/ end;output;end;proc print data=ex2; /*输出随机样本表*/run;proc reg data=ex2; /*对10份样本分别进行回归,并输出拟合值*/model y1=x1;output out=out1 p=xp1;model y2=x2;output out=out2 p=xp2;model y3=x3;output out=out3 p=xp3;model y4=x4;output out=out4 p=xp4;model y5=x5;output out=out5 p=xp5;model y6=x6;output out=out6 p=xp6;model y7=x7;output out=out7 p=xp7;model y8=x8;output out=out8 p=xp8;model y9=x9;output out=out9 p=xp9;model y10=x10;output out=out10 p=xp10;run;data result; /*创建一个新的数据集,存放10个回归过程输出结果*/set out1 out2 out3 out4 out5 out6 out7 out8 out9 out10;proc gplot data=result; /*根据回归过程输出结果画出10条直线*/plot xp1*x1=1 xp2*x2=2 xp3*x3=3 xp4*x4=4 xp5*x5=5 xp6*x6=6 xp7*x7=7 xp8*x8=8xp9*x9=9 xp10*x10=10/overlay;symbol1c=red v=none i=join;symbol2c=yellow v=none i=join;symbol3c=blue v=none i=join;symbol4c=black v=none i=join;symbol5c=pink v=none i=join;symbol6c=grey v=none i=join;symbol7c=cyan v=none i=join;symbol8c=orange v=none i=join;symbol9c=brown v=none i=join;symbol10c=green v=none i=join;run;题型三:data ex3;seed=32789;array y(1500) y1-y1500; /*定义数列的元素*/array z(1500) z1-z1500; /*定义数列的元素*/do time=600,1000; /*分别模拟600分和1000分的系统*/x1=0; /*变量初始化*/T=0;c1=0;c2=0;a1=0;a2=0;y1=0;z1=0;do until(T>=time); /*工作时间小于设定的time*/n1=0;n2=0; /*各服务台排队顾客初始化*/e=round(-log(ranuni(seed)),0.1); /*到达时间间隔*/s1=round(-0.7*log(ranuni(seed)),0.1); /*顾客在第一服务台的服务时间*/s2=round(-0.9*log(ranuni(seed)),0.1); /*顾客在第二服务台的服务时间*/x1=x1+e; /*顾客到达第一个服务台时刻*/if x1>c1 then d1=0; /*如果顾客到达第一个服务台时刻大于上一名顾客离开第一个服务台时刻,就不需要等待*/else do; /*否则,在第一个服务台等待时间=上一名顾客离开时刻-这名顾客的到达时刻*/d1=c1-x1;do k=1to a1;if x1<y(k) then n1=n1+1; /*在第一个服务台前排队的顾客数*/end;end;a1=a1+1; /*累计到达第一个服务台的顾客数*/st1=d1+s1; /*顾客在第一服务台的逗留时间*/c1=x1+st1; /*顾客离开第一服务台的时刻*/y(a1)=c1; /*将离开时间赋值到数列y*/x2=c1; /*顾客到达第二服务台的时刻*/if(x2>c2) then d2=0; /*如果顾客到达第二个服务台时刻大于上一名顾客离开第二个服务台时刻,就不需要等待*/else do; /*否则,在第二个服务台等待时间=上一名顾客离开时刻-这名顾客的到达时刻*/d2=c2-x2;do k=1to a2;if x2<z(k) then n2=n2+1; /*在第二个服务台前排队的顾客数*/end;end;a2=a2+1; /*累计到达第二个服务台的顾客数*/st2=d2+s2; /*顾客在第二服务台的逗留时间*/c2=x2+st2; /*顾客离开第二服务台的时刻*/z(a2)=c2; /*将离开时间赋值到数列z*/st=st1+st2; /*顾客在服务机构总的逗留时间*/T=c2; /*赋值到总时刻*/output;end;end;drop y1-y2000 z1-z2000;proc print data=ex3; /*输出服务系统的模拟过程*/by time;run;proc means data=ex3 mean; /*调用means过程求顾客在两个服务台的平均逗留时间以及排队总的顾客平均数*/var st1 n1 st2 n2 st;by time;run;。

相关主题