# mad

##### Median Absolute Deviation

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}(\frac 3 4)\) = `1/qnorm(3/4)`

)
ensures consistency, i.e.,
$$E[mad(X_1,\dots,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

##### Examples

`library(stats)`

```
# NOT RUN {
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))
# }
```

*Documentation reproduced from package stats, version 3.6.0, License: Part of R 3.6.0*