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

Testing mean of multiple series with ANOVA and Tukey HSD test in R

在 R 中,我有四个数值向量。我想测试这四个向量的平均值是否相同,如果不相同,则哪个平均值更大,哪个平均值更小(基本上我想通过它们的平均值对四个向量进行排名)。

这个post比较适合我:

http://brownmath.com/stat/anova1

我正在遵循此指南:

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

然而,这个 post 在测试四个均值是否相等时停止,但如果答案不相等,我怎么知道 R 中哪个均值更大,哪个均值更小?

非常感谢,

来自 post 的代码是:

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)

我假设满足假设,特别是 残差是独立的 并且 残差分布是同方差的并且与正态分布非常相似分布.

首先请注意,您的方差分析 returns 的 p 值为 0.99,这意味着组均值之间没有显着差异。如果 p 值低于 0.05,您可以对成对比较进行 post-hoc 检验。

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"

同样,由于您的示例中没有任何重要内容,所有因子水平都具有相同的字母。