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.