| mad {base} | R Documentation |
Median Absolute Deviation
Description
Compute the median absolute deviation, i.e., the (lo-/hi-) median of the absolute deviations from the median, and (by default) adjust by a factor for asymptotically normal consistency.
Usage
mad(x, center = median(x), constant = 1.4826, na.rm = FALSE,
low = FALSE, high = FALSE)
Arguments
x |
a numeric vector. |
center |
Optionally, the centre: defauls to the median. |
constant |
scale factor. |
na.rm |
if |
low |
if |
high |
if |
Details
The actual value calculated is constant * cMedian(abs(x - center))
with the default value of center being median(x), and
cMedian being the usual, the “low” or “high” median, see
the arguments description for low and high above.
The default constant = 1.4826 (approximately
1/\Phi^{-1}(\frac 3 4) = 1/qnorm(3/4))
ensures consistency, i.e.,
E[mad(X_1,\dots,X_n)] = \sigma
for X_i distributed as N(\mu,\sigma^2) and large n.
If na.rm is TRUE then NA
values are stripped from x before computation takes place.
If this is not done then an NA value in
x will cause mad to return NA.
See Also
IQR which is simpler but less robust,
median, var.
Examples
mad(c(1:9))
print(mad(c(1:9), constant=1)) ==
mad(c(1:8,100), constant=1) # = 2 ; TRUE
x <- c(1,2,3, 5,7,8)
sort(abs(x - median(x)))
c(mad(x, co=1), mad(x, co=1, lo = TRUE), mad(x, co=1, hi = TRUE))