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.