####################5.2 X<-c(159, 280, 101, 212, 224, 379, 179, 264, 222, 362, 168, 250, 149, 260, 485, 170) t.test(X,alternative='greater',mu=225,conf.level = 0.95)#单边检验 ###########################5.3这是一个经典的两样本比较问题 X<-c(78.1, 72.4, 76.2, 74.3, 77.4, 78.4, 76.0, 75.5, 76.7, 77.3) Y<-c(79.1, 81.0, 77.3, 79.1, 80.0, 79.1, 79.1, 77.3, 80.2, 82.1) t.test(X,Y,var.equal=TRUE,alternative='less')#常把我们想要的结果作为备胎h1 t.test(X,Y,var.equal=F,alternative='less')#两组样本方差不同 t.test(X,Y,var.equal=TRUE,alternative='less',paired=T)#两组样本数量相同 #实战我们将使用MASS包中的UScrime数据集。它包含了1960年美国47个州的刑 罚制度 #对犯罪率影响的信息。我们感兴趣的结果变量为Prob(监禁的概率)、U1(14~24岁年龄 #段城市男性失业率)和U2(35~39岁年龄段城市男性失业率)。类别型变量So(指示该州是 #否位 于南方的指示变量)将作为分组变量使用 #如果你在美国的南方犯罪,是否更有可能被判监禁? install.packages("MASS") library(MASS) attach(UScrime) t.test(Prob~So)#默认原假设为监禁概率相同 detach(UScrime) ################################5.5方差检验 X<-c(78.1, 72.4, 76.2, 74.3, 77.4, 78.4, 76.0, 75.5, 76.7, 77.3) Y<-c(79.1, 81.0, 77.3, 79.1, 80.0, 79.1, 79.1, 77.3, 80.2, 82.1) var.test(X,Y,alternative='two.side') ##############################5.6并非所有的样本总体都服从正态分布的假设! binom.test(445,500,p=0.85) #######5.7 binom.test(1,400,p=0.01,alternative='less') ##################5.8拟合优度检验 X=c(210,312,170,85,223) chisq.test(X) length(X) ######################5.12单个总体的检验 X<-c(420, 500, 920, 1380, 1510, 1650, 1760, 2100, 2300, 2350) ks.test(X, "pexp", 1/1500) ?ks.test ########################两个样本分布的比较 X<-rnorm(100) Y<-runif(100) ks.test(X,Y) t.test(X,Y) wilcox.test(X,Y) #################################################5.14列联表的独立性检验 x<-c(60, 3, 32, 11) dim(x)<-c(2, 2) x chisq.test(x, correct = FALSE)#一个逻辑指示在计算2乘2表时的测试统计量时是否应用连续性校正 #实际例子 install.packages("vcd")#关节炎治疗数据 help(package='vcd') library(vcd) help("Arthritis") head(Arthritis)#查看列表的前几项 mytable=xtabs(~Treatment+Improved,data=Arthritis);mytable#创建一个列联表。接受治疗和改善水平之间有关系 chisq.test(mytable) fisher.test(mytable) #改善水平和性别的关系 mytable=xtabs(~Improved+Sex,data=Arthritis);mytable chisq.test(mytable) fisher.test(mytable) #多维度列联表的检验;原假设是两变量在第三个变量的每一层中都是条件独立的 mytable=xtabs(~Treatment+Improved+Sex,data=Arthritis) mantelhaen.test(mytable) #以上为独立性检验,如果变量独立,那么是否会相关呢? library(vcd)#二维列联表相关性度量 mytable=xtabs(~Treatment+Improved,data=Arthritis);mytable assocstats(mytable) ###############################5.22相关检验(相关性的度量) x<-c(1,2,3,4,5,6); y<-c(6,5,4,3,2,1) cor.test(x, y, method = "spearman")#还有person相关,kendall相关 #实战 attach(state.x77)#基础包中的数据集,美国50个州在1977年的人口,收入,文盲率,预期寿命 #谋杀率,气温,土地面积等数据,我们想要判断预期寿命和谋杀率的关系 help(state.x77) #install.packages("XQuartz");library(XQuartz);edit(state.x77);fix(state.x77) head(state.x77) states=state.x77[,1:6]#我们打算讨论除了气温和土地面积之外的所有变量的关系 cov(states) cor(states) pairs(state.x77) cor.test(states[,4],states[,5])#预期寿命和谋杀率 detach(state.x77) #cor.test 一次只能检验一对变量的相关性,而psych包中的corr.test()可以做的更多 library(psych) corr.test(states,use='complete')#对所有变量做比较,prob 越小越显著 #以上大都是在讲两组比较,若是多组比较则需要方差分析的方法。这里仅介绍单因素方差分析 #多元方差分析参见《R语言实战》 #单因素方差分析中,你感兴趣的是比较分类因子定义的两个或多个组别中的因变量均值。以 #multcomp包中的cholesterol数据集为例(取自Westfall,Tobia,Rom,Hochberg,1999), #50 个患者均接受降低胆固醇药物治疗(trt)五种疗法中的一种疗法。其中三种治疗条件使用药 #物相同,分别是20 mg一天一次(1time)、10 mg一天两次(2times)和5 mg一天四次(4times)。 #剩下的两种方式(drugD和drugE)代表候选药物。哪种药物疗法降低胆固醇(响应变量)最多呢? install.packages('multcomp') library(multcomp) attach(cholesterol) head(cholesterol) table(trt) fit=aov(response~trt);summary(fit)#方差分析只能看出它们之间的不同,不能说明具体细节 #绘图表示细节 boxplot(response~trt) install.packages('gplots') library(gplots) plotmeans(response~trt,xlab='Treatment',ylab='Response',main='difference between 5 treatment') detach(cholesterol)