lmrob {robustbase}R Documentation

MM-Estimators for Linear Regression

Description

Computes fast MM-estimators for linear (regression) models.

Usage

lmrob(formula, data, subset, weights, na.action,
      model = TRUE, x = !control$compute.rd, y = FALSE, singular.ok = TRUE,
      contrasts = NULL, offset = NULL, control = lmrob.control(...), ...)

Arguments

formula a symbolic description of the model to be fit. See lm and formula for more details.
data an optional data frame, list or environment (or object coercible by as.data.frame to a data frame) containing the variables in the model. If not found in data, the variables are taken from environment(formula), typically the environment from which lmrob is called.
subset an optional vector specifying a subset of observations to be used in the fitting process.
weights an optional vector of weights to be used in the fitting process.
na.action a function which indicates what should happen when the data contain NAs. The default is set by the na.action setting of options, and is na.fail if that is unset. The “factory-fresh” default is na.omit. Another possible value is NULL, no action. Value na.exclude can be useful.
model, x, y logicals. If TRUE the corresponding components of the fit (the model frame, the model matrix, the response) are returned.
singular.ok logical. If FALSE (the default in S but not in R) a singular fit is an error.
contrasts an optional list. See the contrasts.arg of model.matrix.default.
offset this can be used to specify an a priori known component to be included in the linear predictor during fitting. An offset term can be included in the formula instead or as well, and if both are specified their sum is used.
control a list specifying control parameters; use the function lmrob.control(.) and see its help page.
... can be used to specify control parameters directly instead of via control.

Details

This function computes an MM-regression estimator as described in Yohai (1987). It uses a bi-square re-desceding score function, and by default it returns a highly robust and highly efficient estimator (with 50% breakdown point and 95% asymptotic efficiency for normal errors). The computation is carried out by a call to lmrob.fit.MM().

It uses an S-estimator (Rousseeuw and Yohai, 1984) for the errors which is also computed with a bi-square score function. The S-estimator is computed using the Fast-S algorithm of Salibian-Barrera and Yohai (2006), calling the function lmrob.S.

Standard errors are computed using the formulas of Croux, Dhaene and Hoorelbeke (2003).

Value

An object of class lmrob. A list that includes the following components:

coefficients The MM-estimator of the coefficient vector
initial.coefficients the S-estimator
scale The scale as returned by S-estimator and used in the M one.
cov The estimated covariance matrix of the regression coefficients
residuals Residuals associated with the MM-estimator
fitted.values Fitted values associated with the MM-estimator
weights the “robustness weights” psi(r_i/S) / (r_i/S).
converged TRUE if the IRWLS iterations have converged

Author(s)

Matias Salibian-Barrera

References

Croux, C., Dhaene, G. and Hoorelbeke, D. (2003) Robust standard errors for robust estimators, Discussion Papers Series 03.16, K.U. Leuven, CES.

Rousseeuw, P.J. and Yohai, V.J. (1984) Robust regression by means of S-estimators, In Robust and Nonlinear Time Series, J. Franke, W. H"ardle and R. D. Martin (eds.). Lectures Notes in Statistics 26, 256–272, Springer Verlag, New York.

Salibian-Barrera, M. and Yohai, V.J. (2006) A fast algorithm for S-regression estimates, Journal of Computational and Graphical Statistics, in press.

Yohai, V.J. (1987) High breakdown-point and high efficiency estimates for regression. The Annals of Statistics 15, 642–65.

See Also

lmrob.control; for the algorithms lmrob.S and lmrob.fit.MM; and for methods, summary.lmrob, print.lmrob, and plot.lmrob.

Examples

data(coleman)
summary( m1 <- lmrob(Y ~ ., data=coleman) )

data(starsCYG, package = "robustbase")
## Plot simple data and fitted lines
plot(starsCYG)
 lmST <-    lm(log.light ~ log.Te, data = starsCYG)
(RlmST <- lmrob(log.light ~ log.Te, data = starsCYG))
abline(lmST, col = "red")
abline(RlmST, col = "blue")
summary(RlmST)
vcov(RlmST)
stopifnot(all.equal(fitted(RlmST),
                    predict(RlmST, newdata = starsCYG),
                    tol = 1e-14))

[Package robustbase version 0.4-3 Index]