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) = Σ[(xi - E(X))(yi - 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 product-moment 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 p-values associated with the (two-sided) 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
SEr = ((1 - r2) / (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 tn-2
takes
a value with absolute value greater than or equal to
|r|((n - 2) / (1 - r2))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–2016 The Apache Software Foundation. All rights reserved.