研究中常见两组的进行比较。即是一种事物相比另一种,有什么样的变化。如果这个变量是类别型,则可以直接使用相关性分析的方法,那么现在所分析的变量是连续型的组间比较,并假设为正态分布。
数据使用为MASS包的UScrime数据集,包含了1960年美国47个州刑罚制度对犯罪率影响的信息。需要的结果变量为Prob(监禁的概率)、U1(14-24岁年龄段城市男性失业率)和U2(35-39岁年龄段城市男性失业率)。类别型变量So(指示该州是否位于南方的指示变量)作为分组变量使用。
主要实验:
1、假设方差不等的双侧检验,比较南方(group1)和非南方(group0)各州的监禁概率。
假设两组数据是独立的,并且从正态总体中抽取。检验调用格式:
t.test(y~x,data)
y是数值型变量,x是二分变量。调用格式或为:
t.test(y1,y2)
y1和y2为数值型向量(各组的结果变量)。
2、亚拉巴马州的年轻男性和年长男性的失业率之间的关系。
非独立样本的t检验假定组间的差异呈正态分布。检验调用格式:
t.test(y1,y2,paired=TRUE)
y1和y2为两个非独立组的数值向量。
3、两组数据的比较,若独立,使用Wilcoxon秩和检验(在一个总体中获得更高得分的概率是否比另一个总体要大),去实验关于1的监禁率的问题。
wilcox.test(y~x,data)
y是数值型变量,x是二分变量。或
wilcox.test(y1,y2)
y1y2为结果变量。
Wilcoxon符号秩检验是非独立样本t检验的一种非参数替代方法。适用于两组成对数据和无法保证正态性假设的情境。
4、比较美国四个地区(东北部、南部、中北部、西部)的文盲率。
如果各组独立,用Kruskal-Wallis检验,不独立,Friedman检验更合适。
kruskal.test(y~A,data)
y是一个数值型结果变量,A是一个拥有两个或者更多水平的分组变量(若两个水平,则和Mann-Whitney U检验等价)。
friedman.test(y~A|B,data)
y是数值型结果变量,A是一个分组变量,而B是一个用于认定匹配观测的区组变量。
data皆为可选参数。
> #独立样本的t检验
> library(MASS)
> t.test(Prob ~ So,data = UScrime)
Welch Two Sample t-test
data: Prob by So
t = -3.8954, df = 24.925, p-value = 0.0006506
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.03852569 -0.01187439
sample estimates:
mean in group 0 mean in group 1
0.03851265 0.06371269
> #非独立样本的t检验
> sapply(UScrime[c("U1","U2")], function(x)(c(mean=mean(x),sd=sd(x))))
U1 U2
mean 95.46809 33.97872
sd 18.02878 8.44545
> with(UScrime,t.test(U1,U2,paired=TRUE))
Paired t-test
data: U1 and U2
t = 32.407, df = 46, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
57.67003 65.30870
sample estimates:
mean of the differences
61.48936
> #两组独立数据的比较
> with(UScrime,by(Prob,So,median))
So: 0
[1] 0.038201
-------------------------------------------------------------------------
So: 1
[1] 0.055552
> wilcox.test(Prob ~ So,data = UScrime)
Wilcoxon rank sum test
data: Prob by So
W = 81, p-value = 8.488e-05
alternative hypothesis: true location shift is not equal to 0
> #有关失业率的问题
> sapply(UScrime[c("U1","U2")],median)
U1 U2
92 34
> #多余两组独立数据比较,检验回答文盲率的问题
> #显著性结果表明美国四个地区文盲率各不相同(p<0.001)
> states <- data.frame(state.region,state.x77)
> kruskal.test(Illiteracy ~ state.region,data=states)
Kruskal-Wallis rank sum test
data: Illiteracy by state.region
Kruskal-Wallis chi-squared = 22.672, df = 3, p-value = 4.726e-05
> #控制犯第一类错误概率的前提下,执行可以同步进行的多次比较
> source("http://www.statmethods.net/RiA/wmc.txt")
> states1 <- data.frame(state.region,state.x77)
> wmc(Illiteracy ~ state.region,data = states,method = "holm")
Descriptive Statistics
West North Central Northeast South
n 13.00000 12.00000 9.00000 16.00000
median 0.60000 0.70000 1.10000 1.75000
mad 0.14826 0.14826 0.29652 0.59304
Multiple Comparisons (Wilcoxon Rank Sum Tests)
Probability Adjustment = holm
Group.1 Group.2 W p
1 West North Central 88.0 8.665618e-01
2 West Northeast 46.5 8.665618e-01
3 West South 39.0 1.788186e-02 *
4 North Central Northeast 20.5 5.359707e-02 .
5 North Central South 2.0 8.051509e-05 ***
6 Northeast South 18.0 1.187644e-02 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1