| mad {stats} | 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: defaults 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.
In the case of n = 1 non-missing values and default center, the
result is 0, consistent with “no deviation from the center”.
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, constant = 1),
mad(x, constant = 1, low = TRUE),
mad(x, constant = 1, high = TRUE))