您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 非参数统计(R软件)参考答案
内容:A.3,A.10,A.12A.3上机实践:将MASS数据包用命令library(MASS)加载到R中,调用自带“老忠实”喷泉数据集geyer,它有两个变量:等待时间waiting和喷涌时间duration,其中…(1)将等待时间70min以下的数据挑选出来;(2)将等待时间70min以下,且等待时间不等于57min的数据挑选出来;(3)将等待时间70min以下喷泉的喷涌时间挑选出来;(4)将喷涌时间大于70min喷泉的等待时间挑选出来。解:读取数据的R命令:library(MASS);#加载MASS包data(geyser);#加载数据集geyserattach(geyser);#将数据集geyser的变量置为内存变量(1)依题意编定R程序如下:sub1geyser=geyser[which(waiting70),1];#提取满足条件(waiting70)的数据,which(),读取下标sub1geyser[1:5];#显示子数据集sub1geyser的前5行[1]5760565054(2)依题意编定R程序如下:Sub2geyser=geyser[which((waiting70)&(waiting!=57)),1];#提取满足条件(waiting70&(waiting!=57)的数据.Sub2geyser[1:5];#显示子数据集sub1geyser的前5行[1]6056505460……原数据集的第1列为waiting喷涌时间,所以用[which(waiting70),2](3)Sub3geyser=geyser[which(waiting70),2];#提取满足条件(waiting70)的数据,which(),读取下标Sub3geyser[1:5];#显示子数据集sub1geyser的前5行[1]4.0000004.3833334.8333335.4500004.866667……原数据集的第2列为喷涌时间,所以用[which(waiting70),2](4)Sub4geyser=geyser[which(waiting70),1];#提取满足条件(waiting70)的数据,which(),读取下标Sub4geyser[1:5];#显示子数据集sub1geyser的前5行[1]8071807577…….A.10如光盘文件student.txt中的数据,一个班有30名学生,每名学生有5门课程的成绩,编写函数实现下述要求:(1)以data.frame的格式保存上述数据;(2)计算每个学生各科平均分,并将该数据加入(1)数据集的最后一列;(3)找出各科平均分的最高分所对应的学生和他所修课程的成绩;(4)找出至少两门课程不及格的学生,输出他们的全部成绩和平均成绩;(5)比较具有(4)特点学生的各科平均分与其余学生平均分之间是否存在差异。先将数据集读入R系统student=read.table(…,header=T)class(student):#显示数据集student的类型,[1]data.frame#student是数据框names(student);#显示数据框student的变量[1]namemathphysicschemliteratenglishmean#输出显示,数据框student有7个变量,第7个变量是平均值mean。(1)write.table(student,F:\\gzmu非参数统计\\data2014\\各章数据\\附录A\\x.txt,col.names=T)打开x.txtnamemathphysicschemliteratenglish1Katty65617284792Leo7777766455……(2)依题意,要为原始数据集添加一个变量,即添加一列在最后。?[,6]=?me=rep(0,30);for(iin1:30){x=as.numeric(student[i,2:6]);me[i]=mean(x);}student$mean=me;#上面程序的最后一行也可以如此:student[,7]=menames(student);[1]namemathphysicschemliteratenglishmean#如上显示,程序运行后数据框student添加了第7列mean.(3)依题意,在(2)的程序运行后做,要用到which(mean==max(mean)),如同A.3。attach(student);maxme=student[which(mean==max(mean)),];#找出最高平均分的记录,并赋予maxme;maxme;namemathphysicschemliteratenglishmean15Liggle789681807682.2(4)依题意,要用到二重的for和if.由原数据框geyser给data1赋值时要用到数据转换:#x=as.numeric(student[i,2:6]);#读取student第i行2:6列的数据,#data1[k,]=x;#将x赋给data4#的第k行。sum(x60)是不及格门数。Data1=student[1,];#赋初值k=0;for(iin1:30){x=as.numeric(student[i,2:6]);if(sum(x60)1){k=k+1;data1[k,]=student[i,];}}data1namemathphysicschemliteratenglishmean1Ricky676349655760.27Simon667167525762.69Jed8310079415070.610Jack869497515576.612Jetty678453585663.613Corner816269565264.014Osten716494525266.625Amon747995595973.2(5)依题意,要创造两个子集data4和data2,用两样本的比较方法比较他们的平均成绩是否有显著差异。类似创造data1的方法,创造data2。并设x=data1$mean,y=data2$mean,比较二样本x,y是否有显著差异,由于还没有学非参数检验,试用t检验检验之(R的t检验函数为t.test(x,y),原假设H0是两样本的均值相等,备择假设H1是两样本不等)。如果P值p-value0.05,则拒绝原假设。data2=student[1,];k=0;for(iin1:30){x=as.numeric(student[i,2:6]);if(sum(x60)2){k=k+1;data2[k,]=student[i,];}};下面做t检验x=data1$mean;y=data2$mean;t.test(x,y)WelchTwoSamplet-testdata:xandyt=-3.0236,df=9.309,p-value=0.01386alternativehypothesis:truedifferenceinmeansisnotequalto095percentconfidenceinterval:-11.493236-1.684037sampleestimates:meanofxmeanofy:67.1750073.76364结论:p-value=0.013860.05,拒绝原假设,即认为两样本的平均成绩有显著差异。A.12在一张图上,用取值(-10,10)之间间隔均等的1000个点,采用不同的线型一颜色给制sin(),cos(),sin()+cos()的函数图形,图形要求有主标题和副标题,标示出从坐标x=seq(-10,10,length=50);#构造向量x,x[1:5];#显示x的前5个数据[1]-10.00000-9.97998-9.95996-9.93994-9.91992sin=sin(x);#计算sin函数值cos=cos(x);sc=sin(x)+cos(x);plot(sin~x,xlab=x,ylab=y,ylim=c(-1.5,1.5),type=l,col=1);lines(cos~x,type=b,col=2);#点线图lines(sc~x,type=o,col=1);title(三角函数图);所得图形如下图,sin为黑色,cos为红色,sin+cos为绿色:内容:1.1;1.2;1.11;(附加题:1.4;1.7;1.8有能力的可做附加题)1.1某批发市场从厂家购置一批灯泡,根据合同的规定,灯泡的使用的寿命平均不低于1000h。已知灯泡的使用寿命服从正态分布,标准差是20h,从总体中随机抽取了100只灯泡,得知样本均值为996h,问题是:批发商是否应该购买该批灯泡?(1)零假设和备择假设应该如何设置?给出你的理由。(2)在零假设1000之下,给出检验的过程并做出决策,如果不能拒绝零假设,可能是哪里出了问题。解:(1)根据题意,问题的假设为1000:1000:10HH理由:1000是批发商的意愿,违背这个意愿,也就是拒绝原假设H0,他就购这批灯泡了。不能轻易否定的事情应置于被保护地位H0。这个问题的检验统计量为nXZ/201000,z=(996-1000)/2=-2P值pvalue=pnorm(z,0,1)=0.02275013,在alpha=0.05时拒绝原假设,根据合同,不购这批灯泡。(2)假设检验问题:0:0:10HH。这样的假设是有问题的。假设检验是一种这样哲学:不轻易否定旧过程,置旧过程为H0于被保护的位置,而以小概率否定之。而一但被拒绝,以小概率事件原理,拒绝域不是小概率。反证H0不真。所谓“天欲报之,必先厚之”也,以显我为人之厚道,虽如此也不能保护H0,怪不得我也。面此假设违返旧过程,这样的假设毫无意义。如果按照这个检验问题,检验的P值是pvalue=1-pnorm(z,0,1)=0.9772499,没有充分的理由拒绝原假设,结论也是不购进这批灯泡。但是犯批II类错误的概率是多少,鬼才知道呢。1.2考虑下面检验问题(不用计算已给的数据).(1)如果X服从N(0,1)分布,假设检验问题1000:0:10HH。可以知道05.0的似然比检验,如果X1.645,则将会拒绝H0:,而且按照Neyman-Pearson引理,该检验是最优的。现在,如果我们观察到X=2.1,该水平0.05的最优检验告诉我们拒绝=0的零假设,接受=1000的备择假设,你觉得有问题吗?问题在哪里?如何解决?答:有问题。假设检验在原假设条件成立下,得到拒绝域,意思是拒绝,接受。而只是其中的一种情况,故不能接受。改进方法:可直接提出假设“均值为1000”进行检验。即检验(2)有两组学生的成绩,第一组为11名,成绩为x:100,99,99,100,100,100,100,99,100,99,99;第二组为2名,成绩为y:50,0.我们对这两组数据作同样水平=0.05的t检验(假设总体的均值为),100:100:10HH。对第二组数据的检验结果为:df=10,t=-2.8868,mean(x)=99.54545,单边检验(100,less)的P值为p-value=0.008099。所以拒绝原假设,认为100。对第二组数据检验的结果为:df=1,t值为-3,单边(100,less)的P值为p-value=0.1024,不拒绝原假设=100。但是mean(y)=25.解:两个结论都不是合理的,t检验是针对正态数据做的,第一组数据事实上是两点分布,x的取值域为{99,100},所以t检验的基本假设不满足,所以第一个检验是不合理的;第二组数据的t检验也是不合理的,样本量太少,不具有代表性。(3)写出上面所用的t检验统计量,及p值的定义,解释水平=0.05的意义(注意,这里是一般情况,不要联系(2)中的具体数据例子),如果没有给定水平,如何用p值来做出结论?解:设样本nXXX,...,,21iid),(2N,对于三种假设(
本文标题:非参数统计(R软件)参考答案
链接地址:https://www.777doc.com/doc-5630686 .html