mad {stats} | R Documentation |

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)

`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. |

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`

.

`IQR`

which is simpler but less robust,
`median`

, `var`

.

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.2.1 Index]