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 `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)] = σ

for X_i distributed as N(μ,σ^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))

[Package stats version 2.3.1 Index]