Description Usage Arguments Details See Also Examples

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.

1 2 |

`x` |
a numeric vector. |

`weights` |
a numerical vector of weights the same length as |

`center` |
the centre given either as numeric value or as a function to be applied to |

`constant` |
scale factor (default is |

`na.rm` |
if |

`low` |
if |

`high` |
if |

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/ Φ^(-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`

.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ```
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))
# use weights
x <- sample(20, 30, replace = TRUE)
z <- as.numeric(names(w <- table(x)))
(m1 <- MAD(z, weights=w))
(m2 <- MAD(x))
stopifnot(identical(m1, m2))
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.