org.apache.commons.math3.stat.descriptive
public class SummaryStatistics extends Object implements StatisticalSummary, Serializable
Computes summary statistics for a stream of data values added using the
addValue
method. The data values are not stored in
memory, so this class can be used to compute statistics for very large data
streams.
The StorelessUnivariateStatistic
instances used to maintain summary
state and compute statistics are configurable via setters. For example, the
default implementation for the variance can be overridden by calling
setVarianceImpl(StorelessUnivariateStatistic)
. Actual parameters to
these methods must implement the StorelessUnivariateStatistic
interface and configuration must be completed before addValue
is called. No configuration is necessary to use the default, commons-math
provided implementations.
Note: This class is not thread-safe. Use
SynchronizedSummaryStatistics
if concurrent access from multiple
threads is required.
Modifier and Type | Field and Description |
---|---|
private GeometricMean |
geoMean
geoMean of values that have been added
|
private StorelessUnivariateStatistic |
geoMeanImpl
Geometric mean statistic implementation - can be reset by setter.
|
private Max |
max
max of values that have been added
|
private StorelessUnivariateStatistic |
maxImpl
Maximum statistic implementation - can be reset by setter.
|
private Mean |
mean
mean of values that have been added
|
private StorelessUnivariateStatistic |
meanImpl
Mean statistic implementation - can be reset by setter.
|
private Min |
min
min of values that have been added
|
private StorelessUnivariateStatistic |
minImpl
Minimum statistic implementation - can be reset by setter.
|
private long |
n
count of values that have been added
|
private SecondMoment |
secondMoment
SecondMoment is used to compute the mean and variance
|
private static long |
serialVersionUID
Serialization UID
|
private Sum |
sum
sum of values that have been added
|
private StorelessUnivariateStatistic |
sumImpl
Sum statistic implementation - can be reset by setter.
|
private SumOfLogs |
sumLog
sumLog of values that have been added
|
private StorelessUnivariateStatistic |
sumLogImpl
Sum of log statistic implementation - can be reset by setter.
|
private SumOfSquares |
sumsq
sum of the square of each value that has been added
|
private StorelessUnivariateStatistic |
sumsqImpl
Sum of squares statistic implementation - can be reset by setter.
|
private Variance |
variance
variance of values that have been added
|
private StorelessUnivariateStatistic |
varianceImpl
Variance statistic implementation - can be reset by setter.
|
Constructor and Description |
---|
SummaryStatistics()
Construct a SummaryStatistics instance
|
SummaryStatistics(SummaryStatistics original)
A copy constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addValue(double value)
Add a value to the data
|
private void |
checkEmpty()
Throws IllegalStateException if n > 0.
|
void |
clear()
Resets all statistics and storage
|
SummaryStatistics |
copy()
Returns a copy of this SummaryStatistics instance with the same internal state.
|
static void |
copy(SummaryStatistics source,
SummaryStatistics dest)
Copies source to dest.
|
boolean |
equals(Object object)
Returns true iff
object is a
SummaryStatistics instance and all statistics have the
same values as this. |
StorelessUnivariateStatistic |
getGeoMeanImpl()
Returns the currently configured geometric mean implementation
|
double |
getGeometricMean()
Returns the geometric mean of the values that have been added.
|
double |
getMax()
Returns the maximum of the values that have been added.
|
StorelessUnivariateStatistic |
getMaxImpl()
Returns the currently configured maximum implementation
|
double |
getMean()
Returns the mean of the values that have been added.
|
StorelessUnivariateStatistic |
getMeanImpl()
Returns the currently configured mean implementation
|
double |
getMin()
Returns the minimum of the values that have been added.
|
StorelessUnivariateStatistic |
getMinImpl()
Returns the currently configured minimum implementation
|
long |
getN()
Returns the number of available values
|
double |
getPopulationVariance()
Returns the
population variance of the values that have been added.
|
double |
getSecondMoment()
Returns a statistic related to the Second Central Moment.
|
double |
getStandardDeviation()
Returns the standard deviation of the values that have been added.
|
double |
getSum()
Returns the sum of the values that have been added
|
StorelessUnivariateStatistic |
getSumImpl()
Returns the currently configured Sum implementation
|
StorelessUnivariateStatistic |
getSumLogImpl()
Returns the currently configured sum of logs implementation
|
StatisticalSummary |
getSummary()
Return a
StatisticalSummaryValues instance reporting current
statistics. |
double |
getSumOfLogs()
Returns the sum of the logs of the values that have been added.
|
double |
getSumsq()
Returns the sum of the squares of the values that have been added.
|
StorelessUnivariateStatistic |
getSumsqImpl()
Returns the currently configured sum of squares implementation
|
double |
getVariance()
Returns the (sample) variance of the available values.
|
StorelessUnivariateStatistic |
getVarianceImpl()
Returns the currently configured variance implementation
|
int |
hashCode()
Returns hash code based on values of statistics
|
void |
setGeoMeanImpl(StorelessUnivariateStatistic geoMeanImpl)
Sets the implementation for the geometric mean.
|
void |
setMaxImpl(StorelessUnivariateStatistic maxImpl)
Sets the implementation for the maximum.
|
void |
setMeanImpl(StorelessUnivariateStatistic meanImpl)
Sets the implementation for the mean.
|
void |
setMinImpl(StorelessUnivariateStatistic minImpl)
Sets the implementation for the minimum.
|
void |
setSumImpl(StorelessUnivariateStatistic sumImpl)
Sets the implementation for the Sum.
|
void |
setSumLogImpl(StorelessUnivariateStatistic sumLogImpl)
Sets the implementation for the sum of logs.
|
void |
setSumsqImpl(StorelessUnivariateStatistic sumsqImpl)
Sets the implementation for the sum of squares.
|
void |
setVarianceImpl(StorelessUnivariateStatistic varianceImpl)
Sets the implementation for the variance.
|
String |
toString()
Generates a text report displaying summary statistics from values that
have been added.
|
private static final long serialVersionUID
private long n
private SecondMoment secondMoment
private Sum sum
private SumOfSquares sumsq
private Min min
private Max max
private SumOfLogs sumLog
private GeometricMean geoMean
private Mean mean
private Variance variance
private StorelessUnivariateStatistic sumImpl
private StorelessUnivariateStatistic sumsqImpl
private StorelessUnivariateStatistic minImpl
private StorelessUnivariateStatistic maxImpl
private StorelessUnivariateStatistic sumLogImpl
private StorelessUnivariateStatistic geoMeanImpl
private StorelessUnivariateStatistic meanImpl
private StorelessUnivariateStatistic varianceImpl
public SummaryStatistics()
public SummaryStatistics(SummaryStatistics original) throws NullArgumentException
original
.original
- the SummaryStatistics
instance to copyNullArgumentException
- if original is nullpublic StatisticalSummary getSummary()
StatisticalSummaryValues
instance reporting current
statistics.public void addValue(double value)
value
- the value to addpublic long getN()
getN
in interface StatisticalSummary
public double getSum()
getSum
in interface StatisticalSummary
Double.NaN
if no values have been addedpublic double getSumsq()
Double.NaN is returned if no values have been added.
public double getMean()
Double.NaN is returned if no values have been added.
getMean
in interface StatisticalSummary
public double getStandardDeviation()
Double.NaN is returned if no values have been added.
getStandardDeviation
in interface StatisticalSummary
public double getVariance()
This method returns the bias-corrected sample variance (using n - 1
in
the denominator). Use getPopulationVariance()
for the non-bias-corrected
population variance.
Double.NaN is returned if no values have been added.
getVariance
in interface StatisticalSummary
public double getPopulationVariance()
Double.NaN is returned if no values have been added.
public double getMax()
Double.NaN is returned if no values have been added.
getMax
in interface StatisticalSummary
public double getMin()
Double.NaN is returned if no values have been added.
getMin
in interface StatisticalSummary
public double getGeometricMean()
Double.NaN is returned if no values have been added.
public double getSumOfLogs()
Double.NaN is returned if no values have been added.
public double getSecondMoment()
Returns Double.NaN
if no data values have been added and
returns 0
if there is just one value in the data set.
public String toString()
public void clear()
public boolean equals(Object object)
object
is a
SummaryStatistics
instance and all statistics have the
same values as this.public int hashCode()
public StorelessUnivariateStatistic getSumImpl()
public void setSumImpl(StorelessUnivariateStatistic sumImpl) throws MathIllegalStateException
Sets the implementation for the Sum.
This method must be activated before any data has been added - i.e.,
before addValue
has been used to add data;
otherwise an IllegalStateException will be thrown.
sumImpl
- the StorelessUnivariateStatistic instance to use for
computing the SumMathIllegalStateException
- if data has already been added (i.e if n >0)public StorelessUnivariateStatistic getSumsqImpl()
public void setSumsqImpl(StorelessUnivariateStatistic sumsqImpl) throws MathIllegalStateException
Sets the implementation for the sum of squares.
This method must be activated before any data has been added - i.e.,
before addValue
has been used to add data;
otherwise an IllegalStateException will be thrown.
sumsqImpl
- the StorelessUnivariateStatistic instance to use for
computing the sum of squaresMathIllegalStateException
- if data has already been added (i.e if n > 0)public StorelessUnivariateStatistic getMinImpl()
public void setMinImpl(StorelessUnivariateStatistic minImpl) throws MathIllegalStateException
Sets the implementation for the minimum.
This method must be activated before any data has been added - i.e.,
before addValue
has been used to add data;
otherwise an IllegalStateException will be thrown.
minImpl
- the StorelessUnivariateStatistic instance to use for
computing the minimumMathIllegalStateException
- if data has already been added (i.e if n > 0)public StorelessUnivariateStatistic getMaxImpl()
public void setMaxImpl(StorelessUnivariateStatistic maxImpl) throws MathIllegalStateException
Sets the implementation for the maximum.
This method must be activated before any data has been added - i.e.,
before addValue
has been used to add data;
otherwise an IllegalStateException will be thrown.
maxImpl
- the StorelessUnivariateStatistic instance to use for
computing the maximumMathIllegalStateException
- if data has already been added (i.e if n > 0)public StorelessUnivariateStatistic getSumLogImpl()
public void setSumLogImpl(StorelessUnivariateStatistic sumLogImpl) throws MathIllegalStateException
Sets the implementation for the sum of logs.
This method must be activated before any data has been added - i.e.,
before addValue
has been used to add data;
otherwise an IllegalStateException will be thrown.
sumLogImpl
- the StorelessUnivariateStatistic instance to use for
computing the log sumMathIllegalStateException
- if data has already been added (i.e if n > 0)public StorelessUnivariateStatistic getGeoMeanImpl()
public void setGeoMeanImpl(StorelessUnivariateStatistic geoMeanImpl) throws MathIllegalStateException
Sets the implementation for the geometric mean.
This method must be activated before any data has been added - i.e.,
before addValue
has been used to add data;
otherwise an IllegalStateException will be thrown.
geoMeanImpl
- the StorelessUnivariateStatistic instance to use for
computing the geometric meanMathIllegalStateException
- if data has already been added (i.e if n > 0)public StorelessUnivariateStatistic getMeanImpl()
public void setMeanImpl(StorelessUnivariateStatistic meanImpl) throws MathIllegalStateException
Sets the implementation for the mean.
This method must be activated before any data has been added - i.e.,
before addValue
has been used to add data;
otherwise an IllegalStateException will be thrown.
meanImpl
- the StorelessUnivariateStatistic instance to use for
computing the meanMathIllegalStateException
- if data has already been added (i.e if n > 0)public StorelessUnivariateStatistic getVarianceImpl()
public void setVarianceImpl(StorelessUnivariateStatistic varianceImpl) throws MathIllegalStateException
Sets the implementation for the variance.
This method must be activated before any data has been added - i.e.,
before addValue
has been used to add data;
otherwise an IllegalStateException will be thrown.
varianceImpl
- the StorelessUnivariateStatistic instance to use for
computing the varianceMathIllegalStateException
- if data has already been added (i.e if n > 0)private void checkEmpty() throws MathIllegalStateException
MathIllegalStateException
- if data has been addedpublic SummaryStatistics copy()
public static void copy(SummaryStatistics source, SummaryStatistics dest) throws NullArgumentException
Neither source nor dest can be null.
source
- SummaryStatistics to copydest
- SummaryStatistics to copy toNullArgumentException
- if either source or dest is nullCopyright (c) 2003-2013 Apache Software Foundation