Wednesday, July 3, 2024
HomeLanguagesPythonHow to Perform Welch’s ANOVA in Python

How to Perform Welch’s ANOVA in Python

When the assumption of equal variances is violated, Welch’s ANOVA is used as an alternative to the standard one-way ANOVA. A one-way ANOVA (“analysis of variance”) is used to see if there is a statistically significant difference in the means of three or more independent groups.

Steps to perform Welch’s ANOVA :

Step 1: Create a Pandas Data frame to hold the data for performing ANCOVA.

Example:

To see if three different studying strategies lead to different test scores, an instructor assigns ten students at random to use each strategy (strat1, strat2, strat3) for one week and then demands each student to take an exam of similar complexity. The following are the exam results of the 30 students:

strat1 = [64, 66, 68, 75, 78, 94, 98, 79, 71, 80]

strat2 = [91, 92, 93, 90, 97, 94, 82, 88, 95, 96]

strat3 = [79, 78, 88, 94, 92, 85, 83, 85, 82, 81]

Step 2: Check whether there is equal variance between scores of those three strategies.

We can use Bartlett’s test to see if the variances in each group are equal. If the test statistic’s p-value is less than a certain level of significance (such as =.05), we can reject the null hypothesis and conclude that not all groups have the same variance. To run Bartlett’s test in Python, use the following code:

Python




# Import library
import scipy.stats as stats
  
# Create Data
strat1 = [64, 66, 68, 75, 78, 94, 98, 79, 71, 80]
strat2 = [91, 92, 93, 90, 97, 94, 82, 88, 95, 96]
strat3 = [79, 78, 88, 94, 92, 85, 83, 85, 82, 81]
  
# perform Bartlett's test
stats.bartlett(strat1, strat2, strat3)


The p-value (.01089) from Bartlett’s test is less than α = .05, which means we can reject the null hypothesis that each group has the same variance. Thus, the assumption of equal variances is violated and we can proceed to perform Welch’s ANOVA.

Step 3: Now apply Welch’s ANOVA to the data.

In Python, we can use the Pingouin package’s welch_anova() function to perform Welch’s ANOVA. Make sure we have installed ‘pingouin’ library before applying Welch’s ANOVA.

Syntax to install pingouin library:

pip install pingouin

Python




import pingouin as pg
import pandas as pd
import numpy as np
  
# create DataFrame
df = pd.DataFrame({'score': [64, 66, 68, 75, 78, 94, 98, 79, 71, 80,
                             91, 92, 93, 90, 97, 94, 82, 88, 95, 96,
                             79, 78, 88, 94, 92, 85, 83, 85, 82, 81],
                   'group': np.repeat(['strat1', 'strat2', 'strat3'],
                                      repeats=10)})
  
# perform Welch's ANOVA
pg.welch_anova(dv='score', between='group', data=df)


Step 4:  Analyze the results obtained after performing welch_anova().

The overall p-value (0.001598) from the ANOVA table is less than α = .05, which means we can reject the null hypothesis that the exam scores are equal between the three studying techniques.

Calisto Chipfumbu
Calisto Chipfumbuhttp://cchipfumbu@gmail.com
I have 5 years' worth of experience in the IT industry, primarily focused on Linux and Database administration. In those years, apart from learning significant technical knowledge, I also became comfortable working in a professional team and adapting to my environment, as I switched through 3 roles in that time.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments