lmrob {robustbase} | R Documentation |
Computes fast MM-estimators for linear (regression) models.
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(...), ...)
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 NA s. 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 . |
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).
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 |
Matias Salibian-Barrera
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.
lmrob.control
;
for the algorithms lmrob.S
and lmrob.fit.MM
;
and for methods,
summary.lmrob
,
print.lmrob
, and plot.lmrob
.
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))