《统计建模与R软件课后答案解析.doc》由会员分享,可在线阅读,更多相关《统计建模与R软件课后答案解析.doc(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、+第二章2.1 x-c(1,2,3);y e z z1 z2 A-matrix(1:20,nrow=4);B C D E F G x H for (i in 1:5)+ for(j in 1:5)+ Hi,j det(H)(2) solve(H)(3) eigen(H) 2.5 studentdata write.table(studentdata,file=student.txt) write.csv(studentdata,file=student.csv)2.7count-function(n)if (n=0)print(要求输入一个正整数)elserepeatif (n%2=0)n-n
2、/2elsen data_outline(x)3.2 hist(x,freq=F) lines(density(x),col=red) y lines(y,dnorm(y,73.668,3.9389),col=blue) plot(ecdf(x),verticals=T,do.p=F) lines(y,pnorm(y,73.668,3.9389) qqnorm(x) qqline(x)3.3 stem(x) boxplot(x) fivenum(x)3.4 shapiro.test(x) ks.test(x,pnorm,73.668,3.9389) One-sample Kolmogorov-
3、Smirnov testdata: xD = 0.073, p-value = 0.6611alternative hypothesis: two-sidedWarning message:In ks.test(x, pnorm, 73.668, 3.9389) : ties should not be present for the Kolmogorov-Smirnov test这里出现警告信息是因为ks检验要求样本数据是连续的,不允许出现重复值3.5x1-c(2,4,3,2,4,7,7,2,2,5,4);x2-c(5,6,8,5,10,7,12,12,6,6);x3 boxplot(x1,
4、x2,x3,names=c(x1,x2,x3),vcol=c(2,3,4)windows()plot(factor(c(rep(1,length(x1),rep(2,length(x2),rep(3,length(x3),c(x1,x2,x3)3.6 rubber plot(rubber)具体有相关关系的两个变量的散点图要么是从左下角到右上角(正相关),要么是从左上角到右下角(负相关)。从上图可知所有的图中偶读没有这样的趋势,故均不相关。3.7(1) student attach(student) plot(体重身高)(2) coplot(体重身高|性别)(3) coplot(体重身高|年龄)
5、(4) coplot(体重身高|年龄+性别)只列出(4)的结果,如下图3.8 x-seq(-2,3,0.5);y f zcontour(x,y,z,levels=c(0,1,2,3,4,5,10,15,20,30,40,50,60,80,100),col=blue) windows() persp(x,y,z,theta=30,phi=30,expand=0.7,col=red)3.9 cor.test(身高,体重)根据得出的结果看是相关的。具体结果不再列出3.10 df stars(df)然后按照G的标准来画出星图 attach(df) df$G1 df$G2 df$G3 df$G4 df$
6、G5 a stars(a)这里从17开始取,是因为在df中将ID也作为了一列3.11使用P159已经编好的函数unison,接着上题,直接有 unison(a)第四章4.1(1)先求矩估计。总体的期望为。因此我们有。可解得a=(2*E(x)-1)/(1-E(x).因此我们用样本的均值来估计a即可。在R中实现如下 x (2*mean(x)-1)/(1-mean(x)1 0.3076923(2)采用极大似然估计首先求出极大似然函数为La;x=i=1na+1xia=(a+1)ni=1nxia再取对数为lnLa;x=nlna+1+aln(i=1nxi最后求导lnL(a;x)a=na+1+lni=1nx
7、i好了下面开始用R编程求解,注意此题中n=6.方法一、使用unniroot函数 f uniroot(f,c(0,1)方法二、使用optimize函数 g optimize(g,c(0,1),maximum=T)4.2用极大似然估计得出=n/i=1nxi.现用R求解如下x 1000/sum(x)4.3换句话讲,就是用该样本来估计泊松分布中的参数,然后求出该分布的均值。我们知道泊松分布中的参数,既是均值又是方差。因此我们只需要用样本均值作矩估计即可在R中实现如下 x mean(x)1 14.4 f-function(x) +obj nlm(f,c(0.5,-2)4.5在矩估计中,正态分布总体的均值
8、用样本的均值估计。故在R中实现如下 x mean(x)1 67.4然后用t.test作区间估计,如下 t.test(x) t.test(x,alternative=less) t.test(x,alternative=greater)此时我们只需要区间估计的结果,所以我们只看t.test中的关于置信区间的输出即可。t.test同时也给出均值检验的结果,但是默认mu=0并不是我们想要的。下面我们来做是否低于72的均值假设检验。如下 t.test(x,alternative=greater,mu=72) One Sample t-testdata: xt = -2.4534, df = 9, p-
9、value = 0.9817alternative hypothesis: true mean is greater than 7295 percent confidence interval: 63.96295 Infsample estimates:mean of x 67.4结果说明:我们的备择假设是比72要大,但是p值为0.9817,所以我们不接受备择假设,接受原假设比72小。因此这10名患者的平均脉搏次数比正常人要小。4.6我们可以用两种方式来做一做 x y t.test(x,y,var.equal=T) t.test(x-y)结果不再列出,但是可以发现用均值差估计和配对数据估计的结
10、果的数值有一点小小的差别。但得出的结论是不影响的(他们的期望差别很大)4.7 A B t.test(A,B)4.8 x y var.test(x,y) t.test(x,y,var.equal=F)4.9泊松分布的参数就等于它的均值也等于方差。我们直接用样本均值来估计参数即可,然后作样本均值0.95的置信区间即可。 x mean(x)1 1.904762 t.test(x)4.10正态总体均值用样本均值来估计。故如下 x t.test(x,alternative=greater)注意greater才是求区间下限的(都比它大的意思嘛)第五章5.1这是一个假设检验问题,即检验油漆作业工人的血小板的
11、均值是否为225.在R中实现如下 x t.test(x,mu=225)5.2考察正态密度函数的概率在R中的计算。首先我们要把该正态分布的均值和方差给估计出来,这个就利用样本即可。然后用pnorm函数来计算大于1000的概率。如下 x pnorm(1000,mean(x),sd(x)1 0.5087941 1-0.50879411 0.49120595.3这是检验两个总体是否存在差异的问题。可用符号检验和wilcoxon秩检验。两种方法实现如下 x y binom.test(sum(x wilcox.test(x,y,exact=F)p-value = 0.792可见无论哪种方法P值都大于0.0
12、5,故接受原假设,他们无差异5.4(1)采用w检验法xy shapiro.test(x) shapiro.test(y)采用ks检验法 ks.test(x,pnorm,mean(x),sd(x) ks.test(y,pnorm,mean(y),sd(y)采用pearson拟合优度法对x进行检验 A A(-2,0 (0,2 (2,4 (4,6 (6,8 4 4 6 4 1发现A中有频数小于5,故应该重新调整分组 A A(-2,2 (2,4 (4,8 8 6 5然后再计算理论分布 p p chisq.test(A,p=p)采用pearson拟合优度法对y进行检验 B B(-2.1,1 (1,2 (
13、2,4 (4,7 5 5 5 5 p p chisq.test(B,p=p)以上的所有结果都不再列出,结论是试验组和对照组都是来自正态分布。(2) t.test(x,y,var.equal=F) t.test(x,y,var.equal=T) t.test(x,y,paired=T)结论是均值无差异(3) var.test(x,y)结论是方差相同由以上结果可以看出这两种药的效果并无二致5.5(1)对新药组应用chisq.test检验(也可用ke.test检验) x y p p chisq.test(A,p=p)对对照组用ks.test检验 ks.test(y,pnorm,mean(y),sd(
14、y)结论是他们都服从正态分布(2) var.test(x,y)结论是方差相同(3) wilcox.test(x,y,exact=F)结果是有差别5.6明显是要检验二项分布的p值是否为0.147.R实现如下 binom.test(57,400,p=0.147)结果是支持5.7也就是检验二项分布中的p值是否大于0.5 binom.test(178,328,p=0.5,alternative=greater)结果是不能认为能增加比例5.8就是检验你的样本是否符合那个分布 chisq.test(c(315,101,108,32),p=c(9,3,3,1)/16)结果显示符合自由组合规律5.9又是检验一
15、个总体是否符合假定分布。 x-0:5;y z A q p chisq.test(A,p=p)结论是符合泊松分布5.10 x y ks.test(x,y)5.11即列联表的的独立性检验 x dim(x) chisq.test(x)或 fisher.test(x)结论是有影响5.12 x dim(x) chisq.test(x)结果是相关5.13 x dim(x) fisher.test(x)结果显示工艺对产品质量无影响5.14即检验两种研究方法是否有差异 x dim(x) mcnemar.test(x,correct=F)结果表明两种检测方法有差异5.15 x binom.test(sum(x1
16、4.6),length(x),al=l) wilcox.test(x,mu=14.6,al=l,exact=F)结果表明是在中位数之下5.16(1)(2)(3) x y binom.test(sum(x wilcox.test(x,y,paired=T,exact=F) wilcox.test(x,y,exact=F)(4) ks.test(x,pnorm,mean(x),sd(x) ks.test(y,pnorm,mean(y),sd(y) var.test(x,y)由以上检验可知数据符合正态分布且方差相同,故可做t检验 t.test(x,y)可以发现他们的均值是有差别的(5)综上所述,Wi
17、lcoxon符号秩检验的差异检出能力最强,符号检验的差异检出最弱。5.17 x y cor.test(x,y,method=spearman) cor.test(x,y,method=kendall)有关系的5.18 x y z wilcox.test(y,z,exact=F)结果显示这两种疗法没什么区别第六章6.1(1) snow plot(snow$X,snow$Y)结论是有线性关系的。(2)(3) lm.sol predict(lm.sol,data.frame(X=7),interval=prediction,level=0.95) fit lwr upr1 2690.227 2454
18、.971 2925.4846.2(1)(2) soil lm.sol lm.ste summary(lm.ste)可以发现新模型只含有X1和X3,但是X3的系数还是不显著。接下来考虑用drop1函数处理 drop1(lm.ste)发现去掉X3残差升高最小,AIC只是有少量增加。因此应该去掉X3 lm.new da plot(da$X,da$Y) lm.sol abline(lm.sol)(2) summary(lm.sol)全部通过(3) plot(lm.sol,1) windows() plot(lm.sol,3)可以观察到误差符合等方差的。但是有残差异常值点24,27,28.(4) lm.
19、up summary(lm.up)都通过检验 plot(da$X,da$Y) abline(lm.up) windows() plot(lm.up,1) windows() plot(lm.up,3)可以发现还是有残差离群值24,286.4 lm.sol influence.measures(lm.sol) plot(lm.sol,3)通过influence.measures函数发现5,8,9,24对样本影响较大,可能是异常值点,而通过残差图发现5是残差离群点,但是整个残差还是在-2,2之内的。因此可考虑剔除5,8,9,24点再做拟合。 lm.new windows() plot(lm.new
20、,3) summary(lm.new)我们发现lm.new模型的残差都控制在-1.5,1.5之内,而且方程系数和方程本身也都通过检验。6.5 cement XX kappa(XX,exact=T)1 1376.881 eigen(XX)发现变量的多重共线性很强,且有0.241X1+0.641X2+0.268X3+0.676X4=0说明X1,X2,X3,X4多重共线。其实逐步回归可以解决多重共线的问题。我们可以检验一下step函数去掉变量后的共线性。step去掉了X3和X4。我们看看去掉他们的共线性如何。 XX kappa(XX,exact=T)1 1.59262我们发现去掉X3和X4后,条件数
21、降低好多好多。说明step函数是合理的。6.6首先得把这个表格看懂。里面的数字应该是有感染和无感染的人数。而影响变量有三个。我们把这些影响变量进行编码。如下。发生不发生抗生素X123危险因子X245有无计划X367是否感染Y10对数据的处理,如下X1X2X3Y频数246112460172561025602247111247087257102570034612834603034712334703356183560323571035709然后用R处理并求解模型hospital glm.sol summary(glm.sol)可以发现如果显著性为0.1,则方程的系数和方程本省全部通过检验。下面我们来
22、做一个预测,看看(使用抗生素,有危险因子,有计划)的一个孕妇发生感染的概率是多少。 pre p cofe lm.sol summary(lm.sol)(2) lm.s2 summary(lm.s2)(3) plot(cofe$X,cofe$Y) abline(lm.sol) windows() plot(cofe$X,cofe$Y) lines(spline(cofe$X,fitted(lm.s2)6.8(1) pe glm.sol summary(glm.sol)可以发现各变量影响基本都不显著,甚至大部分还没通过显著性检验。只有X1的系数通过了显著性检验,但是也不是很理想。下面计算每一个病人
23、的生存时间大于200天的概率值。pre p p(2) lm.stepre p.new p.new显然经过逐步回归后的模型更合理。用summary(lm.ste)看,第二个模型通过了显著性检验(a=0.1)6.9(1) 首先将公式线性化,对方程两边直接取对数即可。然后将得到的方程用lm回归。 peo lm.sol|t|) (Intercept) 4.037159 0.084103 48.00 5.08e-16 *X -0.037974 0.002284 -16.62 3.86e-10 * lm.sum exp(lm.sum$coefficients1,1)1 56.66512所以theta0=56.66512,theta1=-0.0379(2) nls.sol summary(nls.sol)Parameters: Estimate Std. Error t value Pr(|t|) b0 58.606535 1.472160 39.81 5.70e-15 *b1 -0.039586 0.001711 -23.13 6.01e-12 *发现所求的基本上与内在线性相同。第七章7.1(1)pro pro.aov summary(pro.aov)可以看到不同工厂对产品的影响是显著的(2)首先自己编写求均值的小程序如下 K-matrix(0,nrow
限制150内