lmrob, the MM-type regression
estimator and the associated S-, M- and D-estimators. Using
setting="KS2011" sets the defaults as suggested by
Koller and Stahel (2011).lmrob.control(setting, seed = NULL, nResample = 500,
tuning.chi = NULL, bb = 0.5, tuning.psi = NULL,
max.it = 50, groups = 5, n.group = 400,
k.fast.s = 1, best.r.s = 2,
k.max = 200, maxit.scale = 200, k.m_s = 20,
refine.tol = 1e-7, rel.tol = 1e-7, solve.tol = 1e-7,
trace.lev = 0,
mts = 1000, subsampling = c("nonsingular", "simple"),
compute.rd = FALSE, method = 'MM',
psi = c('bisquare', 'lqq', 'welsh', 'optimal', 'hampel', 'ggw'),
numpoints = 10, cov = NULL,
split.type = c("f", "fi", "fii"), fast.s.large.n = 2000, ...)"KS2011" for the defaults
suggested by Koller and Stahel (2011). See Details.NULL or an integer vector compatible with
.Random.seed: the seed to be used for random
re-sampling used in obtaining candidates for the initial
S-estimator. The current value NULL, as by default, sensible defaults are set (depending on
psi) to yield a 50% breakdown estimator. See Details.tuning.chi. This is used to compute the
S-estimator.NULL, as by default, this is set (depending
on psi) to yield an estimator with asymptotic efficiency of
95% for normal errors. See Details.groups above. Note that this must be at least $p$.find_scale() iterations.solve.default()'s tol.trace.lev = 0 does
no tracing.simple for simple
subsampling (default prior to version 0.9), nonsingular for
nonsingular subsampling. See lmrob.S.covMcd) are to be
computed for the robust diagnostic plots. This may take some
time to finish, particularly fMM
is interpreted as SM. See Details of
lmrob for a description of the possible values.lmrob. Defaults to
"bisquare" for S and MM-estimates, otherwise "lqq".if(method %in% c('SM', 'MM')) ".vcov.avar1" else ".vcov.w".
See Details of lmrosplitFrame.list
components to the result.list with over twenty components, corresponding
to the arguments, where tuning.psi and tuning.chi are
typically computed, see above.setting="KS2011" alters the default
arguments. They are changed to method = 'SMDM', psi = 'lqq',
max.it = 500, k.max = 2000, cov = '.vcov.w'. The defaults of all
the remaining arguments are not changed. By default, tuning.chi and tuning.psi are set to
yield an MM-estimate with break-down point $0.5$ and efficiency of
$95%$ at the normal. They are:
psi tuning.chi tuning.psi
bisquare 1.54764 4.685061
welsh 0.5773502 2.11
ggw c(-0.5, 1.5, NA, 0.5) c(-0.5, 1.5, 0.95, NA)
lqq c(-0.5, 1.5, NA, 0.5) c(-0.5, 1.5, 0.95, NA)
optimal 0.4047 1.060158
hampel c(1.5, 3.5, 8)*0.2119163 c(1.5, 3.5, 8)*0.9014
}
The values for the tuning constant for the ggw psi function are
hard coded. The constants vector has four elements: minimal slope, b
(controlling the bend at the maximum of the curve), efficiency,
break-down point. Use NA for an unspecified value, see examples
in the tables.
The constants for the hampel psi function are chosen to have a
redescending slope of $-1/3$. Constants for a slope of $-1/2$
would be
psi tuning.chi tuning.psi
hampel c(2, 4, 8) * 0.1981319 c(2, 4, 8) * 0.690794
}
Alternative coefficients for an efficiency of $85%$ at the normal
are given in the table below.
psi tuning.psi
bisquare 3.443689
welsh 1.456
ggw, lqq c(-0.5, 1.5, 0.85, NA)
optimal 0.8684
hampel (-1/3) c(1.5, 3.5, 8)* 0.5704545
hampel (-1/2) c( 2, 4, 8) * 0.4769578
}
lmrob, also for references and examples.## Show the default settings:
str(lmrob.control())
## Artificial data for a simple "robust t test":
set.seed(17)
y <- y0 <- rnorm(200)
y[sample(200,20)] <- 100*rnorm(20)
gr <- as.factor(rbinom(200, 1, prob = 1/8))
lmrob(y0 ~ 0+gr)
## Use Koller & Stahel(2011)'s recommendation but a larger 'max.it':
str(ctrl <- lmrob.control("KS2011", max.it = 1000))Run the code above in your browser using DataLab