研究中常见两组的进行比较。即是一种事物相比另一种,有什么样的变化。如果这个变量是类别型,则可以直接使用相关性分析的方法,那么现在所分析的变量是连续型的组间比较,并假设为正态分布。

      数据使用为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