## MAD Function

**finds the univariate (scaled) median absolute deviation **

**MAD(** *()***)**

where

- x
- is an input data matrix.
- spt
- is an optional string argument with the following values:
**"MAD"**
- for computing the MAD (which is the default)
**"NMAD"**
- for computing the normalized version of MAD
**"SN"**
- for computing
**"QN"**
- for computing

The MAD function treats the input matrix

as univariate data by
appending each row to the previous row to make a single row vector
with elements

. In the following description, the notation

means the

th element of

when thought of as a row vector.

The MAD function can be used for computing one of the following
three robust scale estimates:

- median absolute deviation (MAD) or normalized form of MAD:

where is the unscaled default and is used
for the scaled version (consistency with the Gaussian
distribution).
- , which is a more efficient alternative to MAD:

where the outer median is a low median (order statistic
of rank ) and the inner median
is a high median (order statistic of rank
), and where is a scalar
depending on sample size . - is another efficient alternative to MAD. It is based
on the th-order statistic of the
inter-point distances:

where is a scalar similar to but different from .
See Rousseeuw and Croux (1993) for more details.

The scalars

and

are defined as follows:

*Example*

The following example uses the univariate data set
of Barnett and Lewis (1978). The data set is used in

Chapter 9 to
illustrate the univariate LMS and LTS estimates. Here is the code:

b = { 3, 4, 7, 8, 10, 949, 951 };
rmad1 = mad(b);
rmad2 = mad(b,"mad");
rmad3 = mad(b,"nmad");
rmad4 = mad(b,"sn");
rmad5 = mad(b,"qn");
print "Default MAD=" rmad1,
"Common MAD =" rmad2,
"MAD*1.4826 =" rmad3,
"Robust S_n =" rmad4,
"Robust Q_n =" rmad5;

This program produces the following output:

Default MAD= 4
Common MAD = 4
MAD*1.4826 = 5.9304089
Robust S_n = 7.143674
Robust Q_n = 5.7125049

Copyright © 2009 by SAS Institute Inc., Cary, NC, USA. All rights reserved.