How to perform Bartlett’s Test in Python (Step-by-Step)

To perform Bartlett’s Test in Python, you must first import the scipy.stats library and then use the scipy.stats.bartlett() function with the data you wish to test for homoscedasticity (homogeneity of variance). This function returns the test statistic and the p-value. If the p-value is less than the desired significance level, the null hypothesis of homoscedasticity is rejected and the data is heteroscedastic.


is a statistical test that is used to determine whether or not the variances between several groups are equal.

Many statistical tests (like a ) assume that variances are equal across samples. Bartlett’s test can be used to verify that assumption.

This test uses the following null and alternative :

H0: The variance among each group is equal.

HA: At least one group has a variance that is not equal to the rest.

The test statistic follows a Chi-Square distribution with k-1 degrees of freedom where k is the number of groups.

If the corresponding of the test statistic is less than some significance level (like α = .05) then we can reject the null hypothesis and conclude that not all groups have the same variance.

The following step-by-step example explains how to perform Bartlett’s test in Python.

Step 1: Create the Data

To determine if three different studying techniques lead to different exam scores, a professor randomly assigns 10 students to use each technique (Technique A, B, or C) for one week and then makes each student take an exam of equal difficulty. 

The exam scores of the 30 students are shown below:

#create data
A = [85, 86, 88, 75, 78, 94, 98, 79, 71, 80]
B = [91, 92, 93, 85, 87, 84, 82, 88, 95, 96]
C = [79, 78, 88, 94, 92, 85, 83, 85, 82, 81]

Step 2: Perform Bartlett’s Test

To perform Bartlett’s test, we can use the scipy.stats.bartlett() function.

Here’s how to use this function in our example:

import scipy.stats as stats

#perform Bartlett's test 
stats.bartlett(A, B, C)

BartlettResult(statistic=3.30243757, pvalue=0.191815983)

The test returns the following results:

  • Test statistic B: 3.3024
  • P-value: 0.1918

Since the p-value is not less than 0.05, the professor will fail to reject the null hypothesis. In other words, she doesn’t have sufficient evidence to say that the three groups have different variances.

Thus, she can proceed to perform the one-way ANOVA.

x