R语言基础统计分析:正态性检验、方差齐性检验、T检验、方差分析、秩和检验

18
四月
2021

R语言基础统计分析

  • 1. 正态性检验
    • 1.1 Shapiro-Wilk正态检验方法
    • 1.2 QQ图
  • 2. 方差齐性检验
    • 2.1 Bartlett检验,适用于正态分布数据
    • 2.2 Levene检验,非正态分布与正态分布数据均适用
  • 3. t 检验
    • 3.1 单样本t检验
    • 3.2 两独立样本t检验
    • 3.3 两配对样本t检验
  • 4. 方差分析
  • 5. 秩和检验
    • 5.1 两样本比较
    • 5.2 多样本比较

1. 正态性检验

单变量正态性检验

1.1 Shapiro-Wilk正态检验方法

# 示列:
shapiro.test(var) 
# 正态性检验,p-value 大于0.05时为正态分布

说明:对小样本资料才进行正态性检验,大样本可放松此要求。以上检验方法要求样本在3-5000之间。

1.2 QQ图

示列
qqnorm(MS$MMSE) # 绘制QQ图
qqline(MS$MMSE) # 添加趋势线
# 若QQ图在一条直线附件,说明比较正态

2. 方差齐性检验

2.1 Bartlett检验,适用于正态分布数据

# 示列
# 两样本比较
bartlett.test(var1 ~ var2)
# 有分组变量
bartlett.test(var1, groupvar) # group可以是多分组
# 方差齐性检验p-value大于0.05时为齐性

2.2 Levene检验,非正态分布与正态分布数据均适用

library(carData)
library(car)
leveneTest(var1, groupvar, center=median, ...)
# 注意,groupvar需要是factor,可以提前转换为factor。
# 或leveneTest(var1, as.factor(groupvar))
# 方差齐性检验,p-value大于0.05时为方差齐性

3. t 检验

注意,t检验,方差分析等需要满足一些前提条件,尤其是小样本。若不适合可选择秩和检验

官方示列:

t.test(x, ...)
t.test(x, y = NULL,
       alternative = c("two.sided", "less", "greater"),
       mu = 0, paired = FALSE, var.equal = FALSE,
       conf.level = 0.95, ...)
# x: a (non-empty) numeric vector of data values.
# y: an optional (non-empty) numeric vector of data values.
# paired = FALSE, var.equal = FALSE为默认选项,默认非配对样本,
# 默认方差不齐
# p-value小于0.05差异有统计学意义

3.1 单样本t检验

检验样本均数与总体均数的差异

t.test(var, mu = )

3.2 两独立样本t检验

t.test(var1,var2)
t.test( var1~ groupvar)

3.3 两配对样本t检验

t.test(var1,var2,paired = TRUE)
# 既然是配对样本,需要两样本一一对应

4. 方差分析

官方示列:

aov(formula, data = NULL, projections = FALSE, qr = TRUE,
    contrasts = NULL, ...)
    
oneway.test(formula, data, subset, na.action, var.equal = FALSE)

pairwise.t.test(x, g, p.adjust.method = p.adjust.methods,
                pool.sd = !paired, paired = FALSE,
                alternative = c("two.sided", "less", "greater"),
                ...)
# p-value小于0.05有统计学意义

本节仅展示单因素方差分析

my1 <- summary(aov(var1~groupvar, data = mydata))
#结果存储于my1中,注意:my1为list形式。
#若不满足方差齐性且每组样本数也不平衡,
#还可以使用oneway.test()
oneway.test(var1~groupvar, data = mydata)
#若方差分析结果显示组间有差异,还可进一步两两比较
pairwise.t.test(var1, groupvar, p.adjust.method = "holm") 
#method 默认"holm",还可用"bonferroni", "BH"等p值校正方法
#注意,此处用,分隔var与group。

5. 秩和检验

官方示列:

wilcox.test(x, ...)
wilcox.test(x, y = NULL,
            alternative = c("two.sided", "less", "greater"),
            mu = 0, paired = FALSE, exact = NULL, correct = TRUE,
            conf.int = FALSE, conf.level = 0.95,
            tol.root = 1e-4, digits.rank = Inf, ...)
kruskal.test(x, ...)
kruskal.test(x, g, ...)
kruskal.test(formula, data, subset, na.action, ...)
#  p-value小于0.05有统计学意义

5.1 两样本比较

wilcox.test(var1,var2) # 两独立样本
wilcox.test(var1,var2,paired = TRUE) #两配对样本
wilcox.test(var~groupvar) #分组变量为groupvar

5.2 多样本比较

kruskal.test(var~groupvar,mydata) # 多样本比较
kruskal.test(var1,var2,var3,……) #多样本比较

参考资料:《R语言实战》、《R官方帮助文件》等

TAG

网友评论

共有访客发表了评论
请登录后再发布评论,和谐社会,请文明发言,谢谢合作! 立即登录 注册会员