public class StorelessCovariance extends Covariance
This class is based on a paper written by Philippe Pébay: Formulas for Robust, One-Pass Parallel Computation of Covariances and Arbitrary-Order Statistical Moments, 2008, Technical Report SAND2008-6212, Sandia National Laboratories.
Note: the underlying covariance matrix is symmetric, thus only the upper triangular part of the matrix is stored and updated each increment.
| Constructor and Description |
|---|
StorelessCovariance(int dim)
Create a bias corrected covariance matrix with a given dimension.
|
StorelessCovariance(int dim,
boolean biasCorrected)
Create a covariance matrix with a given number of rows and columns and the
indicated bias correction.
|
| Modifier and Type | Method and Description |
|---|---|
double |
getCovariance(int xIndex,
int yIndex)
Get the covariance for an individual element of the covariance matrix.
|
RealMatrix |
getCovarianceMatrix()
Returns the covariance matrix
|
double[][] |
getData()
Return the covariance matrix as two-dimensional array.
|
int |
getN()
This
Covariance method is not supported by a StorelessCovariance,
since the number of bivariate observations does not have to be the same for different
pairs of covariates - i.e., N as defined in Covariance.getN() is undefined. |
void |
increment(double[] data)
Increment the covariance matrix with one row of data.
|
computeCovarianceMatrix, computeCovarianceMatrix, computeCovarianceMatrix, computeCovarianceMatrix, covariance, covariancepublic StorelessCovariance(int dim)
dim - the dimension of the square covariance matrixpublic StorelessCovariance(int dim,
boolean biasCorrected)
dim - the dimension of the covariance matrixbiasCorrected - if true the covariance estimate is corrected
for bias, i.e. n-1 in the denominator, otherwise there is no bias correction,
i.e. n in the denominator.public double getCovariance(int xIndex,
int yIndex)
throws NumberIsTooSmallException
xIndex - row index in the covariance matrixyIndex - column index in the covariance matrixNumberIsTooSmallException - if the number of observations
in the cell is < 2public void increment(double[] data)
throws DimensionMismatchException
data - array representing one row of data.DimensionMismatchException - if the length of rowData
does not match with the covariance matrixpublic RealMatrix getCovarianceMatrix() throws NumberIsTooSmallException
getCovarianceMatrix in class CovarianceNumberIsTooSmallException - if the number of observations
in a cell is < 2public double[][] getData()
throws NumberIsTooSmallException
NumberIsTooSmallException - if the number of observations
for a cell is < 2public int getN()
throws MathUnsupportedOperationException
Covariance method is not supported by a StorelessCovariance,
since the number of bivariate observations does not have to be the same for different
pairs of covariates - i.e., N as defined in Covariance.getN() is undefined.getN in class CovarianceMathUnsupportedOperationExceptionMathUnsupportedOperationException - in all casesCopyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.