Class MultivariateSummaryStatistics
- All Implemented Interfaces:
Serializable,StatisticalMultivariateSummary
- Direct Known Subclasses:
SynchronizedMultivariateSummaryStatistics
Computes summary statistics for a stream of n-tuples 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
n-tuple streams.
The StorelessUnivariateStatistic instances used to maintain
summary state and compute statistics are configurable via setters.
For example, the default implementation for the mean can be overridden by
calling setMeanImpl(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.
To compute statistics for a stream of n-tuples, construct a
MultivariateStatistics instance with dimension n and then use
addValue(double[]) to add n-tuples. The getXxx
methods where Xxx is a statistic return an array of double
values, where for i = 0,...,n-1 the ith array element is the
value of the given statistic for data range consisting of the ith element of
each of the input n-tuples. For example, if addValue is called
with actual parameters {0, 1, 2}, then {3, 4, 5} and finally {6, 7, 8},
getSum will return a three-element array with values
{0+3+6, 1+4+7, 2+5+8}
Note: This class is not thread-safe. Use
SynchronizedMultivariateSummaryStatistics if concurrent access from multiple
threads is required.
- Since:
- 1.2
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionMultivariateSummaryStatistics(int k, boolean isCovarianceBiasCorrected) Construct a MultivariateSummaryStatistics instance -
Method Summary
Modifier and TypeMethodDescriptionvoidaddValue(double[] value) Add an n-tuple to the datavoidclear()Resets all statistics and storagebooleanReturns true iffobjectis aMultivariateSummaryStatisticsinstance and all statistics have the same values as this.Returns the covariance matrix of the values that have been added.intReturns the dimension of the dataReturns the currently configured geometric mean implementationdouble[]Returns an array whose ith entry is the geometric mean of the ith entries of the arrays that have been added usingaddValue(double[])double[]getMax()Returns an array whose ith entry is the maximum of the ith entries of the arrays that have been added usingaddValue(double[])Returns the currently configured maximum implementationdouble[]getMean()Returns an array whose ith entry is the mean of the ith entries of the arrays that have been added usingaddValue(double[])Returns the currently configured mean implementationdouble[]getMin()Returns an array whose ith entry is the minimum of the ith entries of the arrays that have been added usingaddValue(double[])Returns the currently configured minimum implementationlonggetN()Returns the number of available valuesdouble[]Returns an array whose ith entry is the standard deviation of the ith entries of the arrays that have been added usingaddValue(double[])double[]getSum()Returns an array whose ith entry is the sum of the ith entries of the arrays that have been added usingaddValue(double[])Returns the currently configured Sum implementationdouble[]Returns an array whose ith entry is the sum of logs of the ith entries of the arrays that have been added usingaddValue(double[])Returns the currently configured sum of logs implementationdouble[]getSumSq()Returns an array whose ith entry is the sum of squares of the ith entries of the arrays that have been added usingaddValue(double[])Returns the currently configured sum of squares 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.toString()Generates a text report displaying summary statistics from values that have been added.
-
Constructor Details
-
MultivariateSummaryStatistics
public MultivariateSummaryStatistics(int k, boolean isCovarianceBiasCorrected) Construct a MultivariateSummaryStatistics instance- Parameters:
k- dimension of the dataisCovarianceBiasCorrected- if true, the unbiased sample covariance is computed, otherwise the biased population covariance is computed
-
-
Method Details
-
addValue
Add an n-tuple to the data- Parameters:
value- the n-tuple to add- Throws:
DimensionMismatchException- if the length of the array does not match the one used at construction
-
getDimension
public int getDimension()Returns the dimension of the data- Specified by:
getDimensionin interfaceStatisticalMultivariateSummary- Returns:
- The dimension of the data
-
getN
public long getN()Returns the number of available values- Specified by:
getNin interfaceStatisticalMultivariateSummary- Returns:
- The number of available values
-
getSum
public double[] getSum()Returns an array whose ith entry is the sum of the ith entries of the arrays that have been added usingaddValue(double[])- Specified by:
getSumin interfaceStatisticalMultivariateSummary- Returns:
- the array of component sums
-
getSumSq
public double[] getSumSq()Returns an array whose ith entry is the sum of squares of the ith entries of the arrays that have been added usingaddValue(double[])- Specified by:
getSumSqin interfaceStatisticalMultivariateSummary- Returns:
- the array of component sums of squares
-
getSumLog
public double[] getSumLog()Returns an array whose ith entry is the sum of logs of the ith entries of the arrays that have been added usingaddValue(double[])- Specified by:
getSumLogin interfaceStatisticalMultivariateSummary- Returns:
- the array of component log sums
-
getMean
public double[] getMean()Returns an array whose ith entry is the mean of the ith entries of the arrays that have been added usingaddValue(double[])- Specified by:
getMeanin interfaceStatisticalMultivariateSummary- Returns:
- the array of component means
-
getStandardDeviation
public double[] getStandardDeviation()Returns an array whose ith entry is the standard deviation of the ith entries of the arrays that have been added usingaddValue(double[])- Specified by:
getStandardDeviationin interfaceStatisticalMultivariateSummary- Returns:
- the array of component standard deviations
-
getCovariance
Returns the covariance matrix of the values that have been added.- Specified by:
getCovariancein interfaceStatisticalMultivariateSummary- Returns:
- the covariance matrix
-
getMax
public double[] getMax()Returns an array whose ith entry is the maximum of the ith entries of the arrays that have been added usingaddValue(double[])- Specified by:
getMaxin interfaceStatisticalMultivariateSummary- Returns:
- the array of component maxima
-
getMin
public double[] getMin()Returns an array whose ith entry is the minimum of the ith entries of the arrays that have been added usingaddValue(double[])- Specified by:
getMinin interfaceStatisticalMultivariateSummary- Returns:
- the array of component minima
-
getGeometricMean
public double[] getGeometricMean()Returns an array whose ith entry is the geometric mean of the ith entries of the arrays that have been added usingaddValue(double[])- Specified by:
getGeometricMeanin interfaceStatisticalMultivariateSummary- Returns:
- the array of component geometric means
-
toString
Generates a text report displaying summary statistics from values that have been added. -
clear
public void clear()Resets all statistics and storage -
equals
Returns true iffobjectis aMultivariateSummaryStatisticsinstance and all statistics have the same values as this. -
hashCode
public int hashCode()Returns hash code based on values of statistics -
getSumImpl
Returns the currently configured Sum implementation- Returns:
- the StorelessUnivariateStatistic implementing the sum
-
setSumImpl
public void setSumImpl(StorelessUnivariateStatistic[] sumImpl) throws MathIllegalStateException, DimensionMismatchException 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:
DimensionMismatchException- if the array dimension does not match the one used at constructionMathIllegalStateException- if data has already been added (i.e if n > 0)
-
getSumsqImpl
Returns the currently configured sum of squares implementation- Returns:
- the StorelessUnivariateStatistic implementing the sum of squares
-
setSumsqImpl
public void setSumsqImpl(StorelessUnivariateStatistic[] sumsqImpl) throws MathIllegalStateException, DimensionMismatchException 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:
DimensionMismatchException- if the array dimension does not match the one used at constructionMathIllegalStateException- if data has already been added (i.e if n > 0)
-
getMinImpl
Returns the currently configured minimum implementation- Returns:
- the StorelessUnivariateStatistic implementing the minimum
-
setMinImpl
public void setMinImpl(StorelessUnivariateStatistic[] minImpl) throws MathIllegalStateException, DimensionMismatchException 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:
DimensionMismatchException- if the array dimension does not match the one used at constructionMathIllegalStateException- if data has already been added (i.e if n > 0)
-
getMaxImpl
Returns the currently configured maximum implementation- Returns:
- the StorelessUnivariateStatistic implementing the maximum
-
setMaxImpl
public void setMaxImpl(StorelessUnivariateStatistic[] maxImpl) throws MathIllegalStateException, DimensionMismatchException 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:
DimensionMismatchException- if the array dimension does not match the one used at constructionMathIllegalStateException- if data has already been added (i.e if n > 0)
-
getSumLogImpl
Returns the currently configured sum of logs implementation- Returns:
- the StorelessUnivariateStatistic implementing the log sum
-
setSumLogImpl
public void setSumLogImpl(StorelessUnivariateStatistic[] sumLogImpl) throws MathIllegalStateException, DimensionMismatchException 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:
DimensionMismatchException- if the array dimension does not match the one used at constructionMathIllegalStateException- if data has already been added (i.e if n > 0)
-
getGeoMeanImpl
Returns the currently configured geometric mean implementation- Returns:
- the StorelessUnivariateStatistic implementing the geometric mean
-
setGeoMeanImpl
public void setGeoMeanImpl(StorelessUnivariateStatistic[] geoMeanImpl) throws MathIllegalStateException, DimensionMismatchException 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:
DimensionMismatchException- if the array dimension does not match the one used at constructionMathIllegalStateException- if data has already been added (i.e if n > 0)
-
getMeanImpl
Returns the currently configured mean implementation- Returns:
- the StorelessUnivariateStatistic implementing the mean
-
setMeanImpl
public void setMeanImpl(StorelessUnivariateStatistic[] meanImpl) throws MathIllegalStateException, DimensionMismatchException 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:
DimensionMismatchException- if the array dimension does not match the one used at constructionMathIllegalStateException- if data has already been added (i.e if n > 0)
-