介绍用于比较独立组的不同类型的方差分析,包括:
请注意,独立分组变量也称为主体间因子。双向和三向方差分析的主要目标分别是评估在解释连续结果变量时,两个和三个主体间因子之间是否存在统计学上显着的交互作用效应。
学习内容:
假设我们有 3 组要比较,如下图所示。虚线表示组均值。该图显示了组均值(面板 A)和每个组内的变化(面板 B)之间的变异,也称为残差方差。
方差分析检验背后的想法非常简单:如果组间的平均变异与组内的平均变异相比足够大,那么您可以得出结论,至少一个组均值不等于其他组均值。
因此,可以通过比较两个方差估计来评估组均值之间的差异是否显著。这就是为什么该方法被称为方差分析,即使主要目标是比较组均值。
简而言之,方差分析检验背后的数学过程如下:
方差分析检验对数据做出以下假设:
请确保具有以下 R 包:
library(tidyverse)
library(ggpubr)
library(rstatix)
data("PlantGrowth")
set.seed(1234)
PlantGrowth %>% sample_n_by(group, size = 1)
#查看group有几个水平
levels(PlantGrowth$group)
可以使用以下两种方法之一检查正态性假设:
通过分析模型残差来检查正态性假设。使用QQ图和夏皮罗-威尔克正态性检验。QQ图绘制给定数据与正态分布之间的相关性。
# Build the linear model
model <- lm(weight ~ group, data = PlantGrowth)
# Create a QQ plot of residuals
ggqqplot(residuals(model))
shapiro_test(residuals(model))
# A tibble: 1 × 3
variable statistic p.value
<chr> <dbl> <dbl>
1 residuals(model) 0.966 0.438
在 QQ 图中,由于所有点都大致沿参考线落下,我们可以假设正态性。这一结论得到了夏皮罗-威尔克检验的支持。p 值不显著 (p = 0.13),因此我们可以假设正态性。
按组检查正态性假设。计算每个组级别的夏皮罗-威尔克测试。如果数据呈正态分布,则 p 值应大于 0.05。
> PlantGrowth %>%
+ group_by(group) %>%
+ shapiro_test(weight)
# A tibble: 3 × 4
group variable statistic p
<fct> <chr> <dbl> <dbl>
1 ctrl weight 0.957 0.747
2 trt1 weight 0.930 0.452
3 trt2 weight 0.941 0.564
每组的评分呈正态分布(p > 0.05),由夏皮罗-威尔克的正态性检验评估。
请注意,如果您的样本数量大于 50,则首选正态 QQ 图,因为在较大的样本量下,夏皮罗-威尔克检验变得非常敏感,即使与正态性有轻微的偏差。
QQ图绘制给定数据与正态分布之间的相关性。为每个组级别创建QQ图:
对于每个像元,所有点都大致沿参考线落下。因此,我们可以假设数据的正态性。
plot(model, 1)
> PlantGrowth %>% levene_test(weight ~ group)
# A tibble: 1 × 4
df1 df2 statistic p
<int> <int> <dbl> <dbl>
1 2 27 1.12 0.341
从上面的输出中,我们可以看到 p 值> 0.05,这并不显著。这意味着,组间方差之间没有显著差异。因此,我们可以假设不同治疗组中方差的同质性。
在不满足方差齐性假设的情况下,您可以使用函数 welch_anova_test()[rstatix 包] 计算 Welch 单因素方差分析检验。此检验不需要假设方差相等。
> res.aov <- PlantGrowth %>% anova_test(weight ~ group)
> res.aov
ANOVA Table (type II tests)
Effect DFn DFd F p p<.05 ges
1 group 2 27 4.846 0.016 * 0.264
在上表中,该列对应于广义 eta 平方(效应大小)。它测量结果变量(此处为植物)中变异性的比例,可以用预测因子(此处为治疗)来解释。0.26(26%)的效应大小意味着26%的变化可以解释治疗条件。
注意:从上面的方差分析表中可以看出,组间存在显著差异(p = 0.016),用“*”突出显示,F(2, 27) = 4.85,p = 0.16,eta2[g] = 0.26。
显著的单因素方差分析通常由Tukey事后检验跟进,以在组之间进行多次成对比较。关键函数:tukey_hsd()
> # Pairwise comparisons
> pwc <- PlantGrowth %>% tukey_hsd(weight ~ group)
> pwc
# A tibble: 3 × 9
term group1 group2 null.value estimate conf.low conf.high p.adj p.adj.signif
* <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
1 group ctrl trt1 0 -0.371 -1.06 0.320 0.391 ns
2 group ctrl trt2 0 0.494 -0.197 1.19 0.198 ns
3 group trt1 trt2 0 0.865 0.174 1.56 0.012 *
输出包含以下列:
注意:从输出中可以看出,只有 trt2 和 trt1 之间的差异是显著的(调整后的 p 值 = 0.012)。
我们可以报告单因素方差分析的结果如下:
进行单因素方差分析以评估3个不同处理组的植物生长是否不同:ctr (n = 10),trt1(n = 10)和trt2(n = 10)。
数据以平均值 +/- 标准差表示。不同处理组间植物生长差异有统计学意义,F(2, 27) = 4.85, p = 0.016, 广义η平方 = 0.26.
与CTR组(1.4 +/- 66.0)相比,trt79组(5.03 +/- 0.58)的植物生长下降。与trt2和ctr组相比,trt5组(53.0 +/- 44.1)增加。
Tukey事后分析显示,从trt1到trt2(0.87,95%CI(0.17至1.56))的增加具有统计学意义(p = 0.012),但其他组间差异无统计学意义。
# Visualization: box plots with p-values
pwc <- pwc %>% add_xy_position(x = "group")
ggboxplot(PlantGrowth, x = "group", y = "weight") +
stat_pvalue_manual(pwc, hide.ns = TRUE) +
labs(
subtitle = get_test_label(res.aov, detailed = TRUE),
caption = get_pwc_label(pwc)
)
经典的单因素方差分析检验要求假设所有组的方差相等。在我们的示例中,方差假设的同质性结果很好:Levene 检验并不显著。
在违反方差假设的同质性的情况下,我们如何保存方差分析检验?
# Welch One way ANOVA test
res.aov2 <- PlantGrowth %>% welch_anova_test(weight ~ group)
# Pairwise comparisons (Games-Howell)
pwc2 <- PlantGrowth %>% games_howell_test(weight ~ group)
# Visualization: box plots with p-values
pwc2 <- pwc2 %>% add_xy_position(x = "group", step.increase = 1)
ggboxplot(PlantGrowth, x = "group", y = "weight") +
stat_pvalue_manual(pwc2, hide.ns = TRUE) +
labs(
subtitle = get_test_label(res.aov2, detailed = TRUE),
caption = get_pwc_label(pwc2)
)
> pwc3 <- PlantGrowth %>%
+ pairwise_t_test(
+ weight ~ group, pool.sd = FALSE,
+ p.adjust.method = "bonferroni"
+ )
> pwc3
# A tibble: 3 × 10
.y. group1 group2 n1 n2 statistic df p p.adj p.adj.signif
* <chr> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl> <chr>
1 weight ctrl trt1 10 10 1.19 16.5 0.25 0.75 ns
2 weight ctrl trt2 10 10 -2.13 16.8 0.048 0.144 ns
3 weight trt1 trt2 10 10 -3.01 14.1 0.009 0.028 *
我们将使用数据集 [datarium 包],其中包含按性别和教育水平组织的工作满意度分数。jobsatisfaction
在这项研究中,一项研究想要评估工作满意度分数之间是否存在显着的双向交互作用。当一个自变量对结果变量的影响取决于其他自变量的水平时,就会发生交互作用效应。如果交互作用效应不存在,则可以报告主效应。gendereducation_level
加载数据并按组随机检查一行:
https://editor.csdn.net/md/?articleId=130452005