# bartlettTest > Compute Bartlett’s test for equal variances.
Bartlett's test is used to test the null hypothesis that the variances of k groups are equal against the alternative that at least two of them are different. For `k` groups each with `n_i` observations, the test statistic is
Equation for Bartlett's test statistic.
where `N` is the total number of observations, `S_i` are the biased group-level variances and `S^2` is a (biased) pooled estimate for the variance. Under the null hypothesis, the test statistic follows a _chi-square_ distribution with `df = k - 1` degrees of freedom.
## Usage ```javascript var bartlettTest = require( '@stdlib/stats/bartlett-test' ); ``` #### bartlettTest( a\[,b,...,k]\[, opts] ) For input arrays `a`, `b`, ... holding numeric observations, this function calculates Bartlett’s test, which tests the null hypothesis that the variances in all `k` groups are the same. ```javascript // Data from Hollander & Wolfe (1973), p. 116: var x = [ 2.9, 3.0, 2.5, 2.6, 3.2 ]; var y = [ 3.8, 2.7, 4.0, 2.4 ]; var z = [ 2.8, 3.4, 3.7, 2.2, 2.0 ]; var out = bartlettTest( x, y, z ); /* returns { 'rejected': false, 'alpha': 0.05, 'df': 2, 'pValue': ~0.573, 'statistic': ~1.112, ... } */ ``` The function accepts the following `options`: - **alpha**: `number` in the interval `[0,1]` giving the significance level of the hypothesis test. Default: `0.05`. - **groups**: an `array` of group indicators. If set, the function assumes that only a single numeric array is provided holding all observations. By default, the test is carried out at a significance level of `0.05`. To choose a custom significance level, set the `alpha` option. ```javascript var x = [ 2.9, 3.0, 2.5, 2.6, 3.2 ]; var y = [ 3.8, 2.7, 4.0, 2.4 ]; var z = [ 2.8, 3.4, 3.7, 2.2, 2.0 ]; var out = bartlettTest( x, y, z, { 'alpha': 0.01 }); /* returns { 'rejected': false, 'alpha': 0.01, 'df': 2, 'pValue': ~0.573, 'statistic': ~1.112, ... } */ ``` The function provides an alternate interface by supplying an array of group indicators to the `groups` option. In this case, it is assumed that only a single numeric array holding all observations is provided to the function. ```javascript var arr = [ 2.9, 3.0, 2.5, 2.6, 3.2, 3.8, 2.7, 4.0, 2.4, 2.8, 3.4, 3.7, 2.2, 2.0 ]; var groups = [ 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'c', 'c', 'c', 'c', 'c' ]; var out = bartlettTest( arr, { 'groups': groups }); ``` The returned object comes with a `.print()` method which when invoked will print a formatted output of the results of the hypothesis test. `print` accepts a `digits` option that controls the number of decimal digits displayed for the outputs and a `decision` option, which when set to `false` will hide the test decision. ```javascript var x = [ 2.9, 3.0, 2.5, 2.6, 3.2 ]; var y = [ 3.8, 2.7, 4.0, 2.4 ]; var z = [ 2.8, 3.4, 3.7, 2.2, 2.0 ]; var out = bartlettTest( x, y, z ); console.log( out.print() ); /* => Bartlett's test of equal variances Null hypothesis: The variances in all groups are the same. pValue: 0.5735 statistic: 1.1122 df: 2 Test Decision: Fail to reject null in favor of alternative at 5% significance level */ ```
## Examples ```javascript var bartlettTest = require( '@stdlib/stats/bartlett-test' ); // Data from Hollander & Wolfe (1973), p. 116: var x = [ 2.9, 3.0, 2.5, 2.6, 3.2 ]; var y = [ 3.8, 2.7, 4.0, 2.4 ]; var z = [ 2.8, 3.4, 3.7, 2.2, 2.0 ]; var out = bartlettTest( x, y, z ); /* returns { 'rejected': false, 'alpha': 0.05, 'df': 2, 'pValue': ~0.573, 'statistic': ~1.112, ... } */ var table = out.print(); /* returns Bartlett's test of equal variances Null hypothesis: The variances in all groups are the same. pValue: 0.5735 statistic: 1.1122 df: 2 Test Decision: Fail to reject null in favor of alternative at 5% significance level */ ```