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) and analogously for "KS2014"
.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 = "bisquare",
numpoints = 10, cov = NULL,
split.type = c("f", "fi", "fii"), fast.s.large.n = 2000,
eps.outlier = function(nobs) 0.1 / nobs,
eps.x = function(maxx) .Machine$double.eps^(.75)*maxx,
compute.outlier.stats = method,
warn.limit.reject = 0.5,
warn.limit.meanrw = 0.5, ...).Mchi.tuning.defaults
.Mchi.tuning.default(psi)
.Mpsi.tuning.defaults
.Mpsi.tuning.default(psi)
"KS2011"
or "KS2014"
for the defaults suggested by Koller and Stahel (2011, 2014).
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 also
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 lmro
splitFrame
.summary.lmro
character
strings, each valid to be used as method
argument. Used to
specify for which estimators outlier statistics (and warnings)
should be produced. Set to empty stNULL
to disable warning.NULL
to disable warning.list
components to the result, e.g., those to be used in .vcov.w()
..Mchi.tuning.default(psi)
and .Mpsi.tuning.default(psi)
return a short numeric
vector of tuning constants which
are defaults for the corresponding psi-function, see the Details.
They are based on the named list
s
.Mchi.tuning.defaults
and .Mpsi.tuning.defaults
,
respectively. lmrob.control()
returns a named list
with over
twenty components, corresponding to the arguments, where
tuning.psi
and tuning.chi
are typically computed, as
.Mpsi.tuning.default(psi)
or .Mchi.tuning.default(psi)
,
respectively.
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. The option setting="KS2014"
builds upon setting="KS2011"
.
More arguments are changed to best.r.s = 20, k.fast.s = 2,
nResample = 1000
. This setting should produce more stable estimates
for designs with factor
s.
By default, and in .Mpsi.tuning.default()
and .Mchi.tuning.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.
To get these defaults, e.g., .Mpsi.tuning.default(psi)
is
equivalent to but more efficient than the formerly widely used
lmrob.control(psi = psi)$tuning.psi
.
These defaults 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
}
Koller, M. and Stahel, W.A. (2014) Nonsingular subsampling for regression S~estimators with categorical predictors. Under review.
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))
str(.Mpsi.tuning.defaults)
stopifnot(identical(.Mpsi.tuning.defaults,
sapply(names(.Mpsi.tuning.defaults),
.Mpsi.tuning.default)))
Run the code above in your browser using DataLab