T检验,亦称student t检验(Student’s t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布。T检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。
【适用条件】
已知一个总体均数;可得到一个样本均数及该样本标准差;样本来自正态或近似正态总体。
若是单独样本T检验,必须给出一个标准值或总体均值,同时,提供一组定量的观测结果,应用t检验的前提条件是该组资料必须服从正态分布;若是配对样本T检验,每对数据的差值必须服从正态分布;若是独立样本T检验,个体之前相互独立,两组资料均取自正态分布的总体,并满足方差齐性。之所以需要这些前提条件,是因为必须在这样的前提下所计算出的t统计量才服从t分布,而t检验正是以t分布作为其理论依据的检验方法。后面的方差分析,其独立样本T检验的前提条件是相同的,即正态性额方差齐性。
【分类】
单总T检验(单独样本t检验),双总T检验(独立样本T检验,分为配对样本T检验和非配对样本t检验)
在进行 t 检验之前,应该对数据进行正态性检验以及方差齐性检验。
正态性检验:Kolmogorov–Smirnov test、Anderson–Darling test、Shapiro-Wilk test、Lilliefor test
方差齐次性检验:bartlett.test检验、var.test检验、leveneTest检验、Fligner-Killeen检验
1. 单样本T检验
例1:某鱼塘水的含氧量多年平均值为4.5mg/L,现在该鱼塘设10点采集水样,测定水中含氧量(单位:mg/L)分别为:4.33,4.62,3.89,4.14,4.78,4.64,4.52,4.55,4.48,4.26,问该次抽样的水中含氧量与多年平均值是否有显著差异?
##################单样本t检验#####################################
Sites <- c(4.33,4.62,3.89,4.14,4.78,4.64,4.52,4.55,4.48,4.26)
# 1st 正态性检验
shapiro.test(Sites)
# 2nd t-test: t.test(x, mu = 0, alternative = "two.sided")
t.test(Sites,mu=4.5) #mu表示的是平均数
p=0.3738>0.05,认为所抽样水体的含氧量与多年平均值无显著差异。
2. 独立样本T检验
有两种情况,一种是两个总体方差齐性,另一种是两个总体方差不齐。
方差齐性时直接使用独立样本T检验,当两样本方差不齐时,使用t′检验,t′检验用于两组间方差不齐时,t′检验的计算公式实际上是方差不齐时t检验的校正公式。
2.1 非配对样本T检验
A. 两样本方差齐性
例2:用高蛋白和低蛋白两种饲料饲养1月龄的大白鼠,饲养3个月后,测定两组大白鼠的增重量(g),两组数据分别如下所示:
高蛋白组:134,146,106,119,124,161,107,83,113,129,97,123
低蛋白组:70,118,101,85,107,132,94
试问两种饲料养殖的大白鼠增重量是否有显著差异?
#################两样本方差齐性
High<-c(134,146,106,119,124,161,107,83,113,129,97,123)
Low<-c(70,118,101,85,107,132,94)
Group<-c(rep(1,12),rep(0,7))#1表示High,0表示Low
x<-c(High,Low)
# 1st 正态性检验
shapiro.test(High)
shapiro.test(Low)
# 2nd 方差齐性检验
bartlett.test(x ~ Group) # 或者var.test(x~Group)
# 3rd t-test: t.test(formula, paired=FALSE, var.equal = TRUE)
t.test(High,Low,paired = FALSE, var.equal = TRUE) #宽数据格式
#或者可以使用
t.test(x ~ Group, paired = FALSE, var.equal = TRUE) #长数据格式
p-value = 0.07543,大于0.05,结果表明两种饲料养殖的大白鼠增重量无显著差异。
B. 两样本方差不齐
例3:有人测定了甲乙两地区某种饲料的含铁量(mg/kg),结果如下:
甲地:5.9,3.8,6.5,18.3,18.2,16.1,7.6
乙地:7.5,0.5,1.1,3.2,6.5,4.1,4.7
试问这种饲料含铁量在两地间是否有显著差异?
#################两样本方差不齐
JIA<-c(5.9,3.8,6.5,18.3,18.2,16.1,7.6)
YI<-c(7.5,0.5,1.1,3.2,6.5,4.1,4.7)
Content<-c(JIA,YI)
Group<-c(rep(1,7),rep(2,7))#1表示甲地,2表示乙地
# 1st 正态性检验
shapiro.test(JIA)
shapiro.test(YI)
# 2nd 方差齐性检验
bartlett.test(Content~Group)
# 3rd t-test: t.test(x, y, paired=FALSE, var.equal = F)
t.test(Content,Group,paired=FALSE,var.equal=FALSE)
方差齐性检验表明,方差不等,因此设定var.equal=FALSE,此时p=0.0023<0.05,表明该饲料在两地的含铁量有显著差异。
2.2 配对样本T检验
例4:某人研究冲水对草鱼产卵率的影响, 获得冲水前后草鱼产卵率(%),如下:冲水前:82.5,85.2,87.6,89.9,89.4,90.1,87.8,87.0,88.5,92.4
冲水后:91.7,94.2,93.3,97.0,96.4,91.5,97.2,96.2,98.5,95.8
问:冲水前后草鱼亲鱼产卵率有无差异?
#################配对样本T检验
Before<-c(82.5,85.2,87.6,89.9,89.4,90.1,87.8,87.0,88.5,92.4)
After<-c(91.7,94.2,93.3,97.0,96.4,91.5,97.2,96.2,98.5,95.8)
# 1st 正态性检验
shapiro.test(Before-After)
# 2nd 方差齐性检验
var.test(Before, After)
#不需要,配对T检验检验的前提条件之一:成对数据就是来自同一总体的。
# 3rd t-test
t.test(Before,After,paired = T,alternative = "two.sided",cond.lvel=0.95)
结果表明,p=2.548e-05<0.01,表明冲水前后,草鱼亲鱼的产卵率有非常显著差异。
备注:本部分内容分五块:主要描述T检验、F检验、卡方检验( χ^{2} 检验),μ检验(又称Z检验),方差分析。其中T检验主要应用于小样本资料,F检验主要对于方差齐性或方差同质性进行检验,卡方检验主要应用于适合性检验、独立性检验和方差同质性检验,μ检验主要应用于大样本资料或方差已知的资料,方差分析(均数差异的显著性检验)主要应用于两个及两个以上样本均数差别的显著性检验。
写于2020.02.10
修于2020.04.01
参考资料: