mad                   package: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 `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, co=1), mad(x, co=1, lo = TRUE), mad(x, co=1, hi = TRUE))

