Class SummaryStatistics
- java.lang.Object
-
- org.apache.commons.math.stat.descriptive.SummaryStatistics
-
- All Implemented Interfaces:
java.io.Serializable,StatisticalSummary
- Direct Known Subclasses:
SynchronizedSummaryStatistics
public class SummaryStatistics extends java.lang.Object implements StatisticalSummary, java.io.Serializable
Computes summary statistics for a stream of data values added using the
addValuemethod. The data values are not stored in memory, so this class can be used to compute statistics for very large data streams.The
StorelessUnivariateStatisticinstances used to maintain summary state and compute statistics are configurable via setters. For example, the default implementation for the variance can be overridden by callingsetVarianceImpl(StorelessUnivariateStatistic). Actual parameters to these methods must implement theStorelessUnivariateStatisticinterface and configuration must be completed beforeaddValueis called. No configuration is necessary to use the default, commons-math provided implementations.Note: This class is not thread-safe. Use
SynchronizedSummaryStatisticsif concurrent access from multiple threads is required.- Version:
- $Revision: 1042376 $ $Date: 2010-12-05 16:54:55 +0100 (dim. 05 déc. 2010) $
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected GeometricMeangeoMeangeoMean of values that have been addedprotected Maxmaxmax of values that have been addedprotected Meanmeanmean of values that have been addedprotected Minminmin of values that have been addedprotected longncount of values that have been addedprotected SecondMomentsecondMomentSecondMoment is used to compute the mean and varianceprotected Sumsumsum of values that have been addedprotected SumOfLogssumLogsumLog of values that have been addedprotected SumOfSquaressumsqsum of the square of each value that has been addedprotected Variancevariancevariance of values that have been added
-
Constructor Summary
Constructors Constructor Description SummaryStatistics()Construct a SummaryStatistics instanceSummaryStatistics(SummaryStatistics original)A copy constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddValue(double value)Add a value to the datavoidclear()Resets all statistics and storageSummaryStatisticscopy()Returns a copy of this SummaryStatistics instance with the same internal state.static voidcopy(SummaryStatistics source, SummaryStatistics dest)Copies source to dest.booleanequals(java.lang.Object object)Returns true iffobjectis aSummaryStatisticsinstance and all statistics have the same values as this.StorelessUnivariateStatisticgetGeoMeanImpl()Returns the currently configured geometric mean implementationdoublegetGeometricMean()Returns the geometric mean of the values that have been added.doublegetMax()Returns the maximum of the values that have been added.StorelessUnivariateStatisticgetMaxImpl()Returns the currently configured maximum implementationdoublegetMean()Returns the mean of the values that have been added.StorelessUnivariateStatisticgetMeanImpl()Returns the currently configured mean implementationdoublegetMin()Returns the minimum of the values that have been added.StorelessUnivariateStatisticgetMinImpl()Returns the currently configured minimum implementationlonggetN()Returns the number of available valuesdoublegetSecondMoment()Returns a statistic related to the Second Central Moment.doublegetStandardDeviation()Returns the standard deviation of the values that have been added.doublegetSum()Returns the sum of the values that have been addedStorelessUnivariateStatisticgetSumImpl()Returns the currently configured Sum implementationStorelessUnivariateStatisticgetSumLogImpl()Returns the currently configured sum of logs implementationStatisticalSummarygetSummary()Return aStatisticalSummaryValuesinstance reporting current statistics.doublegetSumOfLogs()Returns the sum of the logs of the values that have been added.doublegetSumsq()Returns the sum of the squares of the values that have been added.StorelessUnivariateStatisticgetSumsqImpl()Returns the currently configured sum of squares implementationdoublegetVariance()Returns the variance of the values that have been added.StorelessUnivariateStatisticgetVarianceImpl()Returns the currently configured variance implementationinthashCode()Returns hash code based on values of statisticsvoidsetGeoMeanImpl(StorelessUnivariateStatistic geoMeanImpl)Sets the implementation for the geometric mean.voidsetMaxImpl(StorelessUnivariateStatistic maxImpl)Sets the implementation for the maximum.voidsetMeanImpl(StorelessUnivariateStatistic meanImpl)Sets the implementation for the mean.voidsetMinImpl(StorelessUnivariateStatistic minImpl)Sets the implementation for the minimum.voidsetSumImpl(StorelessUnivariateStatistic sumImpl)Sets the implementation for the Sum.voidsetSumLogImpl(StorelessUnivariateStatistic sumLogImpl)Sets the implementation for the sum of logs.voidsetSumsqImpl(StorelessUnivariateStatistic sumsqImpl)Sets the implementation for the sum of squares.voidsetVarianceImpl(StorelessUnivariateStatistic varianceImpl)Sets the implementation for the variance.java.lang.StringtoString()Generates a text report displaying summary statistics from values that have been added.
-
-
-
Field Detail
-
n
protected long n
count of values that have been added
-
secondMoment
protected SecondMoment secondMoment
SecondMoment is used to compute the mean and variance
-
sum
protected Sum sum
sum of values that have been added
-
sumsq
protected SumOfSquares sumsq
sum of the square of each value that has been added
-
min
protected Min min
min of values that have been added
-
max
protected Max max
max of values that have been added
-
sumLog
protected SumOfLogs sumLog
sumLog of values that have been added
-
geoMean
protected GeometricMean geoMean
geoMean of values that have been added
-
mean
protected Mean mean
mean of values that have been added
-
variance
protected Variance variance
variance of values that have been added
-
-
Constructor Detail
-
SummaryStatistics
public SummaryStatistics()
Construct a SummaryStatistics instance
-
SummaryStatistics
public SummaryStatistics(SummaryStatistics original)
A copy constructor. Creates a deep-copy of theoriginal.- Parameters:
original- theSummaryStatisticsinstance to copy
-
-
Method Detail
-
getSummary
public StatisticalSummary getSummary()
Return aStatisticalSummaryValuesinstance reporting current statistics.- Returns:
- Current values of statistics
-
addValue
public void addValue(double value)
Add a value to the data- Parameters:
value- the value to add
-
getN
public long getN()
Returns the number of available values- Specified by:
getNin interfaceStatisticalSummary- Returns:
- The number of available values
-
getSum
public double getSum()
Returns the sum of the values that have been added- Specified by:
getSumin interfaceStatisticalSummary- Returns:
- The sum or
Double.NaNif no values have been added
-
getSumsq
public double getSumsq()
Returns the sum of the squares of the values that have been added.Double.NaN is returned if no values have been added.
- Returns:
- The sum of squares
-
getMean
public double getMean()
Returns the mean of the values that have been added.Double.NaN is returned if no values have been added.
- Specified by:
getMeanin interfaceStatisticalSummary- Returns:
- the mean
-
getStandardDeviation
public double getStandardDeviation()
Returns the standard deviation of the values that have been added.Double.NaN is returned if no values have been added.
- Specified by:
getStandardDeviationin interfaceStatisticalSummary- Returns:
- the standard deviation
-
getVariance
public double getVariance()
Returns the variance of the values that have been added.Double.NaN is returned if no values have been added.
- Specified by:
getVariancein interfaceStatisticalSummary- Returns:
- the variance
-
getMax
public double getMax()
Returns the maximum of the values that have been added.Double.NaN is returned if no values have been added.
- Specified by:
getMaxin interfaceStatisticalSummary- Returns:
- the maximum
-
getMin
public double getMin()
Returns the minimum of the values that have been added.Double.NaN is returned if no values have been added.
- Specified by:
getMinin interfaceStatisticalSummary- Returns:
- the minimum
-
getGeometricMean
public double getGeometricMean()
Returns the geometric mean of the values that have been added.Double.NaN is returned if no values have been added.
- Returns:
- the geometric mean
-
getSumOfLogs
public double getSumOfLogs()
Returns the sum of the logs of the values that have been added.Double.NaN is returned if no values have been added.
- Returns:
- the sum of logs
- Since:
- 1.2
-
getSecondMoment
public double getSecondMoment()
Returns a statistic related to the Second Central Moment. Specifically, what is returned is the sum of squared deviations from the sample mean among the values that have been added.Returns
Double.NaNif no data values have been added and returns0if there is just one value in the data set.- Returns:
- second central moment statistic
- Since:
- 2.0
-
toString
public java.lang.String toString()
Generates a text report displaying summary statistics from values that have been added.- Overrides:
toStringin classjava.lang.Object- Returns:
- String with line feeds displaying statistics
- Since:
- 1.2
-
clear
public void clear()
Resets all statistics and storage
-
equals
public boolean equals(java.lang.Object object)
Returns true iffobjectis aSummaryStatisticsinstance and all statistics have the same values as this.- Overrides:
equalsin classjava.lang.Object- Parameters:
object- the object to test equality against.- Returns:
- true if object equals this
-
hashCode
public int hashCode()
Returns hash code based on values of statistics- Overrides:
hashCodein classjava.lang.Object- Returns:
- hash code
-
getSumImpl
public StorelessUnivariateStatistic getSumImpl()
Returns the currently configured Sum implementation- Returns:
- the StorelessUnivariateStatistic implementing the sum
- Since:
- 1.2
-
setSumImpl
public void setSumImpl(StorelessUnivariateStatistic sumImpl)
Sets the implementation for the Sum.
This method must be activated before any data has been added - i.e., before
addValuehas been used to add data; otherwise an IllegalStateException will be thrown.- Parameters:
sumImpl- the StorelessUnivariateStatistic instance to use for computing the Sum- Throws:
java.lang.IllegalStateException- if data has already been added (i.e if n > 0)- Since:
- 1.2
-
getSumsqImpl
public StorelessUnivariateStatistic getSumsqImpl()
Returns the currently configured sum of squares implementation- Returns:
- the StorelessUnivariateStatistic implementing the sum of squares
- Since:
- 1.2
-
setSumsqImpl
public void setSumsqImpl(StorelessUnivariateStatistic sumsqImpl)
Sets the implementation for the sum of squares.
This method must be activated before any data has been added - i.e., before
addValuehas been used to add data; otherwise an IllegalStateException will be thrown.- Parameters:
sumsqImpl- the StorelessUnivariateStatistic instance to use for computing the sum of squares- Throws:
java.lang.IllegalStateException- if data has already been added (i.e if n > 0)- Since:
- 1.2
-
getMinImpl
public StorelessUnivariateStatistic getMinImpl()
Returns the currently configured minimum implementation- Returns:
- the StorelessUnivariateStatistic implementing the minimum
- Since:
- 1.2
-
setMinImpl
public void setMinImpl(StorelessUnivariateStatistic minImpl)
Sets the implementation for the minimum.
This method must be activated before any data has been added - i.e., before
addValuehas been used to add data; otherwise an IllegalStateException will be thrown.- Parameters:
minImpl- the StorelessUnivariateStatistic instance to use for computing the minimum- Throws:
java.lang.IllegalStateException- if data has already been added (i.e if n > 0)- Since:
- 1.2
-
getMaxImpl
public StorelessUnivariateStatistic getMaxImpl()
Returns the currently configured maximum implementation- Returns:
- the StorelessUnivariateStatistic implementing the maximum
- Since:
- 1.2
-
setMaxImpl
public void setMaxImpl(StorelessUnivariateStatistic maxImpl)
Sets the implementation for the maximum.
This method must be activated before any data has been added - i.e., before
addValuehas been used to add data; otherwise an IllegalStateException will be thrown.- Parameters:
maxImpl- the StorelessUnivariateStatistic instance to use for computing the maximum- Throws:
java.lang.IllegalStateException- if data has already been added (i.e if n > 0)- Since:
- 1.2
-
getSumLogImpl
public StorelessUnivariateStatistic getSumLogImpl()
Returns the currently configured sum of logs implementation- Returns:
- the StorelessUnivariateStatistic implementing the log sum
- Since:
- 1.2
-
setSumLogImpl
public void setSumLogImpl(StorelessUnivariateStatistic sumLogImpl)
Sets the implementation for the sum of logs.
This method must be activated before any data has been added - i.e., before
addValuehas been used to add data; otherwise an IllegalStateException will be thrown.- Parameters:
sumLogImpl- the StorelessUnivariateStatistic instance to use for computing the log sum- Throws:
java.lang.IllegalStateException- if data has already been added (i.e if n > 0)- Since:
- 1.2
-
getGeoMeanImpl
public StorelessUnivariateStatistic getGeoMeanImpl()
Returns the currently configured geometric mean implementation- Returns:
- the StorelessUnivariateStatistic implementing the geometric mean
- Since:
- 1.2
-
setGeoMeanImpl
public void setGeoMeanImpl(StorelessUnivariateStatistic geoMeanImpl)
Sets the implementation for the geometric mean.
This method must be activated before any data has been added - i.e., before
addValuehas been used to add data; otherwise an IllegalStateException will be thrown.- Parameters:
geoMeanImpl- the StorelessUnivariateStatistic instance to use for computing the geometric mean- Throws:
java.lang.IllegalStateException- if data has already been added (i.e if n > 0)- Since:
- 1.2
-
getMeanImpl
public StorelessUnivariateStatistic getMeanImpl()
Returns the currently configured mean implementation- Returns:
- the StorelessUnivariateStatistic implementing the mean
- Since:
- 1.2
-
setMeanImpl
public void setMeanImpl(StorelessUnivariateStatistic meanImpl)
Sets the implementation for the mean.
This method must be activated before any data has been added - i.e., before
addValuehas been used to add data; otherwise an IllegalStateException will be thrown.- Parameters:
meanImpl- the StorelessUnivariateStatistic instance to use for computing the mean- Throws:
java.lang.IllegalStateException- if data has already been added (i.e if n > 0)- Since:
- 1.2
-
getVarianceImpl
public StorelessUnivariateStatistic getVarianceImpl()
Returns the currently configured variance implementation- Returns:
- the StorelessUnivariateStatistic implementing the variance
- Since:
- 1.2
-
setVarianceImpl
public void setVarianceImpl(StorelessUnivariateStatistic varianceImpl)
Sets the implementation for the variance.
This method must be activated before any data has been added - i.e., before
addValuehas been used to add data; otherwise an IllegalStateException will be thrown.- Parameters:
varianceImpl- the StorelessUnivariateStatistic instance to use for computing the variance- Throws:
java.lang.IllegalStateException- if data has already been added (i.e if n > 0)- Since:
- 1.2
-
copy
public SummaryStatistics copy()
Returns a copy of this SummaryStatistics instance with the same internal state.- Returns:
- a copy of this
-
copy
public static void copy(SummaryStatistics source, SummaryStatistics dest)
Copies source to dest.Neither source nor dest can be null.
- Parameters:
source- SummaryStatistics to copydest- SummaryStatistics to copy to- Throws:
java.lang.NullPointerException- if either source or dest is null
-
-