R语言入门之t检验(t test)

2020-08-06 09:45:09 浏览数 (1)

R语言提供t.test()函数可以进行各种各样的t检验。与其他统计包不同的是,t.test()函数默认数据是异方差的,并采用Welch方法矫正自由度,关于异方差和Welch方法我会在后续的内容中详细介绍,大家先有一个印象即可。

在这里我将利用R里内置的鸢尾花数据集(iris)向大家展示如何进行t检验,这里iris数据集是由150朵鸢尾花的花瓣长度、花瓣宽度、花萼长度、花萼宽度以及鸢尾花种类组成。

代码语言:javascript复制
setosa <- iris[which(iris$Species=='setosa'),] #提取setosa类的鸢尾花
versicolor <- iris[which(iris$Species=='versicolor'),] #提取versicolor类的鸢尾花
mydata <- rbind(setosa,versicolor) #按行合并数据集
# 独立双样本t检验
t.test(y~x) # y是一个数值型向量,而x是一个二分类变量
t.test(mydata$Sepal.Length~mydata$Species) #检验不同鸢尾花花萼长度差异

从这里我们可以看出两种不同的鸢尾花(setosa和versicolor)在花萼长度上有显著的差异(p-value < 2.2e-16),同时可以看出setosa的花萼比较短(mean=5.006)。

代码语言:javascript复制
# 独立双样本t检验
t.test(y1,y2) # y1和y2均为数值型向量
t.test(setosa$Sepal.Length, versicolor$Sepal.Length) #检验不同鸢尾花花萼长度差异
代码语言:javascript复制
# 配对t检验
t.test(y1,y2,paired=TRUE) # y1和y2均为数值型向量
# 单样本t检验
t.test(y,mu=3) # 原假设H0:mu=3(mu就是指总体的均值)
# 这里就不赘述配对t检验和单样本t检验,它们的使用方法和两独立样本t检验类似,只是分别多了参数paired=TRUE和mu=3。

当然,在这里你也可以设置参数var.equal=TURE,指定样本之间是等方差的,也可以通过alternative=这个参数来指定单侧检验。

现在我们以两独立样本t检验为例看看同方差和单侧检验和前面的结果有何区别:

代码语言:javascript复制
t.test(Sepal.Length~Species,var.equal=TRUE) #检验不同鸢尾花花萼长度差异

可以看出,这里的自由度df=98和之前的自由度df=86.538是不一样的,因为Welch主要通过调整自由度来矫正异方差性。

代码语言:javascript复制
t.test(Sepal.Length~Species,alternate= "greater") #检验不同鸢尾花花萼长度差异

好了,关于t检验的内容就分享到这里,大家先学会如何使用R进行t检验分析即可,后续我会介绍相关理论!

0 人点赞