如何在 r 中执行 bonferroni 校正
单向方差分析用于确定三个或更多独立组的平均值之间是否存在统计显着差异。
如果方差分析表的总体p 值低于一定的显着性水平,则我们有足够的证据表明至少其中一个组均值与其他均值不同。
然而,这并没有告诉我们哪些群体彼此不同。这只是告诉我们并非所有组的平均值都是相等的。
为了准确地知道哪些组彼此不同,我们需要在每组之间执行成对 t 检验,同时控制族错误率。
实现此目的的最常见方法之一是在计算每个成对 t 检验的 p 值时使用Bonferroni 校正。
本教程介绍如何在 R 中执行 Bonferroni 校正。
示例:R 中的 Bonferroni 校正
假设老师想知道三种不同的学习技巧是否会导致学生的考试成绩不同。
为了测试这一点,她随机分配 10 名学生使用每种学习技巧。在使用指定的学习技巧一周后,每个学生都会参加相同的考试。
我们可以使用 R 中的以下步骤来拟合单向方差分析,并使用 Bonferroni 校正来计算每组考试结果之间的成对差异。
步骤 1:创建数据集。
以下代码演示了如何创建包含所有 30 名学生的考试结果的数据集:
#create data frame data <- 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)) #view first six rows of data frame head(data) technical score 1 tech1 76 2 tech1 77 3 tech1 77 4 tech1 81 5 tech1 82 6 tech1 82
第 2 步:查看每组的考试结果。
以下代码显示如何生成箱线图以可视化每组考试结果的分布:
boxplot(score ~ technique, data = data, main = "Exam Scores by Studying Technique", xlab = "Studying Technique", ylab = "Exam Scores", col = "steelblue", border = "black")
步骤 3:执行单向方差分析。
以下代码显示如何执行单向方差分析来测试每组平均考试成绩之间的差异:
#fit the one-way ANOVA model model <- aov(score ~ technique, data = data) #view model output 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,这表明每个组的平均考试成绩不同。
接下来,我们将使用 p 值的 Bonferroni 校正进行成对 t 检验,以计算每组考试结果之间的成对差异。
步骤 4:执行配对 t 检验。
要在 R 中使用 Bonferroni 校正执行成对 t 检验,我们可以使用pairwise.t.test()函数,该函数使用以下语法:
pairwise.t.test(x, g, p.adjust.method=”bonferroni”)
金子:
- x:响应值的数值向量
- g:指定组名称的向量(例如研究技术)
以下代码展示了如何在我们的示例中使用此函数:
#perform pairwise t-tests with Bonferroni's correction pairwise.t.test(data$score, data$technique, p.adjust.method=" bonferroni ") Pairwise comparisons using t tests with pooled SD data: data$score and data$technique tech1 tech2 tech2 0.309 - tech3 0.048 1.000 P value adjustment method: bonferroni
结果解释方式如下:
- 技术 1 和技术 2 之间的考试成绩平均差异的调整 p 值为0.309 。
- 技术 1 和技术 3 之间的考试成绩平均差异的调整 p 值为0.048 。
- 技术 2 和技术 3 之间考试成绩平均差异的调整 p 值为1000 。
根据结果,我们可以看到唯一显着的差异是技术 1 和技术 3 之间。
其他资源
单向方差分析简介
如何在 R 中执行单向方差分析
如何在 R 中执行 Tukey 测试
如何在 R 中执行 Dunnett 检验