psi.findc {robustbase}R Documentation

Find Tuning Constant(s) for "lqq" and "ggw" Psi Functions

Description

Find psi function tuning constant sets for "LQQ" and "GGW" psi (ψ) functions by specifying largest descent (minimal slope), efficiency and or breakdown point.

.psi.const() is called from lmrob.control() to set the tuning constants for psi and chi for "LQQ" and "GGW" psi. Unless the specified tuning constants are from fixed small set where the computations are stored precomputed, .psi.const() calls the corresponding .psi.<psi>.findc().

Usage

.psi.ggw.findc(ms, b, eff = NA, bp = NA,
               subdivisions = 100L,
               rel.tol = .Machine$double.eps^0.25, abs.tol = rel.tol,
               tol = .Machine$double.eps^0.25, ms.tol = tol/64, maxiter = 1000)

.psi.lqq.findc(ms, b.c, eff = NA, bp = NA,
               interval = c(0.1, 4), subdivisions = 100L,
               rel.tol = .Machine$double.eps^0.25, abs.tol = rel.tol,
               tol = .Machine$double.eps^0.25, maxiter = 1000)
.psi.const(cc, psi)

Arguments

ms

number, the minimal slope, typically negative.

b, b.c

number, specifying b or b/c for "ggw" or "lqq" respectively.

eff

a number (or NA), the desired efficiency, in [0,1] of the estimator. If NA, bp must be specified as valid number.

bp

a number (or NA), the desired breakdown point of the estimator, in [0,1].

interval

for finding c via uniroot().

subdivisions

passed to integrate().

rel.tol, abs.tol

relative and absolute tolerance for integrate().

tol

relative tolerance for uniroot().

ms.tol

relative tolerance for the internal .psi.ggw.finda(), eventually passed to optimize inside (internal) .psi.ggw.mxs().

maxiter

maximal number of iterations for uniroot().

cc

(for .psi.const():) numeric vector of length 4, containing all constants c(ms, b*, eff, bp), where b* = b for "ggw" and b* = b.c for "lqq", and one of (eff, bp) is NA.

psi

a string, either "ggw" or "lqq".

Value

a numeric vector of constants, for "lqq" or "ggw" psi functions, respectively:

"lqq":

(b, c, s) = (b/c * c, c, s = 1 - min_slope),

"ggw":

(0, a, b, c, rho(Inf)).

Author(s)

Manuel Koller (original) and Martin Maechler (arguments, export, docs).

References

See the vignette about “psi-Functions Available in Robustbase”.

See Also

Mpsi() etc for the psi function definitions; .Mpsi.tuning.defaults, etc, for tuning constants' defaults for lmrob().

Examples

(c.ge95 <- .psi.ggw.findc(ms = -.5, b = 1.5, eff = 0.95))
(c.ge90 <- .psi.ggw.findc(ms = -.5, b = 1.5, eff = 0.90))
(c.gb50 <- .psi.ggw.findc(ms = -.5, b = 1.5,  bp = 0.50))
stopifnot(all.equal(c.ge95, c(0, 1.386362,   1.5, 1.0628199,  4.7773893), tol = 1e-5),
          all.equal(c.ge90, c(0, 1.0282811,  1.5, 0.87086259, 3.2075233), tol = 1e-5),
          all.equal(c.gb50, c(0, 0.20367394, 1.5, 0.29591308, 0.37033962),tol = 1e-5))

(cl.e.95 <- .psi.lqq.findc(ms = -.5, b.c = 1.5, eff = .95))
(cl.b.50 <- .psi.lqq.findc(ms = -.5, b.c = 1.5,  bp = .50))
stopifnot(all.equal(cl.e.95, c(1.4734061,  0.98227073, 1.5), tol = 1e-5),
          all.equal(cl.b.50, c(0.40154568, 0.26769712, 1.5), tol = 1e-5))

[Package robustbase version 0.92-8 Index]