This function implements the residual maximum likelihood test of Verbyla93;textualskedastic for testing for heteroskedasticity in a linear regression model.
verbyla(mainlm, auxdesign = NA, statonly = FALSE)
Either an object of class
"lm"
(e.g., generated by lm
), or
a list of two objects: a response vector and a design matrix. The objects
are assumed to be in that order, unless they are given the names
"X"
and "y"
to distinguish them. The design matrix passed
in a list must begin with a column of ones if an intercept is to be
included in the linear model. The design matrix passed in a list should
not contain factors, as all columns are treated 'as is'. For tests that
use ordinary least squares residuals, one can also pass a vector of
residuals in the list, which should either be the third object or be
named "e"
.
A data.frame
or
matrix
representing an auxiliary design matrix of
containing exogenous variables that (under alternative hypothesis) are
related to error variance, or a character "fitted.values" indicating
that the fitted \(\hat{y}_i\) values from OLS should be used.
If set to NA
(the default), the
design matrix of the original regression model is used. An intercept
is included in the auxiliary regression even if the first column of
auxdesign
is not a vector of ones.
A logical. If TRUE
, only the test statistic value
is returned, instead of an object of class
"htest"
. Defaults to FALSE
.
An object of class
"htest"
. If object is
not assigned, its attributes are displayed in the console as a
tibble
using tidy
.
Verbyla's Test entails fitting a generalised auxiliary regression model in which the response variable is the vector of standardised squared residuals \(e_i^2/\hat{\sigma}^2\) from the original OLS model and the design matrix is some function of \(Z\), an \(n \times q\) matrix consisting of \(q\) exogenous variables, appended to a column of ones. The test statistic is half the residual sum of squares from this generalised auxiliary regression. Under the null hypothesis of homoskedasticity, the distribution of the test statistic is asymptotically chi-squared with \(q\) degrees of freedom. The test is right-tailed.
# NOT RUN {
mtcars_lm <- lm(mpg ~ wt + qsec + am, data = mtcars)
verbyla(mtcars_lm)
verbyla(mtcars_lm, auxdesign = "fitted.values")
# }
Run the code above in your browser using DataLab