# NOT RUN {
data(mtcars)
mtcars$am_f <- factor(mtcars$am)
mtcars$cyl_f <- factor(mtcars$cyl)
model <- aov(mpg ~ am_f * cyl_f, data = mtcars)
(eta2 <- eta_squared(model))
# More types:
eta_squared(model, partial = FALSE)
eta_squared(model, generalized = "cyl_f")
omega_squared(model)
epsilon_squared(model)
cohens_f(model)
if (require(see)) plot(eta2)
model0 <- aov(mpg ~ am_f + cyl_f, data = mtcars) # no interaction
cohens_f_squared(model0, model2 = model)
## Interpretation of effect sizes
## -------------------------------------
interpret_omega_squared(0.10, rules = "field2013")
interpret_eta_squared(0.10, rules = "cohen1992")
interpret_epsilon_squared(0.10, rules = "cohen1992")
interpret(eta2, rules = "cohen1992")
# Recommended: Type-3 effect sizes + effects coding
# -------------------------------------------------
if (require(car, quietly = TRUE)) {
contrasts(mtcars$am_f) <- contr.sum
contrasts(mtcars$cyl_f) <- contr.sum
model <- aov(mpg ~ am_f * cyl_f, data = mtcars)
model_anova <- car::Anova(model, type = 3)
eta_squared(model_anova)
}
# afex takes care of both type-3 effects and effects coding:
if (require(afex)) {
data(obk.long, package = "afex")
model <- aov_car(value ~ treatment * gender + Error(id / (phase)),
data = obk.long, observed = "gender"
)
eta_squared(model)
epsilon_squared(model)
omega_squared(model)
eta_squared(model, partial = FALSE)
epsilon_squared(model, partial = FALSE)
omega_squared(model, partial = FALSE)
eta_squared(model, generalized = TRUE) # observed vars are pulled from the afex model.
}
## Approx. effect sizes for mixed models
## -------------------------------------
if (require(lmerTest, quietly = TRUE)) {
model <- lmer(mpg ~ am_f * cyl_f + (1 | vs), data = mtcars)
omega_squared(model)
}
## Bayesian Models (PPD)
## ---------------------
if (require(rstanarm) && require(bayestestR) && require(car)) {
fit_bayes <- stan_glm(mpg ~ factor(cyl) * wt + qsec,
data = mtcars,
family = gaussian(),
refresh = 0
)
es <- eta_squared_posterior(fit_bayes,
ss_function = car::Anova, type = 3
)
bayestestR::describe_posterior(es)
# compare to:
fit_freq <- lm(mpg ~ factor(cyl) * wt + qsec,
data = mtcars
)
aov_table <- car::Anova(fit_freq, type = 3)
eta_squared(aov_table)
}
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab