org.jaitools.numeric
Class ApproxMedianProcessor

java.lang.Object
  extended by org.jaitools.numeric.AbstractProcessor
      extended by org.jaitools.numeric.ApproxMedianProcessor
All Implemented Interfaces:
Processor

public class ApproxMedianProcessor
extends AbstractProcessor

Processor for the approximate median Statistic.APPROX_MEDIAN. Calculation of an exact median is only possible by storing all sample values. For very large data streams, this processor will calculate an approximate median using the remedian estimator:

PJ Rousseeuw and GW Bassett (1990) The remedian: a robust averaging method for large data sets. Journal of the American Statistical Society 85:97-104

The remedian estimator performs badly with non-stationary data, e.g. a data stream that is monotonically increasing will result in an over-estimate. If possible (which it probably isn't), it will help to de-trend or randomly order the data prior to streaming it.

Since:
1.0
Version:
$Id$
Author:
Michael Bedward
See Also:
Statistic, StreamingSampleStats

Field Summary
 
Fields inherited from class org.jaitools.numeric.AbstractProcessor
numAccepted, numNaN, numNoData, numOffered
 
Constructor Summary
ApproxMedianProcessor()
          Default constructor.
 
Method Summary
 Double get(Statistic stat)
          Gets the value of the statistic calculated by this processor.
 Collection<Statistic> getSupported()
          Gets the Statistics supported by this processor.
protected  boolean update(Double sample)
          Processes a sample value.
 
Methods inherited from class org.jaitools.numeric.AbstractProcessor
addNoDataRange, addNoDataValue, addRange, addRange, get, getNoDataRanges, getNumAccepted, getNumNaN, getNumNoData, getNumOffered, getRanges, getRangesType, isAccepted, offer, setRangesType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ApproxMedianProcessor

public ApproxMedianProcessor()
Default constructor.

Method Detail

getSupported

public Collection<Statistic> getSupported()
Gets the Statistics supported by this processor.

Returns:
supported Statistics

update

protected boolean update(Double sample)
Processes a sample value.

Specified by:
update in class AbstractProcessor
Parameters:
sample - the sample value
Returns:
true if the sample is accepted; false otherwise

get

public Double get(Statistic stat)
Gets the value of the statistic calculated by this processor.

Parameters:
stat - the specified statistic
Returns:
the value of the statistic if it has been calculated or Double.NaN otherwise


Copyright © 2009-2013. All Rights Reserved.