See the references for more.
Qn(x, constant = 2.21914, finite.corr = missing(constant))
s_Qn(x, mu.too = FALSE, ...)
1 / (sqrt(2) * qnorm(5/8))
(as mentioned
already on p.1277, after (3.7) in Rousseeuw and Croux (1993)). If you need the old slightly off version for historical
reproducibility, you can use Qn.old()
.
Note that the relative difference is only about 1 in 1000, and that the correction should not affect the finite sample corrections for $n
TRUE
unless
constant
is specified.median(x)
should
also be returned for s_Qn()
.s_Qn()
passed to
Qn()
.Qn()
returns a number, the $Qn$ robust scale
estimator, scaled to be consistent for $\sigma^2$ and
i.i.d. Gaussian observatsions, optionally bias corrected for finite
samples.s_Qn(x, mu.too=TRUE)
returns a length-2 vector with location
($\mu$) and scale; this is typically only useful for
covOGK(*, sigmamu = s_Qn)
.
Christophe Croux and Peter J. Rousseeuw (1992) Time-Efficient Algorithms for Two Highly Robust Estimators of Scale, Computational Statistics, Vol. 1, ed. Dodge and Whittaker, Physica-Verlag Heidelberg, 411--428; available via Springer Link.
About the typo in the constant
:
Christophe Croux (2010)
Private e-mail, Fri Jul 16, w/ Subject
Re: Slight inaccuracy of Qn implementation .......
mad
for the most robust but much less efficient
scale estimator; Sn
for a similar faster but less
efficient alternative. Finally, scaleTau2
which some
consider uniformly better than Qn or competitors.
set.seed(153)
x <- sort(c(rnorm(80), rt(20, df = 1)))
s_Qn(x, mu.too = TRUE)
Qn(x, finite.corr = FALSE)
Run the code above in your browser using DataLab