
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.
mad(x, center = median(x), constant = 1.4826, na.rm = FALSE,
low = FALSE, high = FALSE)
a numeric vector.
Optionally, the centre: defaults to the median.
scale factor.
if TRUE
then NA
values are stripped
from x
before computation takes place.
if TRUE
, compute the ‘lo-median’, i.e., for even
sample size, do not average the two middle values, but take the
smaller one.
if TRUE
, compute the ‘hi-median’, i.e., take the
larger of the two middle values for even sample size.
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/qnorm(3/4)
)
ensures consistency, i.e.,
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
.
# NOT RUN {
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))
# }
Run the code above in your browser using DataLab