How to perform Eta Squared in R
Eta Squared in R, Eta squared is a commonly-used effect size metric in ANOVA models.
It is calculated as follows: It measures the proportion of variance associated with each main effect and interaction effect in an ANOVA model.
Eta squared = SSeffect / SStotal
where:
SSeffect: For a single variable, the sum of squares of an effect.
SStotal: In the ANOVA model, the total sum of squares.
The value of Eta squared varies from 0 to 1, with values closer to 1 indicating that a specific variable in the model can explain a greater fraction of the variation.
The following are some general guidelines for interpreting Eta squared values:
0.01: Effect size is small.
0.06: Effect size is medium.
Large effect size if the number is 0.14 or above.
This tutorial shows you how to calculate Eta squared for variables in an ANOVA model in R step by step.
Step 1: Dataset Creation
Let’s say we want to see if duty intensity and gender have an effect on weight loss.
To investigate this, we recruited 30 men and 30 women to take part in a one-month trial in which 10 of each were randomly assigned to either no duty, light duty, or intensive duty.
The code below demonstrates how to build a data frame to hold the data we’re dealing with:
Make this example repeatable.
set.seed(123)
Let’s create a data frame
data <- data.frame(gender = rep(c("Male", "Female"), each = 30), duty = rep(c("NO", "LIGHT", "HEAVY"), each = 10, times = 2), weight_loss = c(runif(10, -5, 5), runif(10, 2, 5), runif(10, 5, 9), runif(10, -5, 5), runif(10, 0, 3), runif(10, 3, 8)))
Let’s view the first six rows
head(data)
gender duty weight_loss 1 Male NO -3.03455710 2 Male NO 2.95565356 3 Male NO -0.08550515 4 Male NO -4.07388111 5 Male NO 2.63758055 6 Male NO 0.36200633
Count how many people are in each category.
table(data$gender, data$duty)
HEAVY LIGHT NO Female 10 10 10 Male 10 10 10
Step 2: Fit the ANOVA Model
The following code demonstrates how to fit a two-way ANOVA with weight reduction as the response variable and activity and gender as factors:
fit the ANOVA model with two variables
model <- aov(weight_loss ~ gender + duty, data = data) model
Call: aov(formula = weight_loss ~ gender + duty, data = data) Terms: gender duty Residuals Sum of Squares 29.7734 350.8557 168.8440 Deg. of Freedom 1 2 56 Residual standard error: 1.736396
Estimated effects may be unbalanced
Now we can view the model summary
summary(model)
Df Sum Sq Mean Sq F value Pr(>F) gender 1 29.8 29.77 9.875 0.00268 ** duty 2 350.9 175.43 58.184 2.13e-14 *** Residuals 56 168.8 3.02 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Step 3: Calculate Eta Squared in R
Using the etaSquared() function from the lsr package, we can determine the effect size Eta squared for each variable in our model:
install and load the lsr package
library(lsr)
Now we can calculate the Eta Squared
etaSquared(model)
eta.sq eta.sq.part gender 0.05418539 0.1499034 duty 0.63853122 0.6751124
For gender and duty, the Eta squared is as follows.
For gender, eta squared is 0 05418539
duty eta squared: 0. 63853122
We may conclude that the effect size for duty is large, but the effect size for gender is minimal.
The p-values in the ANOVA table’s output match to these results. Duty has a significantly lower p-value (2.13e-14) than gender (0.00268), indicating that duty has a far stronger impact on weight loss prediction.