Package org.hipparchus.stat.correlation
Class SpearmansCorrelation
java.lang.Object
org.hipparchus.stat.correlation.SpearmansCorrelation
Spearman's rank correlation. This implementation performs a rank
transformation on the input data and then computes
PearsonsCorrelation
on the ranked data.
By default, ranks are computed using NaturalRanking
with default
strategies for handling NaNs and ties in the data (NaNs maximal, ties averaged).
The ranking algorithm can be set using a constructor argument.
-
Constructor Summary
ConstructorDescriptionCreate a SpearmansCorrelation without data.SpearmansCorrelation
(RealMatrix dataMatrix) Create a SpearmansCorrelation from the given data matrix.SpearmansCorrelation
(RealMatrix dataMatrix, RankingAlgorithm rankingAlgorithm) Create a SpearmansCorrelation with the given input data matrix and ranking algorithm.SpearmansCorrelation
(RankingAlgorithm rankingAlgorithm) Create a SpearmansCorrelation with the given ranking algorithm. -
Method Summary
Modifier and TypeMethodDescriptioncomputeCorrelationMatrix
(double[][] matrix) Computes the Spearman's rank correlation matrix for the columns of the input rectangular array.computeCorrelationMatrix
(RealMatrix matrix) Computes the Spearman's rank correlation matrix for the columns of the input matrix.double
correlation
(double[] xArray, double[] yArray) Computes the Spearman's rank correlation coefficient between the two arrays.Calculate the Spearman Rank Correlation Matrix.Returns aPearsonsCorrelation
instance constructed from the ranked input data.
-
Constructor Details
-
SpearmansCorrelation
public SpearmansCorrelation()Create a SpearmansCorrelation without data. -
SpearmansCorrelation
Create a SpearmansCorrelation with the given ranking algorithm.- Parameters:
rankingAlgorithm
- ranking algorithm- Throws:
MathIllegalArgumentException
- if the providedRankingAlgorithm
is of typeNaturalRanking
and uses aNaNStrategy.REMOVED
strategy
-
SpearmansCorrelation
Create a SpearmansCorrelation from the given data matrix.- Parameters:
dataMatrix
- matrix of data with columns representing variables to correlate
-
SpearmansCorrelation
public SpearmansCorrelation(RealMatrix dataMatrix, RankingAlgorithm rankingAlgorithm) throws MathIllegalArgumentException Create a SpearmansCorrelation with the given input data matrix and ranking algorithm.- Parameters:
dataMatrix
- matrix of data with columns representing variables to correlaterankingAlgorithm
- ranking algorithm- Throws:
MathIllegalArgumentException
- if the providedRankingAlgorithm
is of typeNaturalRanking
and uses aNaNStrategy.REMOVED
strategy
-
-
Method Details
-
getCorrelationMatrix
Calculate the Spearman Rank Correlation Matrix.- Returns:
- Spearman Rank Correlation Matrix
- Throws:
NullPointerException
- if this instance was created with no data
-
getRankCorrelation
Returns aPearsonsCorrelation
instance constructed from the ranked input data. That is,new SpearmansCorrelation(matrix).getRankCorrelation()
is equivalent tonew PearsonsCorrelation(rankTransform(matrix))
whererankTransform(matrix)
is the result of applying the configuredRankingAlgorithm
to each of the columns ofmatrix.
Returns null if this instance was created with no data.
- Returns:
- PearsonsCorrelation among ranked column data
-
computeCorrelationMatrix
Computes the Spearman's rank correlation matrix for the columns of the input matrix.- Parameters:
matrix
- matrix with columns representing variables to correlate- Returns:
- correlation matrix
-
computeCorrelationMatrix
Computes the Spearman's rank correlation matrix for the columns of the input rectangular array. The columns of the array represent values of variables to be correlated.- Parameters:
matrix
- matrix with columns representing variables to correlate- Returns:
- correlation matrix
-
correlation
public double correlation(double[] xArray, double[] yArray) Computes the Spearman's rank correlation coefficient between the two arrays.- Parameters:
xArray
- first data arrayyArray
- second data array- Returns:
- Returns Spearman's rank correlation coefficient for the two arrays
- Throws:
MathIllegalArgumentException
- if the arrays lengths do not matchMathIllegalArgumentException
- if the array length is less than 2
-