Learn R Programming

robustbase (version 0.7-6)

lmrob: MM-type Estimators for Linear Regression

Description

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

Usage

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

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
method
string specifying the estimator-chain. MM is interpreted as SM. See Details.
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 estimate of the coefficient vector
  • init.SThe list returned by lmrob.S (for MM-estimates only
  • initA similar list that contains the results of intermediate estimates (not for MM-estimates).
  • scaleThe scale as used in the M estimator.
  • covThe estimated covariance matrix of the regression coefficients
  • residualsResiduals associated with the estimator
  • fitted.valuesFitted values associated with the estimator
  • weightsthe robustness weights $\psi(r_i/S) / (r_i/S)$.
  • convergedTRUE if the IRWLS iterations have converged

Details

This function computes an MM-type regression estimator as described in Yohai (1987) and Koller and Stahel (2011). By default it uses a bi-square re-desceding score function, and 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(). The argument setting of lmrob.control is provided to set alternative defaults as suggested in Koller and Stahel (2011) (use setting='KS2011'). For details, see lmrob.control. As initial estimator it uses an S-estimator (Rousseeuw and Yohai, 1984) which is computed using the Fast-S algorithm of Salibian-Barrera and Yohai (2006), calling the function lmrob.S. The following chain of estimates is customizable via the method argument of lmrob.control. There are currently two types of estimates available: M and D. The first corresponds to the standard M-regression estimate. D stands for the Design Adaptive Scale estimate as proposed in Koller and Stahel (2011). The method argument takes a string that specifies the estimates to be calculated as a chain. Setting method='SMDM' will result in an intial S-estimate, followed by an M-estimate, a Design Adaptive Scale estimate and a final M-step. For methods involving a D-step, the default psi value of psi is changed to lqq. By default, standard errors are computed using the formulas of Croux, Dhaene and Hoorelbeke (2003) (lmrob.control option cov=".vcov.avar1"). This method, however, works only for MM-estimates. For other method arguments, the covariance matrix estimate used is based on the asymptotic normality of the estimated coefficients (cov=".vcov.w") as described in Koller and Stahel (2011).

References

Croux, C., Dhaene, G. and Hoorelbeke, D. (2003) Robust standard errors for robust estimators, Discussion Papers Series 03.16, K.U. Leuven, CES. Koller, M. and Stahel, W.A. (2011), Sharpening Wald-type inference in robust regression for small samples, Computational Statistics & Data Analysis 55(8), 2504--2515. 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, 15(2), 414--427. 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; and for methods, predict.lmrob, summary.lmrob, print.lmrob, and plot.lmrob.

Examples

Run this code
data(coleman)
summary( m1 <- lmrob(Y ~ ., data=coleman) )
summary( m2 <- lmrob(Y ~ ., data=coleman, setting = 'KS2011') )

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