ROBOMEAN
Name
robomean
Purpose (one Line)
Robust statistical moments of the data.
Description
This routine computes the average, average deviation, standard
deviation, variance, skew and kurtosis of the input data. The various
output quantities are always returned as floating point scalars.
The statistics are computed with no regard for the dimensionality of
the input data.
The statistics are robust in that the data is searched for outliers
after the moments are computed. If outliers are found they are
removed and the statistics are computed again. This continues until
either no outliers are found or if the removal of outliers has an
insignificant effect on the statistics.
Category
Statistics
Calling Sequence
robomean,data,thresh,eps,avg,avgdev,stddev,var,skew,kurt,nfinal
Inputs
data - Input data to be analyzed.
thresh - Deviation from the mean to signify an outlier.
eps - Smallest significant change in mean in units of std dev.
Optional Input Parameters
None.
Input Keyword Parameters
BAD - Array of flags, 0=good, 1=bad. Any points removed from the sample
will have this flag set to 1 upon return. Note that if you
do not supply this array, you will not get the resulting bad
flag output even if you supply the keyword.
Outputs
avg - Sample mean.
avgdev - Average deviation of the data from the mean.
stddev - Standard deviation of the data from the mean.
var - Variance of the data from the mean.
skew - Skewness, third statistical moment.
kurt - Kurtosis, fourth statistical moment.
nfinal - Number of points used in the final result.
new - Vector of 'clean' pixels (optional).
Output Keyword Parameters
STDMEAN - Optional return of standard deviation of the mean.
ERROR - Flag, if set indicates that all points were removed. This can
be caused by a many things but usually is an indication of some
pathology in the data. The most common is to have a true
mean and standard deviation in the data that is very distant
from an initial approximation so that all data are excluded on
a pass (usually the first).
Common Blocks
None.
Side Effects
None.
Restrictions
None.
Procedure
Standard techniques, see section 13.1 in Numerical Recipies. The
thresh and eps values are not tremendously important. Thresh=5.0
and eps=0.5 appear to work pretty well most of the time.
Modification History
Written by Marc W. Buie, Lowell Observatory, 1992 Jan 20.
Fix - nfinal was not being returned to calling program.
Doug Loucks, Lowell Observatory, 1992 Oct 22.
Fix - Sense of test to determine additional refinement was
not correct for some cases. Changed logic to parallel
the C version, since the WHILE statement is now available
in IDL.
Mod - Added by Marc Buie: Argument 'new,' allowing the 'clean' pixels
to be returned to the caller.
Mod - 2/11/94, DWL, Added keyword STDMEAN to permit return of this
value to the caller.
1997/03/23 - MWB, added BAD keyword and operation. This program's operation
should not be any different than what it was if you don't supply BAD.
1998/07/08, MWB, changed so that NaN values are automatically flagged as bad.
2000/11/2, MWB, cosmetic rewrite.
2002/01/15, MWB, fixed a subtle case where the data leads to stdev=0.0
that was causing the program to crash.
2005/06/21, MWB, added ERROR return flag.
2009/12/30, MWB, mod from 2002 caused the program to return the wrong
answer for noiseless input data. Changed to allow stdev=0.0
on return but this case avoids almost all of the internal
processing in this routine.