R语言RR基础知识

[R语言] 单因素方差分析和多重比较

2020-08-26  本文已影响0人  半为花间酒

示例数据集如下:


导入数据作简单可视化

library(tidyverse)
test <- rio::import('ANOVA.xlsx')
boxplot(value ~ group,data = test)

正态性检验

  1. 当分析小于50行的小样本数据时,用Shapiro-Wilk 检验
  2. 当分析大于50行的大样本数据时,用Kolmogorov-Smirnov检验
by(test, test$group, function(df) shapiro.test(df[,2]))

各组符合正态分布

方差齐性检验

bartlett.test(value ~ group,data = test)

各组方差齐

单因素方差分析

ANOVA <- aov(value ~ group,data = test)
summary(ANOVA)

多组之间存在两组,总体均数不等

多重比较

  1. 事前比较的常用方法有LSD法、Dunnett-t检验
  2. 事后比较的常用方法有SNK法、Turkey法、Scheffe法
  3. 事前比较和事后比较都可以采用的方法有Bonferroni法、Sidak法

LSD法

p.adj=”none” 时,为LSD法,p.adj="bonferroni" 时为Bonferroni法

# install.packages("agricolae")
library(agricolae)
res <- LSD.test(ANOVA, 'group', p.adj = 'none')
res
plot(res)

可见显著性字母标识


TukeyHSD法

tuk <- TukeyHSD(ANOVA)
tuk
plot(tuk)

完整代码

library(tidyverse)
test <- rio::import('ANOVA.xlsx')
boxplot(value ~ group,data = test)

# 正态性检验
by(test, test$group, function(df) shapiro.test(df[,2]))

# 方差齐性检验
bartlett.test(value ~ group,data = test)

# 单因素方差分析
ANOVA <- aov(value ~ group,data = test)
summary(ANOVA)

# 多重比较
# 1. LSD法
# install.packages("agricolae")
library(agricolae)
res <- LSD.test(ANOVA, 'group', p.adj = 'none')
res
plot(res)
# 2. TukeyHSD法
tuk <- TukeyHSD(ANOVA)
tuk
plot(tuk)
上一篇 下一篇

猜你喜欢

热点阅读