knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(Keng) library(effectsize) library(car) data("depress")
PRE is called partial R-squared in regression, and partial Eta-squared in ANOVA. This vignette will examine their equivalence using the internal data depress
.
depress
collected depression
, gender
, and class
at Time 1. Traditionally, we examine the effect of gender
and class
using anova. We firstly let R know gender
and class
are factors (i.e., categorical variables). Then we conduct anova using car::Anova()
and compute partial Eta-squared using effectsize::eta_squared()
.
# factor gender and class depress_factor <- depress depress_factor$class <- factor(depress_factor$class, labels = c(3,5,9,12)) depress_factor$gender <- factor(depress_factor$gender, labels = c(0,1)) anova.fit <- lm(dm1 ~ gender + class, depress_factor) Anova(anova.fit, type = 3) cat("\n\n") print(eta_squared(Anova(anova.fit, type = 3), partial = TRUE), digits = 6)
Then we conduct regression analysis and compute PRE. For class
with four levels: 3, 5, 9, and 12, we dummy-code it using ifelse()
with the class12 as the reference group.
# class3 indicates whether the class is class3 depress$class3 <- ifelse(depress$class == 3, 1, 0) # class5 indicates whether the class is class5 depress$class5 <- ifelse(depress$class == 5, 1, 0) # class9 indicates whether the class is class9 depress$class9 <- ifelse(depress$class == 9, 1, 0)
We compute the PRE of gender
though comparing Model A with gender
against Model C without gender
.
fitC <- lm(dm1 ~ class3 + class5 + class9, depress) fitA <- lm(dm1 ~ class3 + class5 + class9 + gender, depress) print(compare_lm(fitC, fitA), digits = 3)
Compare gender's PRE and partial Eta-squared. They should be equal.
We compute the PRE of class
. Note that in regression, the PRE of class
is the PRE of all class
's dummy codes: class3
, class5
, and class9
.
fitC <- lm(dm1 ~ gender, depress) fitA <- lm(dm1 ~ class3 + class5 + class9 + gender, depress) print(compare_lm(fitC, fitA), digits = 3)
Compare class's PRE and partial Eta-squared. They should be equal.
We compute the PRE of the full model(Model A). The PRE (partial R-squared or partial Eta-squared) of the full model is commonly known as the R-squared or Eta-squared of the full model.
fitC <- lm(dm1 ~ 1, depress) fitA <- lm(dm1 ~ class3 + class5 + class9 + gender, depress) print(compare_lm(fitC, fitA), digits = 3)
As shown, the PRE of Model A against Model C is equal to Model A's R_squared. Taken the loss of precision into consideration, Model C's R_squared is zero.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.