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 NA
values should be stripped before the computation proceeds.
consistency: logical indicating if the consistency correction factor (for the scale) should be applied.
mu0: the initial location estimate mu0, defaulting to the median.
sigma0: the initial scale estimate s0, defaulting to the MAD; may be set to a positive value when the MAD is zero.
mu.too: logical indicating if both location and scale should be returned or just the scale (when mu.too=FALSE as by default).
iter: positive integer or logical indicating if and how many iterations should be done. The default, iter = 1 computes the traditional tau-estimate of scale.
tol.iter: if iter is true, or iter > 1, stop the iterations when ∣sn−so∣≤ϵsn, where ϵ:=tol.iter, and so and sn are the previous and current estimates of σ.
Details
First, s0 := MAD, i.e. the equivalent of mad(x, constant=1) is computed. Robustness weights wi:=wc1((xi−med(X))/s0) are computed, where wc(u)=max(0,(1−(u/c)2)2). The robust location measure is defined as μ(X):=(∑iwixi)/(∑iwi), and the robust tau-estimate is c("s(X)2:=\n", "s02∗(1/n)sumirhoc2((xi−mu(X))/s0)"), where ρc(u)=min(c2,u2).
When iter=TRUE or iter > 1, the above estimate is iterated in a fixpoint iteration, setting s0 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.
Returns
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 s(x) or (m(x),s(x)).
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.
Author(s)
Original by Kjell Konis with substantial modifications by Martin Maechler.
See Also
Sn, Qn, mad; further covOGK for which scaleTau2 was designed.
Examples
x <- c(1:7,1000)sd(x)# non-robust std.deviationscaleTau2(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