Robust Location-Free Scale Estimate More Efficient than MAD
Compute the robust scale estimator Qn, an efficient alternative to the MAD.
See the references for more.
Qn(x, constant = 2.21914, finite.corr = missing(constant)) s_Qn(x, mu.too = FALSE, ...)
x |
numeric vector of observations. |
constant |
number by which the result is multiplied; the default
achieves consistency for normally distributed data. Note that until
Nov. 2010, “thanks” to a typo in the very first papers, a slightly
wrong default constant, 2.2219, was used instead of the correct one
which is equal to If you need the old slightly off version for historical
reproducibility, you can use Note that the relative difference is only about 1 in 1000, and that the correction should not affect the finite sample corrections for n <= 9. |
finite.corr |
logical indicating if the finite sample bias
correction factor should be applied. Defaults to |
mu.too |
logical indicating if the |
... |
potentially further arguments for |
As the (default, consistency) constant needed to be corrected, the finite sample correction has been based on a much more extensive simulation, and on a 3rd or 4th degree polynomial model in 1/n for odd or even n, respectively.
Qn()
returns a number, the Qn robust scale
estimator, scaled to be consistent for σ^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
(μ) and scale; this is typically only useful for
covOGK(*, sigmamu = s_Qn)
.
Original Fortran code:
Christophe Croux and Peter Rousseeuw rousse@wins.uia.ac.be.
Port to C and R: Martin Maechler, maechler@R-project.org
Rousseeuw, P.J. and Croux, C. (1993) Alternatives to the Median Absolute Deviation, Journal of the American Statistical Association 88, 1273–1283.
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 .......
set.seed(153) x <- sort(c(rnorm(80), rt(20, df = 1))) s_Qn(x, mu.too = TRUE) Qn(x, finite.corr = FALSE)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.