用R中的ANOVA和Tukey HSD检验测试多个系列的平均值

时间:2016-11-23 08:20:02

标签: r anova tukey

在R中,我有四个数值向量。我想测试这四个向量的平均值是否相同,如果没有,哪个意味着更大,哪个意思更小(基本上我想按照它们对四个向量进行排序)。

这篇文章非常适合我:

http://brownmath.com/stat/anova1

我正在遵循本指南:

https://www.r-bloggers.com/analysis-of-variance-anova-for-multiple-comparisons/

然而,如果四个方法相同或不同,这个帖子会在测试时停止,但如果答案不是,那我怎么知道哪个平均值更大,哪个平均值在R中更小?

非常感谢,

帖子的代码是:

a = c(65, 48, 66, 75, 70, 55)
b = c(64, 44, 70, 70, 68, 59)
c = c(60, 50, 65, 69, 69, 57)
d = c(62, 46, 68, 72, 67, 56)

dati = c(a, b, c, d)
groups = factor(rep(letters[1:4], each = 6))

fit = lm(formula = dati ~ groups)
anova (fit)

1 个答案:

答案 0 :(得分:3)

我会假设假设得到满足,特别是残差是独立的,并且残差的分布是同方差的并且与正态分布足够相似。 / p>

首先请注意,您的ANOVA返回的p值为0.99,这意味着组均值之间没有显着差异。如果p值低于0.05,则可以进行成对比较的事后检验。

TukeyHSD(aov(fit))
#  Tukey multiple comparisons of means
#    95% family-wise confidence level
#
#Fit: aov(formula = fit)
#
#$groups
#          diff       lwr      upr     p adj
#b-a -0.6666667 -15.68081 14.34748 0.9992898
#c-a -1.5000000 -16.51415 13.51415 0.9921250
#d-a -1.3333333 -16.34748 13.68081 0.9944302
#c-b -0.8333333 -15.84748 14.18081 0.9986181
#d-b -0.6666667 -15.68081 14.34748 0.9992898
#d-c  0.1666667 -14.84748 15.18081 0.9999888

当然,这里没什么重要的。

更强大的功能是multcomp包。它让你定义不同的成对比较。它还可以为您提供您经常在表格或图表中看到的小组字母。

library(multcomp)
pairwise <- glht(fit, linfct = mcp(groups = "Tukey"))
summary(pairwise)
cld(pairwise)
#  a   b   c   d 
#"a" "a" "a" "a"

同样,由于您的示例中没有任何重要内容,因此所有因素级别都会得到相同的字母。