Skip to content

Perform Engle's ARCH LM test

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

Regresses squared residuals on their lags to detect ARCH effects.

Usage

performArchLMTest(model, data = NULL, lags = 1)

Arguments

model
an object of class lm.
data
optional data frame the model was fitted to. When NULL, the default, the model frame of model is used. The statistic is computed from the residuals of model, so data does not change the result; it is accepted so that every test takes (model, data, ...). Before 0.15.0 the second argument was lags: a number passed there by position is still read as lags, with a warning that shows the new call; that form stops working in 1.0.0.
lags
number of lags to include.

Value

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

Details

The statistic is \(n R^2\) from an auxiliary regression of \(e_t^2\) on its lagged values, where \(R^2\) is the coefficient of determination. Under the null of no ARCH effects it follows a chi-square distribution with degrees of freedom equal to the number of lags.

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. Since 0.16.0 it is built on the model context, and also refuses a multivariate lm ("needs a model with one response"), a fit whose coefficients, residuals or weights were changed after the fit, and a fit with model = FALSE whose model frame, rebuilt from the data it was fitted to, no longer holds its response, because those data changed after the fit, with or without data. A fit with model = FALSE whose data are gone is tested on data that give its response and fitted values, and refused without them. The test reads nothing from data, and since 0.16.0 matches it to the observations of the fit as every test does: data with row names of their own in any order, data that number their rows (a tibble, a data.table) in the order of the fit; other numbered data, rows in front of those of the fit and repeated row names are refused, where it gave the value of the fit. Which model each test accepts, and why, is set out in test_results, under Supported models.

References

Engle, R. F. (1982). Autoregressive conditional heteroskedasticity with estimates of the variance of United Kingdom inflation. Econometrica, 50(4), 987–1007. doi:10.2307/1912773

Hamilton, J. D. (1994). Time Series Analysis. Princeton University Press.

Examples

 data(mtcars)
 m <- lm(mpg ~ wt + qsec, data = mtcars)
 performArchLMTest(m, lags = 2)