The MAD function computes the univariate (scaled) median absolute deviation of each column of the input matrix.
The arguments to the MAD function are as follows:
is an input data matrix.
is an optional string argument with the following values:
for computing the median absolute deviation (MAD); this is the default.
for computing the normalized version of MAD
for computing
for computing
For simplicity, the following descriptions assume that the input argument x is a column vector. The notation means the ith element of the column vector x.
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 that depends on sample size n.
is another efficient alternative to MAD. It is based on the kth-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:
The following example uses the univariate data set of Barnett and Lewis (1978). The data set is used in Chapter 12 to illustrate the univariate LMS and LTS estimates.
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;