org.apache.commons.math3.stat.correlation
public class PearsonsCorrelation extends Object
The constructors that take RealMatrix
or
double[][]
arguments generate correlation matrices. The
columns of the input matrices are assumed to represent variable values.
Correlations are given by the formula
cor(X, Y) = Σ[(x_{i}  E(X))(y_{i}  E(Y))] / [(n  1)s(X)s(Y)]
where E(X)
is the mean of X
, E(Y)
is the mean of the Y
values and s(X), s(Y) are standard deviations.
To compute the correlation coefficient for a single pair of arrays, use PearsonsCorrelation()
to construct an instance with no data and then correlation(double[], double[])
.
Correlation matrices can also be computed directly from an instance with no data using
computeCorrelationMatrix(double[][])
. In order to use getCorrelationMatrix()
,
getCorrelationPValues()
, or getCorrelationStandardErrors()
; however, one of the
constructors supplying data or a covariance matrix must be used to create the instance.
Constructor and Description 

PearsonsCorrelation()
Create a PearsonsCorrelation instance without data.

PearsonsCorrelation(Covariance covariance)
Create a PearsonsCorrelation from a
Covariance . 
PearsonsCorrelation(double[][] data)
Create a PearsonsCorrelation from a rectangular array
whose columns represent values of variables to be correlated.

PearsonsCorrelation(RealMatrix matrix)
Create a PearsonsCorrelation from a RealMatrix whose columns
represent variables to be correlated.

PearsonsCorrelation(RealMatrix covarianceMatrix,
int numberOfObservations)
Create a PearsonsCorrelation from a covariance matrix.

Modifier and Type  Method and Description 

RealMatrix 
computeCorrelationMatrix(double[][] data)
Computes the correlation matrix for the columns of the
input rectangular array.

RealMatrix 
computeCorrelationMatrix(RealMatrix matrix)
Computes the correlation matrix for the columns of the
input matrix, using
correlation(double[], double[]) . 
double 
correlation(double[] xArray,
double[] yArray)
Computes the Pearson's productmoment correlation coefficient between two arrays.

RealMatrix 
covarianceToCorrelation(RealMatrix covarianceMatrix)
Derives a correlation matrix from a covariance matrix.

RealMatrix 
getCorrelationMatrix()
Returns the correlation matrix.

RealMatrix 
getCorrelationPValues()
Returns a matrix of pvalues associated with the (twosided) null
hypothesis that the corresponding correlation coefficient is zero.

RealMatrix 
getCorrelationStandardErrors()
Returns a matrix of standard errors associated with the estimates
in the correlation matrix.
getCorrelationStandardErrors().getEntry(i,j) is the standard
error associated with getCorrelationMatrix.getEntry(i,j) 
public PearsonsCorrelation()
public PearsonsCorrelation(double[][] data)
data
 rectangular array with columns representing variablesMathIllegalArgumentException
 if the input data array is not
rectangular with at least two rows and two columns.correlation(double[], double[])
public PearsonsCorrelation(RealMatrix matrix)
matrix
 matrix with columns representing variables to correlateMathIllegalArgumentException
 if the matrix does not contain sufficient datacorrelation(double[], double[])
public PearsonsCorrelation(Covariance covariance)
Covariance
. The correlation
matrix is computed by scaling the Covariance's covariance matrix.
The Covariance instance must have been created from a data matrix with
columns representing variable values.covariance
 Covariance instancepublic PearsonsCorrelation(RealMatrix covarianceMatrix, int numberOfObservations)
covarianceMatrix
 covariance matrixnumberOfObservations
 the number of observations in the dataset used to compute
the covariance matrixpublic RealMatrix getCorrelationMatrix()
This method will return null if the argumentless constructor was used
to create this instance, even if computeCorrelationMatrix(double[][])
has been called before it is activated.
public RealMatrix getCorrelationStandardErrors()
getCorrelationStandardErrors().getEntry(i,j)
is the standard
error associated with getCorrelationMatrix.getEntry(i,j)
The formula used to compute the standard error is
SE_{r} = ((1  r^{2}) / (n  2))^{1/2}
where r
is the estimated correlation coefficient and
n
is the number of observations in the source dataset.
To use this method, one of the constructors that supply an input matrix must have been used to create this instance.
NullPointerException
 if this instance was created with no datapublic RealMatrix getCorrelationPValues()
getCorrelationPValues().getEntry(i,j)
is the probability
that a random variable distributed as t_{n2}
takes
a value with absolute value greater than or equal to
r((n  2) / (1  r^{2}))^{1/2}
The values in the matrix are sometimes referred to as the significance of the corresponding correlation coefficients.
To use this method, one of the constructors that supply an input matrix must have been used to create this instance.
MaxCountExceededException
 if an error occurs estimating probabilitiesNullPointerException
 if this instance was created with no datapublic RealMatrix computeCorrelationMatrix(RealMatrix matrix)
correlation(double[], double[])
.
Throws MathIllegalArgumentException if the matrix does not have at least
two columns and two rows. Pairwise correlations are set to NaN if one
of the correlates has zero variance.matrix
 matrix with columns representing variables to correlateMathIllegalArgumentException
 if the matrix does not contain sufficient datacorrelation(double[], double[])
public RealMatrix computeCorrelationMatrix(double[][] data)
data
 matrix with columns representing variables to correlateMathIllegalArgumentException
 if the array does not contain sufficient datacorrelation(double[], double[])
public double correlation(double[] xArray, double[] yArray)
Throws MathIllegalArgumentException if the arrays do not have the same length
or their common length is less than 2. Returns NaN
if either of the arrays
has zero variance (i.e., if one of the arrays does not contain at least two distinct
values).
xArray
 first data arrayyArray
 second data arrayDimensionMismatchException
 if the arrays lengths do not matchMathIllegalArgumentException
 if there is insufficient datapublic RealMatrix covarianceToCorrelation(RealMatrix covarianceMatrix)
Uses the formula
r(X,Y) = cov(X,Y)/s(X)s(Y)
where
r(·,·)
is the correlation coefficient and
s(·)
means standard deviation.
covarianceMatrix
 the covariance matrixCopyright © 2003–2015 The Apache Software Foundation. All rights reserved.