8.5 Example 3: ANOVA
Is the relationship between flipper length and species the same for each sex of penguin?
ggplot(pen, aes(x=flipper_length_mm, y=species, fill=species)) +
stat_slab(alpha=.5, justification = 0) +
geom_boxplot(width = .2, outlier.shape = NA) +
geom_jitter(alpha = 0.5, height = 0.05) +
stat_summary(fun="mean", geom="point", col="red", size=4, pch=17) +
theme_bw() +
labs(x="Flipper Length (mm)", y = "Species", title = "Overall") +
theme(legend.position = "none")
pen %>% select(flipper_length_mm, species, sex) %>% na.omit() %>%
ggplot(aes(x=flipper_length_mm, y=species, fill=species)) +
stat_slab(alpha=.5, justification = 0) +
geom_boxplot(width = .2, outlier.shape = NA) +
geom_jitter(alpha = 0.5, height = 0.05) +
stat_summary(fun="mean", geom="point", col="red", size=4, pch=17) +
theme_bw() +
labs(x="Flipper Length (mm)", y = "Species", title = "Overall") +
theme(legend.position = "none") +
facet_wrap(~sex)
The pattern of distributions of flipper length by species seems the same for both sexes of penguin. Sex is likely not a moderator. Let’s check the ANOVA anyhow
Overall
aov(pen$flipper_length_mm ~ pen$species) |> summary()
## Df Sum Sq Mean Sq F value Pr(>F)
## pen$species 2 52473 26237 594.8 <2e-16 ***
## Residuals 339 14953 44
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 2 observations deleted due to missingness
By Sex
by(pen, pen$sex, function(x) {
aov(x$flipper_length_mm ~ x$species) |> summary()
})
## Df Sum Sq Mean Sq F value Pr(>F)
## x$species 2 21415.6 10708 411.79 < 2.2e-16 ***
## Residuals 162 4212.6 26
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## ------------------------------------------------------------
## Df Sum Sq Mean Sq F value Pr(>F)
## x$species 2 29098.4 14549.2 384.37 < 2.2e-16 ***
## Residuals 165 6245.6 37.9
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Sex is not a modifier, the relationship between species and flipper length is the same within male and female penguins.