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


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.


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

  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)
   aov(formula = weight_loss ~ gender + duty, data = data)
                  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

        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


Now we can calculate the Eta Squared

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.

You may also like...

Leave a Reply

Your email address will not be published.


Subscribe Now