2014统计计算课程设计题型
题型一:
若产生总体X~N(5,σ2),其中σ2未知,请设计一个随机模拟实验,要求从该总体产生一个容量为100的样本,考虑置信水平分别取0.95和0.5时,对上述过程重复1000次,统计有多少个区间包含均值5,要求画出置信水平分别取0.95和0.5时均值的置信区间图,并给出实验总结。 解:
重复1000次随机模拟
设n1为置信水平取0.95时包含均值5的区间个数,n2为置信水平取0.5时包含均值5的区间个数 SAS输出结果:
...
置信水平取0.95时均值的置信区间图如图1.1所示
图1.1 置信水平取0.95时均值的置信区间图
置信水平取0.5时均值的置信区间图如图1.2所示
图1.2 置信水平取0.5时均值的置信区间图
【实验结论】
1. 根据SAS输出结果显示,每次随机模拟得到的样本观测值都不一样,从而在相同的置信水平下,计算出来的置信区间也不同;
2. 根据SAS输出结果显示,对于根据每一个样本计算出来的置信区间,存在不包含总体均值5的置信区间;
3. 由图1.1与图1.2相比较可知,在不同的置信水平下,包含均值的置信区间的个数也不相同,置信水平越高,包含均值的置信区间的个数越多。
题型二:
在实际观察中,已知腐蚀深度与腐蚀时间有线性关系,设给定腐蚀时间X时腐蚀深度Y的总体均数E(Y|X)与X的关系满足方程E(Y|X)=70+0.6X,且腐蚀时间X~N(170,22),腐蚀深度Y~N(70 0.6X,22)。现随机抽取该总体20对腐蚀深度与腐蚀时间的关系,构成一份样本,做一次回归分析;重复抽取相同样本量的10份样本,分别进行回归,得到10条直线,观察它们的图形,得出结论。要求:(1)给出随机样本表;(2)10条回归重叠图形;(3)实验结论。 解:
(1)随机样本表
...
(2)10条回归重叠图形如图2.1所示
图2.1 10条回归拟合直线图
(3)实验结论
由图2.1可知,由于随机抽取的样本观测值是不一样的,从而每条回归直线都略有差异;但各个样本是独立同分布的,而且10条回归直线的斜率与截距均比较接近,因此可认为腐蚀深度与腐蚀时间具有线性关系。
题型三:
设有一个由两个服务台串联组成的服务机构(双服务太串联排队系统)。顾客在第一个服务台接受服务后进入第二个服务台,服务完毕后离开。假定顾客达到第一个服务台的时间间隔是均值为1分钟的指数分布,顾客在第一个和第二个服务台的服务时间分别是均值为0.7分和0.9分的指数分布。请模拟这种双服务台串联排队系统(分别模拟600分和1000分的系统);并估计出顾客在两个服务台的平均逗留时间和排队中的顾客平均数。该题要画流程图表示解题思路。 解:
解题思路流程图:
开始
引入记号:
d1:顾客在第一个服务台等待的时间 d2:顾客在第二个服务台等待的时间 c1:顾客离开第一个服务台的时间点 c2:顾客离开第二个服务台的时间点 s1:顾客在第一个服务台的服务时间 s2:顾客在第二个服务台的服务时间 r1:顾客达到第一个服务台的时间间隔 d:顾客在该服务机构的逗留时间 n:排队的顾客人数 p:每15分钟排队的顾客平均数
SAS输出结果:
模拟600分系统的结果:
模拟1000分系统的结果:
【实验结论】
1.根据模拟600分系统的结果显示,顾客在两个服务台的平均逗留时间约为11分钟,每天每15分钟里排队的顾客平均人数约为10人;
2.根据模拟1000分系统的结果显示,顾客在两个服务台的平均逗留时间约为13分钟,每天每15分钟里排队的顾客平均人数约为10人。
附 录
SAS程序: 题型一: data ex1;
mu=5; /*总体均值mu=5*/
n1=0; /*置信水平0.95时包含5的置信区间个数n1=0*/ n2=0; /*置信水平0.5时包含5的置信区间个数n2=0*/ array x(100) x1-x100; /*定义100个一维数组*/ t1=tinv(0.975,99); /*计算t分布在0.975的分位数*/ t2=tinv(0.75,99); /*计算t分布在0.75的分位数*/ do j=1 to 1000; /*重复1000次*/ do i=1 to 100;
x(i)=mu+1*rannor(789); /*产生100个随机数x~N(5,1)*/ end;
xbar=mean(of x1-x100); /*计算样本均值*/ std=sqrt(var(of x1-x100)); /*计算样本标准差*/ d1=t1*std/10;d2=t2*std/10;
l95=xbar-d1;u95=xbar+d1; /*计算置信水平0.95的置信区间的上下限*/ l50=xbar-d2;u50=xbar+d2; /*计算置信水平0.5的置信区间的上下限*/ if l95mu then do; /*判断置信水平0.95置信区间是否包含mu*/ n1=n1+1; /*统计包含mu的置信区间个数*/ end;
if l50mu then do; /*判断置信水平0.5置信区间是否包含mu*/ n2=n2+1; /*统计包含mu的置信区间个数*/ end; output; end;
proc print data=ex1; var l95 u95 l50 u50 n1 n2; run;
proc gplot data=ex1; /*画置信区间图和均值线*/ plot u95*j=1 l95*j=2 mu*j=3/overlay; symbol1 c=black i=needle v=t; symbol2 c=white i=needle v=t; symbol3 c=red i=join v=none;
plot u50*j=1 l50*j=2 mu*j=3/overlay; symbol1 c=black i=needle v=t; symbol2 c=white i=needle v=t; symbol3 c=red i=join v=none; run;
data ex2;
do j=1 to 10; /*随机模拟10个样本*/ do i=1 to 20;
x=170+2*rannor(23456); /*产生随机数x~N(170,4)*/
y=(70+0.6*x)+2*rannor(23456); /*产生随机数y~N(70+0.6x,4)*/ output; end; end;
proc print data=ex2; /*输出样本数据*/ run;
proc reg data=ex2; /*作回归分析*/ by j; model y=x;
output out=result p=pred; run;
proc gplot data=result; /*绘制10个回归方程的回归直线*/ plot pred*x=j/overlay;
symbol1 v=none i=join ci=black; symbol2 v=none i=join ci=yellow; symbol3 v=none i=join ci=blue; symbol4 v=none i=join ci=orange; symbol5 v=none i=join ci=green; symbol6 v=none i=join ci=red; symbol7 v=none i=join ci=brown; symbol8 v=none i=join ci=gray; symbol9 v=none i=join ci=pink; symbol10 v=none i=join ci=purple; run;
(1)模拟600分钟系统 data ex3; seed=12345;
do k=1 to 100; /*随机模拟100天*/ t=0; /*参数初始化*/ d1=0;d2=0;c1=0;c2=0; n=0;
do until (t>600); r1=ranexp(seed)/1; t=t+r1;
s1=ranexp(seed)*0.7;
if t>c1 then do; /*顾客到达第一个服务台时不需等待*/ d1=0; /*等待时间为零*/
c1=t+d1+s1; /*计算顾客离开第一个服务台的时间点*/ end;
else do;/*顾客到达第一个服务台时需要等待*/ d1=c1-t; /*计算等待时间*/
c1=t+s1+d1; /*计算顾客离开第一个服务台的时间点*/ n=n+1; /*排队人数+1*/ end;
s2=ranexp(seed)*0.9;
if c1>c2 then do; /*顾客到达第二个服务台时不需要等待*/ d2=0; /*等待时间为零*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/ end;
if c1c1 then do;
/*顾客到达第二个服务台时需要等待,而在第一个服务台没有等待*/ d2=c2-c1; /*计算等待时间*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/ n=n+1; /*排队人数+1*/ end;
if c1
/*顾客到达第二个服务台时需要等待,且在第一个服务台也要等待*/ d2=c2-c1; /*计算等待时间*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/ end;
d=c2-t;/*顾客在两个服务台的逗留时间*/ output;
end;
p=(n/600)*15; /*每天每15分钟排队的顾客人数*/ end;
proc print data=ex3; run;
proc means data=ex3 mean; var d1 s1 d2 s2 d p; run;
(2)模拟1000分钟的系统 data ex3; seed=12345;
do k=1 to 100; /*随机模拟100天*/ t=0; /*参数初始化*/ d1=0;d2=0;c1=0;c2=0; n=0;
do until (t>1000); r1=ranexp(seed)/1; t=t+r1;
s1=ranexp(seed)*0.7;
if t>c1 then do; /*顾客到达第一个服务台时不需等待*/ d1=0; /*等待时间为零*/
c1=t+d1+s1; /*计算顾客离开第一个服务台的时间点*/ end;
else do;/*顾客到达第一个服务台时需要等待*/ d1=c1-t; /*计算等待时间*/
c1=t+s1+d1; /*计算顾客离开第一个服务台的时间点*/ n=n+1; /*排队人数+1*/ end;
s2=ranexp(seed)*0.9;
if c1>c2 then do; /*顾客到达第二个服务台时不需要等待*/ d2=0; /*等待时间为零*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/ end;
if c1c1 then do;
/*顾客到达第二个服务台时需要等待,而在第一个服务台没有等待*/ d2=c2-c1; /*计算等待时间*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/ n=n+1; /*排队人数+1*/
end;
if c1
/*顾客到达第二个服务台时需要等待,且在第一个服务台也要等待*/ d2=c2-c1; /*计算等待时间*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/
end;
d=c2-t;/*顾客在两个服务台的逗留时间*/
output;
end;
p=(n/1000)*15; /*每天每15分钟排队的顾客人数*/
end;
proc print data=ex3;
run;
proc means data=ex3 mean;
var d1 s1 d2 s2 d p;
run;
2014统计计算课程设计题型
题型一:
若产生总体X~N(5,σ2),其中σ2未知,请设计一个随机模拟实验,要求从该总体产生一个容量为100的样本,考虑置信水平分别取0.95和0.5时,对上述过程重复1000次,统计有多少个区间包含均值5,要求画出置信水平分别取0.95和0.5时均值的置信区间图,并给出实验总结。 解:
重复1000次随机模拟
设n1为置信水平取0.95时包含均值5的区间个数,n2为置信水平取0.5时包含均值5的区间个数 SAS输出结果:
...
置信水平取0.95时均值的置信区间图如图1.1所示
图1.1 置信水平取0.95时均值的置信区间图
置信水平取0.5时均值的置信区间图如图1.2所示
图1.2 置信水平取0.5时均值的置信区间图
【实验结论】
1. 根据SAS输出结果显示,每次随机模拟得到的样本观测值都不一样,从而在相同的置信水平下,计算出来的置信区间也不同;
2. 根据SAS输出结果显示,对于根据每一个样本计算出来的置信区间,存在不包含总体均值5的置信区间;
3. 由图1.1与图1.2相比较可知,在不同的置信水平下,包含均值的置信区间的个数也不相同,置信水平越高,包含均值的置信区间的个数越多。
题型二:
在实际观察中,已知腐蚀深度与腐蚀时间有线性关系,设给定腐蚀时间X时腐蚀深度Y的总体均数E(Y|X)与X的关系满足方程E(Y|X)=70+0.6X,且腐蚀时间X~N(170,22),腐蚀深度Y~N(70 0.6X,22)。现随机抽取该总体20对腐蚀深度与腐蚀时间的关系,构成一份样本,做一次回归分析;重复抽取相同样本量的10份样本,分别进行回归,得到10条直线,观察它们的图形,得出结论。要求:(1)给出随机样本表;(2)10条回归重叠图形;(3)实验结论。 解:
(1)随机样本表
...
(2)10条回归重叠图形如图2.1所示
图2.1 10条回归拟合直线图
(3)实验结论
由图2.1可知,由于随机抽取的样本观测值是不一样的,从而每条回归直线都略有差异;但各个样本是独立同分布的,而且10条回归直线的斜率与截距均比较接近,因此可认为腐蚀深度与腐蚀时间具有线性关系。
题型三:
设有一个由两个服务台串联组成的服务机构(双服务太串联排队系统)。顾客在第一个服务台接受服务后进入第二个服务台,服务完毕后离开。假定顾客达到第一个服务台的时间间隔是均值为1分钟的指数分布,顾客在第一个和第二个服务台的服务时间分别是均值为0.7分和0.9分的指数分布。请模拟这种双服务台串联排队系统(分别模拟600分和1000分的系统);并估计出顾客在两个服务台的平均逗留时间和排队中的顾客平均数。该题要画流程图表示解题思路。 解:
解题思路流程图:
开始
引入记号:
d1:顾客在第一个服务台等待的时间 d2:顾客在第二个服务台等待的时间 c1:顾客离开第一个服务台的时间点 c2:顾客离开第二个服务台的时间点 s1:顾客在第一个服务台的服务时间 s2:顾客在第二个服务台的服务时间 r1:顾客达到第一个服务台的时间间隔 d:顾客在该服务机构的逗留时间 n:排队的顾客人数 p:每15分钟排队的顾客平均数
SAS输出结果:
模拟600分系统的结果:
模拟1000分系统的结果:
【实验结论】
1.根据模拟600分系统的结果显示,顾客在两个服务台的平均逗留时间约为11分钟,每天每15分钟里排队的顾客平均人数约为10人;
2.根据模拟1000分系统的结果显示,顾客在两个服务台的平均逗留时间约为13分钟,每天每15分钟里排队的顾客平均人数约为10人。
附 录
SAS程序: 题型一: data ex1;
mu=5; /*总体均值mu=5*/
n1=0; /*置信水平0.95时包含5的置信区间个数n1=0*/ n2=0; /*置信水平0.5时包含5的置信区间个数n2=0*/ array x(100) x1-x100; /*定义100个一维数组*/ t1=tinv(0.975,99); /*计算t分布在0.975的分位数*/ t2=tinv(0.75,99); /*计算t分布在0.75的分位数*/ do j=1 to 1000; /*重复1000次*/ do i=1 to 100;
x(i)=mu+1*rannor(789); /*产生100个随机数x~N(5,1)*/ end;
xbar=mean(of x1-x100); /*计算样本均值*/ std=sqrt(var(of x1-x100)); /*计算样本标准差*/ d1=t1*std/10;d2=t2*std/10;
l95=xbar-d1;u95=xbar+d1; /*计算置信水平0.95的置信区间的上下限*/ l50=xbar-d2;u50=xbar+d2; /*计算置信水平0.5的置信区间的上下限*/ if l95mu then do; /*判断置信水平0.95置信区间是否包含mu*/ n1=n1+1; /*统计包含mu的置信区间个数*/ end;
if l50mu then do; /*判断置信水平0.5置信区间是否包含mu*/ n2=n2+1; /*统计包含mu的置信区间个数*/ end; output; end;
proc print data=ex1; var l95 u95 l50 u50 n1 n2; run;
proc gplot data=ex1; /*画置信区间图和均值线*/ plot u95*j=1 l95*j=2 mu*j=3/overlay; symbol1 c=black i=needle v=t; symbol2 c=white i=needle v=t; symbol3 c=red i=join v=none;
plot u50*j=1 l50*j=2 mu*j=3/overlay; symbol1 c=black i=needle v=t; symbol2 c=white i=needle v=t; symbol3 c=red i=join v=none; run;
data ex2;
do j=1 to 10; /*随机模拟10个样本*/ do i=1 to 20;
x=170+2*rannor(23456); /*产生随机数x~N(170,4)*/
y=(70+0.6*x)+2*rannor(23456); /*产生随机数y~N(70+0.6x,4)*/ output; end; end;
proc print data=ex2; /*输出样本数据*/ run;
proc reg data=ex2; /*作回归分析*/ by j; model y=x;
output out=result p=pred; run;
proc gplot data=result; /*绘制10个回归方程的回归直线*/ plot pred*x=j/overlay;
symbol1 v=none i=join ci=black; symbol2 v=none i=join ci=yellow; symbol3 v=none i=join ci=blue; symbol4 v=none i=join ci=orange; symbol5 v=none i=join ci=green; symbol6 v=none i=join ci=red; symbol7 v=none i=join ci=brown; symbol8 v=none i=join ci=gray; symbol9 v=none i=join ci=pink; symbol10 v=none i=join ci=purple; run;
(1)模拟600分钟系统 data ex3; seed=12345;
do k=1 to 100; /*随机模拟100天*/ t=0; /*参数初始化*/ d1=0;d2=0;c1=0;c2=0; n=0;
do until (t>600); r1=ranexp(seed)/1; t=t+r1;
s1=ranexp(seed)*0.7;
if t>c1 then do; /*顾客到达第一个服务台时不需等待*/ d1=0; /*等待时间为零*/
c1=t+d1+s1; /*计算顾客离开第一个服务台的时间点*/ end;
else do;/*顾客到达第一个服务台时需要等待*/ d1=c1-t; /*计算等待时间*/
c1=t+s1+d1; /*计算顾客离开第一个服务台的时间点*/ n=n+1; /*排队人数+1*/ end;
s2=ranexp(seed)*0.9;
if c1>c2 then do; /*顾客到达第二个服务台时不需要等待*/ d2=0; /*等待时间为零*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/ end;
if c1c1 then do;
/*顾客到达第二个服务台时需要等待,而在第一个服务台没有等待*/ d2=c2-c1; /*计算等待时间*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/ n=n+1; /*排队人数+1*/ end;
if c1
/*顾客到达第二个服务台时需要等待,且在第一个服务台也要等待*/ d2=c2-c1; /*计算等待时间*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/ end;
d=c2-t;/*顾客在两个服务台的逗留时间*/ output;
end;
p=(n/600)*15; /*每天每15分钟排队的顾客人数*/ end;
proc print data=ex3; run;
proc means data=ex3 mean; var d1 s1 d2 s2 d p; run;
(2)模拟1000分钟的系统 data ex3; seed=12345;
do k=1 to 100; /*随机模拟100天*/ t=0; /*参数初始化*/ d1=0;d2=0;c1=0;c2=0; n=0;
do until (t>1000); r1=ranexp(seed)/1; t=t+r1;
s1=ranexp(seed)*0.7;
if t>c1 then do; /*顾客到达第一个服务台时不需等待*/ d1=0; /*等待时间为零*/
c1=t+d1+s1; /*计算顾客离开第一个服务台的时间点*/ end;
else do;/*顾客到达第一个服务台时需要等待*/ d1=c1-t; /*计算等待时间*/
c1=t+s1+d1; /*计算顾客离开第一个服务台的时间点*/ n=n+1; /*排队人数+1*/ end;
s2=ranexp(seed)*0.9;
if c1>c2 then do; /*顾客到达第二个服务台时不需要等待*/ d2=0; /*等待时间为零*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/ end;
if c1c1 then do;
/*顾客到达第二个服务台时需要等待,而在第一个服务台没有等待*/ d2=c2-c1; /*计算等待时间*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/ n=n+1; /*排队人数+1*/
end;
if c1
/*顾客到达第二个服务台时需要等待,且在第一个服务台也要等待*/ d2=c2-c1; /*计算等待时间*/
c2=c1+d2+s2; /*计算顾客离开第二个服务台的时间点*/
end;
d=c2-t;/*顾客在两个服务台的逗留时间*/
output;
end;
p=(n/1000)*15; /*每天每15分钟排队的顾客人数*/
end;
proc print data=ex3;
run;
proc means data=ex3 mean;
var d1 s1 d2 s2 d p;
run;