R语言统计绘图:t 检验怎么做?
Hi,新朋友,欢迎点击蓝字关注哦!
目 录
前言
正态性检验
Q-Q图示法
正态W检验法
方差齐性
t 检验
单样本 t 检验
配对样本 t 检验
独立样本 t 检验
End
正 文
前言
计量资料的假设检验中,最简单、常用的方法就是 t 检验。
常见的t检验包括单样本 t 检验,配对样本 t 检验和独立样本 t 检验。
独立样本 t 检验一般要求数据服从正态分布且方差齐性。在进行 t 检验前一般先对资料进行方差齐性检验,若方差齐性,采用一般 t 检验;方差不齐,采用近似 t 检验。
配对样本 t 检验则要求每对数据差值的总体服从正态分布。
正态性检验
正态性检验的方法有两种,一是Q-Q图示法;二是正态 W 检验法。
Q-Q图示法
qqnorm(x, ylim,
main="NormalQ-QPlot",
xlab="TheoreticalQuantiles",
ylab="SampleQuantiles",
plot.it=TRUE, datax=FALSE,...)
qqnorm(x); qqline(x)
观察数据是否服从正态分布。
options(digits = 3) # 设定小数点后有效数字
x <- rnorm(20, mean=4, sd=4); x # 生成正态分布数列
qqnorm(x); qqline(x)
若散点大致都在一条直线上,便可认为数据是服从正态分布的。
正态W检验法
H0:数据服从正态分布;
H1:数据不服从正态分布。
x <- rnorm(20, mean=4, sd=4); x # 生成正态分布数列
shapiro.test(x) # x是由数据构成的向量
输出:
Shapiro-Wilk normality test
data: x
W = 1, p-value = 0.8
p-value = 0.8 > 0.05
,认为数据服从正态分布。
方差齐性
方差齐性检验多采用 Levene
检验。
需要的包为 car
包,函数为leveneTest()
函数
install.packages("car")
library(car)
leveneTest()
函数接受数据框结构,一列是各分组的取值 y,另一列是分组 group。
用法:
leveneTest(y, group, center=median, ...) # center可选 mean 和 median(默认)。
示例:
options(digits = 3)
x <- rnorm(20, mean=4, sd=4); x # 生成数据
y <- rnorm(20, mean=5, sd=4); y
d <- data.frame(x,y) # 创建数据框
library(reshape2)
d1 <- melt(d, measure.vars = c("x","y"), # 宽数据转长数据
variable.name = "group",
value.name = "groupvalue");d1
leveneTest(groupvalue ~ group, center = mean, data = d1) # 方差齐性检验
结果输出:
Levenes Test for Homogeneity of Variance (center = mean)
Df F value Pr(>F)
group 1 0.27 0.61
38
P-value = 0.27 > 0.05
,可认为等方差。
t 检验
t.test(x,y = NULL, # x,y是由数据构成向量(只提供x,做单个正太总体均值检验)
alternative=c("two.sided","less","greater"), # alternative是备择假设,括号内分别表示双尾(默认)、单尾(μ1<μ2)和单尾(μ1>μ2)检验
mu=0, # 表示原假设μ0
paired=FALSE, # 不配对,true为配对
var.equal=FALSE, # 默认方差不齐,TRUE表示方差齐性
conf.level=0.95,...) # 置信水平
单样本 t 检验
x <- rnorm(20, mean=5, sd=4); x
t.test(x, alternative="greater", mu=5) # 或 x-n n为待检验均值
输出:
One Sample t-test
data: x
t = -2, df = 19, p-value = 1
alternative hypothesis: true mean is greater than 5
95 percent confidence interval:
0.487 Inf
sample estimates:
mean of x
2.38
配对样本 t 检验
x <- rnorm(20, mean=5, sd=4); x
y <- rnorm(20, mean=4, sd=4); y
t.test(x-y, alternative="two.sided")
输出:
One Sample t-test
data: x - y
t = 1, df = 19, p-value = 0.2
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
-0.621 3.585
sample estimates:
mean of x
1.48
独立样本 t 检验
# 生成两组数据
x <- rnorm(20, mean=5, sd=4); x
y <- rnorm(20, mean=4, sd=4); y
t.test(x,y, var.equal=TRUE, alternative="two.sided") # 独立样本t检验
输出:
Two Sample t-test
data: x and y
t = 1, df = 38, p-value = 0.2
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.562 3.526
sample estimates:
mean of x mean of y
4.21 2.73
若方差不齐,不能满足 t 检验,采用 Wilcoxon
秩和检验,也叫 Mann-Whitney
检验。
wilcox.test(y ~ x, data) # y是数值型变量,x为二分类变量,data为矩阵或数据框 或
wilcox.test(y1, y2) # y1、y2为各组的数值型向量
wilcox.test(x, y = NULL,
alternative = c("two.sided", "less", "greater"),
mu = 0,
paired = FALSE,
exact = NULL, # 逻辑词,是否计算精确p值
correct = TRUE,
conf.int = FALSE, conf.level = 0.95, ...)
End
参考资料
1.《医学统计学》 第4版
2.《统计建模与R软件》
3.《R语言实战》第2版
往期:
数据处理
(折线图)
R语言统计与绘图
更多精彩内容回复关键词
“R语言实战”