scaleTau2 {robustbase} | R Documentation |
Robust Tau-Estimate of Scale
Description
Computes the robust \tau
-estimate of univariate scale, as
proposed by Maronna and Zamar (2002); improved by a consistency factor,
Usage
scaleTau2(x, c1 = 4.5, c2 = 3.0, na.rm = FALSE, consistency = TRUE,
mu0 = median(x),
sigma0 = median(x.), mu.too = FALSE, iter = 1, tol.iter = 1e-7)
Arguments
x |
numeric vector |
c1 , c2 |
non-negative numbers, specifying cutoff values for the biweighting of the mean and the rho function respectively. |
na.rm |
a logical value indicating whether |
consistency |
logical indicating if the consistency correction factor (for the scale) should be applied. |
mu0 |
the initial location estimate |
sigma0 |
the initial scale estimate |
mu.too |
logical indicating if both location and scale should be
returned or just the scale (when |
iter |
positive integer or logical indicating if and how many
iterations should be done. The default, |
tol.iter |
if |
Details
First, s_0
:= MAD, i.e. the equivalent of mad(x,
constant=1)
is computed. Robustness weights
w_i := w_{c1}((x_i - med(X))/ s_0)
are computed, where
w_c(u) = max(0, (1 - (u/c)^2)^2)
. The robust location
measure is defined as \mu(X) := (\sum_i w_i x_i)/(\sum_i w_i)
,
and the robust \tau (tau)
-estimate is s(X)^2 :=
s_0^2 * (1/n) \sum_i \rho_{c2}((x_i - \mu(X))/s_0)
,
where \rho_c(u) = min(c^2, u^2)
.
When iter=TRUE
or iter > 1
, the above estimate is
iterated in a fixpoint iteration, setting s_0
to the current
estimate s(X)
and iterating until the number of iterations is
larger than iter
or the fixpoint is found in the sense that
\
scaleTau2(*, consistency=FALSE)
returns s(X)
, whereas
this value is divided by its asymptotic limit when consistency =
TRUE
as by default.
Note that for n = length(x) == 2
, all equivariant scale estimates are
proportional, and specifically, scaleTau2(x, consistency=FALSE)
== mad(x, constant=1)
. See also the reference.
Value
numeric vector of length one (if mu.too
is FALSE
as by
default) or two (when mu.too = TRUE
) with robust scale or
(location,scale) estimators
\hat\sigma(x)
or
(\hat\mu(x),\hat\sigma(x))
.
Author(s)
Original by Kjell Konis with substantial modifications by Martin Maechler.
References
Maronna, R.A. and Zamar, R.H. (2002) Robust estimates of location and dispersion of high-dimensional datasets; Technometrics 44(4), 307–317.
Yohai, V.J., and Zamar, R.H. (1988). High breakdown-point estimates of regression by means of the minimization of an efficient scale. Journal of the American Statistical Association 83, 406–413.
See Also
Sn
, Qn
, mad
;
further covOGK
for which scaleTau2
was designed.
Examples
x <- c(1:7, 1000)
sd(x) # non-robust std.deviation
scaleTau2(x)
scaleTau2(x, mu.too = TRUE)
(sI <- scaleTau2(c(x,Inf), mu.too = TRUE))
(sIN <- scaleTau2(c(x,Inf,NA), mu.too = TRUE, na.rm=TRUE))
stopifnot({
identical(sI, sIN)
all.equal(scaleTau2(c(x, 999), mu.too = TRUE), sIN,
tol = 1e-15)
})
if(doExtras <- robustbase:::doExtras()) {
set.seed(11)
## show how much faster this is, compared to Qn
x <- sample(c(rnorm(1e6), rt(5e5, df=3)))
(system.time(Qx <- Qn(x))) ## 2.04 [2017-09, lynne]
(system.time(S2x <- scaleTau2(x))) ## 0.25 (ditto)
cbind(Qn = Qx, sTau2 = S2x)
}## Qn sTau2
## 1.072556 1.071258