mad                  package: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 'TRUE' then 'NA' values are stripped from 'x' before
          computation takes place.

     low: if 'TRUE', compute the 'lo-median', i.e., for even sample
          size, do not average the two middle values, but take the
          smaller one.

    high: if 'TRUE', compute the 'hi-median', i.e., take the larger of
          the two middle values for even sample size.

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)(3/4) =
     '1/qnorm(3/4)') ensures consistency, i.e.,

                     E[mad(X_1,...,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))

