Learn R Programming

robustbase (version 0.5-0-1)

lmrob: 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 variabl
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
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 i
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.

Value

  • An object of class lmrob. A list that includes the following components:
  • coefficientsThe MM-estimator of the coefficient vector
  • initial.coefficientsthe S-estimator
  • scaleThe scale as returned by S-estimator and used in the M one.
  • covThe estimated covariance matrix of the regression coefficients
  • residualsResiduals associated with the MM-estimator
  • fitted.valuesFitted values associated with the MM-estimator
  • weightsthe robustness weights $\psi(r_i/S) / (r_i/S)$.
  • convergedTRUE if the IRWLS iterations have converged

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).

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

Run this code
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))

Run the code above in your browser using DataLab