Skip to content

Perform Levene's test for equality of variances

Source: man/performLeveneTest.Rd · Help: ?performLeveneTest

Tests equality of variances across groups using residuals from a linear model.

Usage

performLeveneTest(model, data = NULL, group)

Arguments

model
an object of class lm.
data
The data frame model was fitted to, or NULL, the default. The residuals and weights are read from the fit itself, and group from the rows of data that hold the observations of the fit; the observations whose group is missing are left out, with a warning. Without data it is read from the model frame of model, which holds it only when it is a variable of the model under its own name (x, not log(x)); a grouping variable the model does not use needs data. Since 0.16.0, data that are given are matched to the observations of the fit: rows with row names of their own by name, in any order; rows that only number themselves (a tibble, a data.table, a data frame whose row names were reset) by the row numbers of the fit, or in the order of the fit when they hold one row per observation. The rows the fit dropped may be there or not. Data whose rows cannot be shown to hold the observations of the fit are refused; see test_results.
group
name of the grouping variable.

Value

An object of class htest containing the F statistic, p-value and degrees of freedom.

Details

Absolute deviations from group means are analyzed via a one-way ANOVA. The resulting \(F\) statistic has \(k-1\) and \(N-k\) degrees of freedom under the null of equal variances.

Supported models

It accepts an lm and a glm with the Gaussian family and the identity link, unweighted or with positive weights, a fitWLS() fit and, since 0.16.0, a rank-deficient fit, which it tests on the estimable part of its design: it gives the value of the same model fitted without the aliased columns. It refuses a glm of another family or link, a survey::svyglm() fit, a fit with a zero weight, a coefficient that is not finite for another reason, and data that lack rows or variables of the fit. It refuses a multivariate lm ("needs a model with one response"), since 0.16.0; before, it stopped with a coercion error. An mgcv::gam() fit is tested as before 0.16.0, with penalised smooth terms too: the test reads its residuals and does not fit it again, so it does not take them for least-squares residuals (decision 37 of the design of the model context); since 0.16.0 its observations are matched to the rows of data by the row names of its model frame. Before, they were matched by position, since the residuals of a gam carry no names, and data with the rows of the fit in another order gave a wrong value. Which model each test accepts, and why, is set out in test_results, under Supported models.

References

Levene, H. (1960). Robust tests for equality of variances. In Contributions to Probability and Statistics (pp. 278–292). Stanford University Press.

Brown, M. B., & Forsythe, A. B. (1974). Robust tests for the equality of variances. Journal of the American Statistical Association, 69(346), 364–367. doi:10.1080/01621459.1974.10482955

Examples

 data(mtcars)
 mtcars$cyl <- factor(mtcars$cyl)
 m <- lm(mpg ~ wt, data = mtcars)
 performLeveneTest(m, mtcars, "cyl")