0%

R-简单的学生检验(t-test)

Student’s test —— 简称t-test,据说是作者当年为避风头而用“学生”这一笔名,所以就将该种方法称为学生检验了。

百度百科:t-test 主要用于样本量较小(例如n < 30),总体标准差σ未知的正态分布。t-test 是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。

关于t-test的原理在此处就不过多赘述了,主要还是看在R语言里面怎么用。首先,我们要注意做t-test的目的是为了检验在符合正态分布的样本中两个平均数是否有显著的差异,且该样本的总体方差也是未知的,否则可以用u检验。

在R语言中,t-test的函数为t.test(),如下所示

1
2
3
4
5
6
7
t.test(x, ...)

## Default S3 method:
t.test(x, y = NULL,
alternative = c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, var.equal = FALSE,
conf.level = 0.95, ...)

x,y :为进行检验的数据。
alternative:该参数设定备择假设,默认为双尾检验。
mu:单样本检验时,需要设定的平均值。
paired:为逻辑参数,是否进行配对t-test。
var.equal:双样本检验时,总体方差是否相等
conf.level:设定显著性水平,默认α=0.05。

以下将以实例展示不同情况下的t-test如何使用。

单样本均值检验

【例1】一鱼塘多年水中含氧量平均值为4.5 mg/L,现随机在该鱼塘采集10个样本,试检验该次抽样的均值是否与多年均值有显著差别。

1
2
3
4
5
6
7
8
9
10
11
12
13
> X <- c(4.33, 4.62, 3.89, 4.14, 4.78, 4.64, 4.52, 4.55, 4.48, 4.26)
> t.test(X, mu=4.5)

One Sample t-test

data: X
t = -0.93574, df = 9, p-value = 0.3738
alternative hypothesis: true mean is not equal to 4.5
95 percent confidence interval:
4.230016 4.611984
sample estimates:
mean of x
4.421

假设检验一般都是以四段进行,分别为:
(1)给出假设H0, HA
(2)确定显著水平
(3)计算统计检验值
(4)作出推断

在以上结果中,我们可以看到t.test函数给出的结果中包含了计算出的检验值、自由度、p值以及结论等。很明显,我们看到本次抽样的均值与总体均值是没有显著差异的。

双样本均值检验

当要比较的两个样本的总体方差未知,但相等时(判断方差是否相等可以借助方差同质性检验F-test),可以使用t-test。

成组数据的均值检验–独立样本

成组数据(pooled data)是两个样本的各个变量从各自总体中抽取,也就是说两个样本间的变量没有任何关联,两个抽样样本彼此独立。成组数据的两个样本的容量未必相同,但是方差需要相等才能进行t-test。

【例2】用高蛋白和低蛋白两种饲料养1月龄大白鼠,在3个月时,测定两组大白鼠的增重量(g),检验两组数据均值有无显著性差异。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> X <- c(134, 146, 106, 119, 124, 161, 107, 83, 113, 129, 97, 123)
> Y <- c(70, 118, 101, 85, 107, 132, 94)
> t.test(X, Y, var.equal = T)

Two Sample t-test

data: X and Y
t = 1.9157, df = 17, p-value = 0.07238
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-1.942543 40.275876
sample estimates:
mean of x mean of y
120.1667 101.0000

由于本篇文章不展开F-test,因此我们先跳过方差同质性检验这步(但两总体的方差是相等的)。此时所用的自由度为(n1+n2-2),且由于默认上mu=0,所以在结果中备择假设就打印出:
alternative hypothesis: true difference in means is not equal to 0

但是细看p值的话,p>0.05,即接受H0,两者无显著差异,所以进行双总体均值检验时,要以p值为判断基准。

配对样本检验

配对样本(paired data)的比较要求两个样本间配偶成对,每一对样本除随机地给予不同处理外,其他实验条件应尽量一致。即为配对,两样本的容量必定相等。

配对样本检验在研究中也是较为常用的,如高血压病人在服药前后血压变化是否有显著差异等,都可以使用该法检验。

【例3】用正常饲料和维生素E缺乏饲料饲养两组配对的实验动物一段时间后,检测其肝脏中维生素A含量是否有显著性差异。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> X <- c(3550, 2000, 3000, 3950, 3800, 3750, 3450, 3050)
> Y <- c(2450, 2400, 1800, 3200, 3250, 2700, 2500, 1750)
> t.test(X, Y, var.equal = T, paired = T)

Paired t-test

data: X and Y
t = 4.207, df = 7, p-value = 0.004001
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
355.8207 1269.1793
sample estimates:
mean of the differences
812.5

由于是进行配对检验,因此 paired = T。p<0.05,证明两组均值有显著性差异。

R语言中的统计检验还是较为简单和直接的,但作为数据分析者,我们的任务除了敲出这几行代码之外,还要对我们的结果作出解答。统计检验是研究结论的守门人,务必要保证该流程的严谨性,以给出令人信服的结论。

“When you have eliminated the impossible, whatever remains, however improbable, must be the truth.” – Sherlock Holmes

假设检验也是如此,即使结果与预设不符合,但只要任何一步都是严谨地进行的时候,我们都应当采信得出的结论。

Ref:

《生物统计学》(第五版)李春喜等著

完。