如何在 r 中执行事后成对比较
单向方差分析用于确定三个或更多独立组的平均值之间是否存在统计显着差异。
单向方差分析使用以下原假设和备择假设:
- H 0 :所有组平均值相等。
- H A :并非所有组的平均值都相同。
如果方差分析的总体p 值低于一定的显着性水平(例如 α = 0.05),则我们拒绝零假设并得出结论:所有组均值不相等。
为了找出哪组均值不同,我们可以进行事后成对比较。
以下示例展示了如何在 R 中执行以下事后成对比较:
- 图基法
- 谢夫方法
- 邦费罗尼方法
- 霍尔姆法
示例:R 中的单向方差分析
假设老师想知道三种不同的学习技巧是否会导致学生的考试成绩不同。为了测试这一点,她随机分配10 名学生使用每种学习技巧并记录他们的考试结果。
我们可以在 R 中使用以下代码执行单向方差分析来测试三组之间平均考试成绩的差异:
#create data frame df <- data.frame(technique = rep(c(" tech1 ", " tech2 ", " tech3 "), each= 10 ), score = c(76, 77, 77, 81, 82, 82, 83, 84, 85, 89, 81, 82, 83, 83, 83, 84, 87, 90, 92, 93, 77, 78, 79, 88, 89, 90, 91, 95, 95, 98)) #perform one-way ANOVA model <- aov(score ~ technique, data = df) #view output of ANOVA summary(model) Df Sum Sq Mean Sq F value Pr(>F) technical 2 211.5 105.73 3.415 0.0476 * Residuals 27 836.0 30.96 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
方差分析的总体 p 值 (0.0476) 小于 α = 0.05,因此我们将拒绝每种研究技术的平均考试成绩相同的原假设。
我们可以进行事后配对比较,以确定哪些组具有不同的均值。
图基法
当每组样本量相等时,最好使用 Tukey 事后方法。
我们可以使用内置的TukeyHSD()函数来执行 R 中的 Tukey post-hoc 方法:
#perform the Tukey post-hoc method TukeyHSD(model, conf. level = .95 ) Tukey multiple comparisons of means 95% family-wise confidence level Fit: aov(formula = score ~ technique, data = df) $technical diff lwr upr p adj tech2-tech1 4.2 -1.9700112 10.370011 0.2281369 tech3-tech1 6.4 0.2299888 12.570011 0.0409017 tech3-tech2 2.2 -3.9700112 8.370011 0.6547756
从结果中,我们可以看到唯一小于 0.05 的 p 值(“ p adj ”)是技术与技术 3 之间的差异。
因此,我们可以得出结论,使用技术 1 和技术 3 的学生之间的平均考试成绩仅存在统计学上的显着差异。
谢夫方法
Scheffe 方法是最保守的事后成对比较方法,在比较组均值时会产生最宽的置信区间。
我们可以使用DescTools包中的ScheffeTest()函数在 R 中运行 Scheffe 事后方法:
library (DescTools)
#perform the Scheffe post-hoc method
ScheffeTest(model)
Posthoc multiple comparisons of means: Scheffe Test
95% family-wise confidence level
$technical
diff lwr.ci upr.ci pval
tech2-tech1 4.2 -2.24527202 10.645272 0.2582
tech3-tech1 6.4 -0.04527202 12.845272 0.0519 .
tech3-tech2 2.2 -4.24527202 8.645272 0.6803
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1'''156
从结果中我们可以看到,没有p值低于0.05,因此我们可以得出结论,各组之间的平均考试成绩没有统计学上的显着差异。
邦费罗尼方法
当您想要执行一组计划的成对比较时,最好使用 Bonferroni 方法。
我们可以在 R 中使用以下语法来执行 Bonferroni 事后方法:
#perform the Bonferroni post-hoc method
pairwise. t . test (df$score, df$technique, p. adj = ' bonferroni ')
Pairwise comparisons using t tests with pooled SD
data: df$score and df$technique
tech1 tech2
tech2 0.309 -
tech3 0.048 1.000
P value adjustment method: bonferroni
从结果中,我们可以看到唯一小于 0.05 的 p 值是技术与技术 3 之间的差异。
因此,我们可以得出结论,使用技术 1 和技术 3 的学生之间的平均考试成绩仅存在统计学上的显着差异。
霍尔姆法
当您想要预先执行一组计划的成对比较时,也会使用 Holm 方法,并且它往往比 Bonferroni 方法具有更高的功效,因此通常首选它。
我们可以在 R 中使用以下语法来运行 Holm 事后方法:
#perform the Holm post-hoc method
pairwise. t . test (df$score, df$technique, p. adj = ' holm ')
Pairwise comparisons using t tests with pooled SD
data: df$score and df$technique
tech1 tech2
tech2 0.206 -
tech3 0.048 0.384
P value adjustment method: holm
从结果中,我们可以看到唯一小于 0.05 的 p 值是技术与技术 3 之间的差异。
因此,我们再次得出结论,使用技术 1 和技术 3 的学生之间的平均考试成绩仅存在统计学上的显着差异。
其他资源
以下教程提供有关方差分析和事后测试的其他信息:
如何解释方差分析中的F值和P值
完整指南:如何报告方差分析结果
图基 vs.邦费罗尼 VS 邦费罗尼Scheffe:您应该使用哪种测试?