lmrob..M..fit {robustbase} | R Documentation |
This function performs RWLS iterations to find an
M-estimator of regression with Tukey's bisquare psi-function. When
started from an S-estimated beta.initial
, this results in an
MM-estimator.
lmrob..M..fit(x, y, beta.initial, scale, c.psi, control)
x |
design matrix (n x p) typically including a
column of 1 s for the intercept. |
y |
numeric response vector (of length n). |
beta.initial |
numeric vector (of length p) of initial estimate. Usually the result of an S-regression estimator. |
scale |
robust residual scale estimate. Usually an S-scale estimator. |
c.psi |
the tuning constant of the psi / psi-function of the M-estimator used. |
control |
list of control parameters, as returned
by lmrob.control . Currently, only the components
c("max.it", "rel.tol","trace.lev") are accessed. |
This function is used by lmrob.fit.MM
and typically not to be used on its own.
A list with the following elements:
coef |
the M-estimator (or MM-estim.) of regression |
control |
the control list input used |
scale |
The residual scale estimate |
seed |
The random number generator seed |
converged |
TRUE if the RWLS iterations converged,
FALSE otherwise |
Matias Salibian-Barrera and Martin Maechler
Yohai, 1987
lmrob.fit.MM
, lmrob
;
for M-estimators with more flexibility, e.g., choice of rho/psi:
rlm
from package MASS.
data(stackloss) X <- model.matrix(stack.loss ~ . , data = stackloss) y <- stack.loss ## Compute manual MM-estimate: ## 1) initial LTS: m0 <- ltsReg(X[,-1], y) ## 2) M-estimate started from LTS: m1 <- lmrob..M..fit(X, y, beta.initial = coef(m0), scale = m0$scale, c.psi = 1.6, control = lmrob.control()) cbind(m0$coef, m1$coef) ## the scale is kept fixed: stopifnot(identical(unname(m0$scale), m1$scale)) ## robustness weights: are r.s <- with(m1, resid/scale) # scaled residuals m1.wts <- robustbase:::tukeyPsi1(r.s, cc = 1.6) / r.s summarizeRobWeights(m1.wts) ##--> outliers 1,3,4,13,21 which(m0$lts.wt == 0) # 1,3,4,21 but not 13