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)
#> Anova Table (Type III tests)
#>
#> Response: dm1
#> Sum Sq Df F value Pr(>F)
#> (Intercept) 67.166 1 464.5565 <2e-16 ***
#> gender 0.025 1 0.1758 0.6760
#> class 0.729 3 1.6808 0.1768
#> Residuals 12.868 89
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
cat("\n\n")
print(eta_squared(Anova(anova.fit, type = 3), partial = TRUE), digits = 6)
#> # Effect Size for ANOVA (Type III)
#>
#> Parameter | Eta2 (partial) | 95% CI
#> -------------------------------------------------
#> gender | 0.001972 | [0.000000, 1.000000]
#> class | 0.053619 | [0.000000, 1.000000]
#>
#> - One-sided CIs: upper bound fixed at [1.000000].
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)
#> Baseline C A A vs. C
#> SSE 13.6 12.8932 12.8678 0.02542
#> n 94.0 94.0000 94.0000 94.00000
#> Number of parameters 1.0 4.0000 5.0000 1.00000
#> df 93.0 90.0000 89.0000 1.00000
#> R_squared NA 0.0530 0.0549 0.00187
#> f_squared NA 0.0560 0.0581 0.00198
#> R_squared_adj NA 0.0214 0.0124 NA
#> PRE NA 0.0530 0.0549 0.00197
#> F(PA-PC,n-PA) NA 1.6791 1.2917 0.17583
#> p NA 0.1771 0.2794 0.67599
#> PRE_adj NA 0.0214 0.0124 -0.00924
#> power_post NA 0.4263 0.3887 0.06993
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)
#> Baseline C A A vs. C
#> SSE 13.6 13.59681 12.8678 0.7291
#> n 94.0 94.00000 94.0000 94.0000
#> Number of parameters 1.0 2.00000 5.0000 3.0000
#> df 93.0 92.00000 89.0000 3.0000
#> R_squared NA 0.00132 0.0549 0.0535
#> f_squared NA 0.00132 0.0581 0.0567
#> R_squared_adj NA -0.00953 0.0124 NA
#> PRE NA 0.00132 0.0549 0.0536
#> F(PA-PC,n-PA) NA 0.12165 1.2917 1.6808
#> p NA 0.72805 0.2794 0.1768
#> PRE_adj NA -0.00953 0.0124 0.0217
#> power_post NA 0.06376 0.3887 0.4266
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)
#> Baseline C A A vs. C
#> SSE 13.6 1.36e+01 12.8678 0.7470
#> n 94.0 9.40e+01 94.0000 94.0000
#> Number of parameters 1.0 1.00e+00 5.0000 4.0000
#> df 93.0 9.30e+01 89.0000 4.0000
#> R_squared NA 6.52e-16 0.0549 0.0549
#> f_squared NA 6.66e-16 0.0581 0.0581
#> R_squared_adj NA 7.77e-16 0.0124 NA
#> PRE NA 6.66e-16 0.0549 0.0549
#> F(PA-PC,n-PA) NA NA 1.2917 1.2917
#> p NA NA 0.2794 0.2794
#> PRE_adj NA 6.66e-16 0.0124 0.0124
#> power_post NA NA 0.3887 0.3887
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.