资源描述
第二章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/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-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,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(体重身高|年龄)(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$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=1nxi好了下面开始用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在矩估计中,正态分布总体的均值用样本的均值估计。故在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-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)结果不再列出,但是可以发现用均值差估计和配对数据估计的结果的数值有一点小小的差别。但得出的结论是不影响的(他们的期望差别很大)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这是一个假设检验问题,即检验油漆作业工人的血小板的均值是否为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.05,故接受原假设,他们无差异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 (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(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又是检验一个总体是否符合假定分布。 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(x14.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)综上所述,Wilcoxon符号秩检验的差异检出能力最强,符号检验的差异检出最弱。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.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.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,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后,条件数降低好多好多。说明step函数是合理的。6.6首先得把这个表格看懂。里面的数字应该是有感染和无感染的人数。而影响变量有三个。我们把这些影响变量进行编码。如下。发生不发生抗生素X123危险因子X245有无计划X367是否感染Y10对数据的处理,如下X1X2X3Y频数246112460172561025602247111247087257102570034612834603034712334703356183560323571035709然后用R处理并求解模型hospital glm.sol summary(glm.sol)可以发现如果显著性为0.1,则方程的系数和方程本省全部通过检验。下面我们来做一个预测,看看(使用抗生素,有危险因子,有计划)的一个孕妇发生感染的概率是多少。 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的系数通过了显著性检验,但是也不是很理想。下面计算每一个病人的生存时间大于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 for(i in 1:3)+ K1,i K 甲 乙 丙mean 103 111 86然后再用t.test来做均值的置信区间估计 pro.jia pro.yi pro.bing pairwise.t.test(pro$Y,pro$X) 1 2 2 0.35 - 3 0.13 0.04可以看到显著性主要有乙工厂和丙工厂造成7.2(1) old old.aov summary(old.aov)可以发现影响是非常显著的。(2) pairwise.t.test(old$Y,old$X)直接从结果就可以发现国内只有以工厂和丙工厂与国外工厂有显著差异。而国内只有甲乙,甲丙之间存在着显著差异。7.3 rat shapiro.test(rat$XA=1) shapiro.test(rat$Xrat$A=2) shapiro.test(rat$Xrat$A=3) bartlett.test(XA,data=rat)可以看到数据符合正态性但是不是方差齐性的7.4 rat rat.aov summary(rat.aov)结果是显著的7.5 sleep sleep.aov summary(sleep.aov)结果是不显著7.6(1) pro pro.aovAB。下面我们来计算它们各个水平下的均值。首先要交互作用给找出来。如下 ab-function(x,y)+ n-length(x);z-rep(0,n)+ for( i in 1:n)+ if(xi=yi)zi-1elsezi pro$AB K for( i in 2:4)+ for(j in 1:3)+ Kj,i-1 K A B AB1 5.150000 5.783333 4.9333332 4.533333 4.666667 5.2500003 5.750000 4.983333 NaN按照影响力越大(即P值越小),我们首先确定AB应选择水平2,即A和B 不等的是最好的。然后选择A,选择水平3,那么B只能在1和2中选择,需选择1.于是我们的最优组合为A3B1。下面给出A3B1的点估计和区间估计。 mean(pro$Ypro$A=3&pro$B=1) t.test(pro$Ypro$A=3&pro$B=1)(3) pairwise.t.test(pro$Y,pro$AB) pairwise.t.test(pro$Y,pro$B) pairwise.t.test(pro$Y,pro$A)7.7 rice rice.aov K for(i in 1:3)+ for(j in 1:3)+ Ki,j K 品种 密度 施肥量1 59.53333 62.73333 59.058332 56.55000 55.27500 55.525003 56.12500 54.20000 57.62500所以应该选品种8号,密度4.5,施肥量0.757.8首先我们绘制出正交试验表格,如下列号1234567产量试验号ABA*BCA*CB*CDC*DB*DA*D11111111862111222295312211229141222211945212121291621221219672211221838221211288好吧,表示因为多了一个因素D不知道怎么排列交互作用了,我上面排列的也不一定对。此题暂且不做7.9首先把正交试验表的结果那一列给计算出来。如下 pro pro.mean pro.datapro.aovABAC,其余均不显著下面再计算出均值,从而就可以依据显著性来选择最优参数了 ab-function(x,y)+ n-length(x);z-rep(0,n)+ for( i in 1:n)+ if(xi=yi)zi-1elsezi pro.data$AB pro.data$AC K for(i in 2:6)+ for(j in 1:2)+ Kj,i-1 K A B C AB AC1 1.83750 1.43750 1.85625 1.64375 1.937502 1.80625 2.20625 1.78750 2.00000 1.70625依据显著性,首先选择B,选择B1。再依据AB,应选择AB1,也就是说A和B应该是同一水平。那么A就被先选定的B决定了它应该选水平1.然后看AC,应该选2.也就是说A和C应该是不同水平。那么A选择1,C必须选择2.所以最后的最优组合应该是A1B1C2即通用夹具,特殊铸铁,留研量0.015第八章8.1 x g distinguish.distance(x,g,c(8.1,2) distinguish.bayes(x,g,TstX=c(8.1,2) distinguish.bayes(x,g,TstX=c(8.1,2),var.equal=T) discriminiant.fisher(x1:10,x11:20,c(8.1,2)得出的结论都是明天下雨8.2 heart G distinguis
展开阅读全文