1、完整版统计建模与R软件课后答案可编辑修改word版第二章2.1 x-c(1,2,3);y e zz1z2 A-matrix(1:20,nrow=4);BC D E F GxHfor (i in 1:5)+ for(j in 1:5)+ Hi,j det(H)(2) solve(H)(3) eigen(H) 2.5studentdatawrite.table(studentdata,file=student.txt)write.csv(studentdata,file=student.csv) 2.7count-function(n)if (n=0)print(要求输入一个正整数)else re
2、peatif (n%2=0)n-n/2 elsendata_outline(x) 3.2hist(x,freq=F)lines(density(x),col=red)ylines(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.3stem(x)boxplot(x)fivenum(x) 3.4shapiro.test(x)ks.test(x,pnorm,73.668,3.9389)One-sample Kolmo
3、gorov-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);x3boxpl
4、ot(x1,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.6rubberplot(rubber)具体有相关关系的两个变量的散点图要么是从左下角到右上角(正相关),要么是从左上角到右下角(负相关)。从上图可知所有的图中偶读没有这样的趋势,故均不相关。3.7(1) studentattach(student)plot(体重身高)(2) coplot(体重身高|性别)(3) coplot(体重身高|
5、年龄)(4) coplot(体重身高|年龄+性别)只列出(4)的结果,如下图3.8x-seq(-2,3,0.5);yfzcontour(x,y,z,levels=c(0,1,2,3,4,5,10,15,20,30,40,50,60,80,100),col=blu e)windows()persp(x,y,z,theta=30,phi=30,expand=0.7,col=red) 3.9cor.test(身高,体重)根据得出的结果看是相关的。具体结果不再列出3.10dfstars(df)然后按照 G 的标准来画出星图attach(df)df$G1df$G2df$G3df$G4df$G5astar
6、s(a)这里从 17 开始取,是因为在 df 中将 ID 也作为了一列3.11使用 P159 已经编好的函数 unison,接着上题,直接有unison(a)第四章4.1(1)先求矩估计。+总体的期望为 ( a + 1)xa +1dx =-a + 1a + 2。因此我们有a + 1a + 2= E( x) 。可解得 a=(2*E(𝑥)-1)/(1-E(𝑥).因此我们用样本的均值来估计 a 即可。在 R 中实现如下x(2*mean(x)-1)/(1-mean(x) 1 0.3076923(2)采用极大似然估计首先求出极大似然函数为𝑛 ⻕
7、9;L(a;x) = (𝑎 + 1)𝑥𝑎 = (𝑎 + 1)𝑛𝑥𝑎𝑖𝑖 = 1𝑖𝑖 = 1再取对数为𝑛ln L(a;x) = nln(a + 1) + aln(𝑥𝑖𝑖 = 1最后求导lnL(a;x) 𝑛 𝑛𝑎 = 𝑎 + 1 + ln𝑥𝑖𝑖 = 1
8、好了下面开始用 R 编程求解,注意此题中 n=6.方法一、使用 unniroot 函数funiroot(f,c(0,1)方法二、使用 optimize 函数goptimize(g,c(0,1),maximum=T)4.2 = n/用极大似然估计得出 𝑛𝑖 = 1𝑥𝑖.现用 R 求解如下x1000/sum(x) 4.3换句话讲,就是用该样本来估计泊松分布中的参数,然后求出该分布的均值。我们知道泊松分布中的参数,既是均值又是方差。因此我们只需要用样本均值作矩估计即可在 R 中实现如下xmean(x)1 1 4.4f-function(
9、x) +objnlm(f,c(0.5,-2) 4.5在矩估计中,正态分布总体的均值用样本的均值估计。故在 R 中实现如下xmean(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)O
10、ne Sample t-test data: xt = -2.4534, df = 9, p-value = 0.9817alternative hypothesis: true mean is greater than 72 95 percent confidence interval:63.96295 Infsample estimates:mean of x67.4结果说明:我们的备择假设是比 72 要大,但是 p 值为 0.9817,所以我们不接受备择假设,接受原假设比 72 小。因此这 10 名患者的平均脉搏次数比正常人要小。4.6我们可以用两种方式来做一做xyt.test(x,y,
11、var.equal=T)t.test(x-y)结果不再列出,但是可以发现用均值差估计和配对数据估计的结果的数值有一点小小的差别。但得出的结论是不影响的(他们的期望差别很大)4.7ABt.test(A,B) 4.8xyvar.test(x,y)t.test(x,y,var.equal=F) 4.9泊松分布的参数就等于它的均值也等于方差。我们直接用样本均值来估计参数即可,然后作样本均值 0.95 的置信区间即可。xmean(x) 1 1.904762t.test(x)4.10正态总体均值用样本均值来估计。故如下xt.test(x,alternative=greater)注意 greater 才是求
12、区间下限的(都比它大的意思嘛)第五章5.1这是一个假设检验问题,即检验油漆作业工人的血小板的均值是否为225.在 R 中实现如下xt.test(x,mu=225) 5.2考察正态密度函数的概率在 R 中的计算。首先我们要把该正态分布的均值和方差给估计出来,这个就利用样本即可。然后用 pnorm 函数来计算大于 1000 的概率。如下xpnorm(1000,mean(x),sd(x) 1 0.50879411-0.50879411 0.49120595.3这是检验两个总体是否存在差异的问题。可用符号检验和 wilcoxon 秩检验。两种方法实现如下xybinom.test(sum(xwilcox
13、.test(x,y,exact=F) p-value = 0.792可见无论哪种方法 P 值都大于 0.05,故接受原假设,他们无差异5.4(1)采用 w 检验法xyshapiro.test(x)shapiro.test(y)采用 ks 检验法ks.test(x,pnorm,mean(x),sd(x)ks.test(y,pnorm,mean(y),sd(y)采用 pearson 拟合优度法对 x 进行检验AA(-2,0 (0,2 (2,4 (4,6 (6,84 4 6 4 1发现 A 中有频数小于 5,故应该重新调整分组AA(-2,2(2,4(4,8865然后再计算理论分布ppchisq.te
14、st(A,p=p)采用 pearson 拟合优度法对 y 进行检验BB(-2.1,1(1,2(2,4(4,75555ppchisq.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 检验)xyppchisq.test(A,p=p)对对照组用
15、ks.test 检验ks.test(y,pnorm,mean(y),sd(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.5binom.test(178,328,p=0.5,alternative=greater)结果是不能认为能增加比例5.8就是检验你的样本是否符合那个分布chisq.test(c(315,101,108
16、,32),p=c(9,3,3,1)/16)结果显示符合自由组合规律5.9又是检验一个总体是否符合假定分布。x-0:5;yzAqpchisq.test(A,p=p)结论是符合泊松分布5.10xyks.test(x,y) 5.11即列联表的的独立性检验xdim(x)chisq.test(x)或 fisher.test(x)结论是有影响5.12xdim(x)chisq.test(x) 结果是相关5.13xdim(x)fisher.test(x)结果显示工艺对产品质量无影响5.14即检验两种研究方法是否有差异xdim(x)mcnemar.test(x,correct=F)结果表明两种检测方法有差异5.
17、15xbinom.test(sum(x14.6),length(x),al=l)wilcox.test(x,mu=14.6,al=l,exact=F)结果表明是在中位数之下5.16(1)(2)(3)xybinom.test(sum(xwilcox.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)可以发现他们的均值是有
18、差别的(5)综上所述,Wilcoxon 符号秩检验的差异检出能力最强,符号检验的差异检出最弱。5.17xycor.test(x,y,method=spearman)cor.test(x,y,method=kendall)有关系的5.18xyzwilcox.test(y,z,exact=F)结果显示这两种疗法没什么区别第六章6.1(1) snowplot(snow$X,snow$Y)结论是有线性关系的。(2)(3)lm.sol predict(lm.sol,data.frame(X=7),interval=prediction,level=0.95)fitlwrupr1 2690.2272454.9712925.4846.2(1)(2)soil-data.frame(X1=c(0.4,0.4,3.1,0.6,4.7,1.7,9.4,10.1,11.6,12.6,+ 10.9,23.1,23.1,21.6,23.1,1.9,26.8,29.9),X2=c(52,23,19,34,24,65,44,31,+ 29,58,37,46,50,44,56,36,58,51),X3=c(158