Function Reference: vartestn

statistics: vartestn (x)
statistics: vartestn (x, group)
statistics: vartestn (…, name, value)
statistics: p = vartestn (…)
statistics: [p, stats] = vartestn (…)
statistics: [p, stats] = vartestn (…, name, value)

Test for equal variances across multiple groups.

h = vartestn (x) performs Bartlett’s test for equal variances for the columns of the matrix x. This is a test of the null hypothesis that the columns of x come from normal distributions with the same variance, against the alternative that they come from normal distributions with different variances. The result is displayed in a summary table of statistics as well as a box plot of the groups.

vartestn (x, group) requires a vector x, and a group argument that is a categorical variable, vector, string array, or cell array of strings with one row for each element of x. Values of x corresponding to the same value of group are placed in the same group.

vartestn treats NaNs as missing values, and ignores them.

p = vartestn (…) returns the probability of observing the given result, or one more extreme, by chance under the null hypothesis that all groups have equal variances. Small values of p cast doubt on the validity of the null hypothesis.

[p, stats] = vartestn (…) returns a structure with the following fields:

chistat– the value of the test statistic
df– the degrees of freedom of the test

[p, stats] = vartestn (…, name, value) specifies one or more of the following name/value pairs:

"display""on" to display a boxplot and table, or "off" to omit these displays. Default "on".
"testtype"One of the following strings to control the type of test to perform
"Bartlett"Bartlett’s test (default).
"LeveneQuadratic"Levene’s test computed by performing anova on the squared deviations of the data values from their group means.
"LeveneAbsolute"Levene’s test computed by performing anova on the absolute deviations of the data values from their group means.
"BrownForsythe"Brown-Forsythe test computed by performing anova on the absolute deviations of the data values from the group medians.
"OBrien"O’Brien’s modification of Levene’s test with W=0.5.

The classical Bartlett’s test is sensitive to the assumption that the distribution in each group is normal. The other test types are more robust to non-normal distributions, especially ones prone to outliers. For these tests, the STATS output structure has a field named fstat containing the test statistic, and df1 and df2 containing its numerator and denominator degrees of freedom.

See also: vartest, vartest2, anova1, bartlett_test, levene_test

Source Code: vartestn

Example: 1

 

 ## Test the null hypothesis that the variances are equal across the five
 ## columns of data in the students’ exam grades matrix, grades.

 load examgrades
 vartestn (grades)


                    Group Summary Table

Group                        Count        Mean       Std Dev
------------------------------------------------------------
1                            120        75.0083     8.720203
2                            120        74.9917     6.542037
3                            120        74.9917     7.430910
4                            120        75.0333     8.601283
5                            120        74.9917     5.258839
Pooled Groups                600        75.0033     7.310655
Pooled valid Groups          600        75.0083     8.720203

Bartlett's statistic             38.73324
Degrees of Freedom               4
p-value                          0.000000

ans = 7.9086e-08
                    
plotted figure

Example: 2

 

 ## Test the null hypothesis that the variances in miles per gallon (MPG) are
 ## equal across different model years.

 load carsmall
 vartestn (MPG, Model_Year)


                    Group Summary Table

Group                        Count        Mean       Std Dev
------------------------------------------------------------
70                            29        17.6897     5.339231
76                            34        21.5735     5.889297
82                            31        31.7097     5.392548
Pooled Groups                 94        23.6576     5.540359
Pooled valid Groups           87        17.6897     5.339231

Bartlett's statistic             0.36619
Degrees of Freedom               2
p-value                          0.832687

ans = 0.8327
                    
plotted figure

Example: 3

 

 ## Use Levene’s test to test the null hypothesis that the variances in miles
 ## per gallon (MPG) are equal across different model years.

 load carsmall
 p = vartestn (MPG, Model_Year, "TestType", "LeveneAbsolute")


                    Group Summary Table

Group                        Count        Mean       Std Dev
------------------------------------------------------------
70                            29        17.6897     5.339231
76                            34        21.5735     5.889297
82                            31        31.7097     5.392548
Pooled Groups                 94        23.6576     5.540359
Pooled valid Groups         2958        23.7181     5.555774

Levene's statistic (absolute)    0.46126
Degrees of Freedom               2,  91
p-value                          0.631954

p = 0.6320
                    
plotted figure

Example: 4

 

 ## Test the null hypothesis that the variances are equal across the five
 ## columns of data in the students’ exam grades matrix, grades, using the
 ## Brown-Forsythe test.  Suppress the display of the summary table of
 ## statistics and the box plot.

 load examgrades
 [p, stats] = vartestn (grades, "TestType", "BrownForsythe", "Display", "off")

p = 1.3121e-06
stats =

  scalar structure containing the fields:

    fstat = 8.4160
    df =

         4   595