vartestn
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 . |
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
## 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 |
## 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 |
## 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 |
## 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 |