t检验算法及其在R语言中的实现

定义及分类

在进行 t 检验之前让我们先看看它的定义:t 检验法就是在假设检验时利用 t 分布进行概率计算的检验方法。那问题来了,什么是 t 分布呢?

在概率论和统计学中,学生 t- 分布(Student's t-distribution)可简称为 分布,用于根据小样本来估计呈正态分布且方差未知的总体的均值。如果总体方差已知(例如在样本数量足够多时),则应该用正态分布来估计总体均值[1]。

所以我们在进行 t 检验之前,应该对数据进行正态性检验以及方差齐性检验

 t 检验可以分为单样本 t 检验和双样本 t 检验(见下图)。

t 检验分类 by小蓝哥

单样本 t 检验

步骤及算法

单样本 t 检验步骤如下。

1. 提出假设

by 小蓝哥

2. 计算 t 

by 小蓝哥

3. 统计推断

在R中的实现

#单样本T检验

data <- c(4.33,4.62,3.89,4.14,4.78,4.64,4.52,4.55,4.48,4.26)

shapiro.test(data) #p>0.05,符合正态分布

t.test(data,mu=4.5) #mu表示的是平均数

看看R的结果:

①正态性检验结果

> shapiro.test(data) #p>0.05,符合正态分布

Shapiro-Wilk normality test

data:  data

W = 0.95054, p-value = 0.6749

② t 检验结果

> t.test(data,mu=4.5)

One Sample t-test

data:  data

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 

p=0.3738>0.05,所以拒绝Ho,接受HA。


方差齐的非配对的双样本 t 检验

步骤及算法

1. 提出假设

by 小蓝哥

2. 计算 t

by 小蓝哥

其中:

by 小蓝哥

3. 统计推断

在R中的实现

#非配对两样本T检验

high<-c(134,146,106,119,124,161,107,83,113,129,97,123)

low<-c(70,118,101,85,107,132,94)

x <- c(high,low)

group <- c(rep("high",12),rep("low",7))

shapiro.test(high) #正态性检验

shapiro.test(low) #正态性检验

bartlett.test(x~group)#方差齐性检验

t.test(high,low,paired = FALSE,var.equal = T) #非配对: paired = FALSE     方差齐: var.equal = T    

①方差齐性检验结果

> bartlett.test(x~group)#方差齐性检验

Bartlett test of homogeneity of variances

data:  x by group

Bartlett's K-squared = 0.0066764, df = 1, p-value = 0.9349 #接近1表明方差齐

② t 检验结果

> t.test(high,low,paired = FALSE,var.equal = T)

Two Sample t-test

data:  high and low

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

p-value = 0.07238>0.05,所以不能否定Ho。


方差不齐的非配对的 t 检验

步骤及算法 

1. 提出假设

by 小蓝哥

2. 计算 t’

by 小蓝哥

其中:

by 小蓝哥


by 小蓝哥


by 小蓝哥

3. 统计推断

在R中的实现

#非配对两样本T检验

high<-c(134,146,106,119,124,161,107,83,113,129,97,123)

low<-c(70,118,101,85,107,132,94)

x <- c(high,low)

group <- c(rep("high",12),rep("low",7))

shapiro.test(high)

shapiro.test(low)

bartlett.test(x~group)#方差齐性检验

t.test(high,low,paired = FALSE,var.equal = F)

t 检验结果

> t.test(high,low,paired = FALSE,var.equal = F)

Welch Two Sample t-test

data:  high and low

t = 1.9319, df = 13.016, p-value = 0.07543

alternative hypothesis: true difference in means is not equal to 0

95 percent confidence interval:

 -2.263671 40.597005

sample estimates:

mean of x mean of y 

 120.1667  101.0000 

p-value = 0.07238>0.05,所以不能否定Ho。


配对 双样本 t 检验

步骤及算法

1.提出假设

by 小蓝哥

2.计算t

by 小蓝哥

其中

by 小蓝哥

by 小蓝哥


3. 统计推断

在R中的实现

#配对两样本T检验

ds <- c(82.5,85.2,87.6,89.9,89.4,90.1,87.8,87.0,88.5,92.4)

cs <- c(91.7,94.2,93.3,97.0,96.4,91.5,97.2,96.2,98.5,95.8)

library(carData)

library(car)

leveneTest(ds,cs)

d <- ds-cs

shapiro.test(d) #方差齐性检验

t.test(ds,cs,paired = T,alternative = "two.sided",cond.lvel=0.95)

t检验结果:

> t.test(ds,cs,paired = T,alternative = "two.sided",cond.lvel=0.95)

Paired t-test

data:  ds and cs

t = -7.8601, df = 9, p-value = 2.548e-05

alternative hypothesis: true difference in means is not equal to 0

95 percent confidence interval:

 -9.1949 -5.0851

sample estimates:

mean of the differences 

                  -7.14 

p-value = 2.548e-05 < 0.01,所以否定Ho,接受HA。

参考文献:

[1].学生 t - 分布(Wikipedia)

你可能感兴趣的:(t检验算法及其在R语言中的实现)