org.apache.commons.math3.stat.correlation

## Class SpearmansCorrelation

- java.lang.Object
- - org.apache.commons.math3.stat.correlation.SpearmansCorrelation

-     public class SpearmansCorrelation
      extends java.lang.Object

  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.

  Since:
    2.0
  Version:
    $Id: SpearmansCorrelation.java 1422313 2012-12-15 18:53:41Z psteitz $

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private RealMatrix` | `data` Input data
    `private PearsonsCorrelation` | `rankCorrelation` Rank correlation
    `private RankingAlgorithm` | `rankingAlgorithm` Ranking algorithm

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SpearmansCorrelation()` Create a SpearmansCorrelation without data.
    `SpearmansCorrelation(RankingAlgorithm rankingAlgorithm)` Create a SpearmansCorrelation with the given ranking algorithm.
    `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.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `RealMatrix` | `computeCorrelationMatrix(double[][] matrix)` Computes the Spearman's rank correlation matrix for the columns of the input rectangular array.
    `RealMatrix` | `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.
    `RealMatrix` | `getCorrelationMatrix()` Calculate the Spearman Rank Correlation Matrix.
    `PearsonsCorrelation` | `getRankCorrelation()` Returns a `PearsonsCorrelation` instance constructed from the ranked input data.
    `private void` | `rankTransform(RealMatrix matrix)` Applies rank transform to each of the columns of `matrix` using the current `rankingAlgorithm`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### data

          private final RealMatrix data

      Input data

    - #### rankingAlgorithm

          private final RankingAlgorithm rankingAlgorithm

      Ranking algorithm

    - #### rankCorrelation

          private final PearsonsCorrelation rankCorrelation

      Rank correlation

  - ### Constructor Detail

    - #### SpearmansCorrelation

          public SpearmansCorrelation()

      Create a SpearmansCorrelation without data.

    - #### SpearmansCorrelation

          public SpearmansCorrelation(RankingAlgorithm rankingAlgorithm)

      Create a SpearmansCorrelation with the given ranking algorithm.
      Parameters:
        `rankingAlgorithm` - ranking algorithm
      Since:
        3.1

    - #### SpearmansCorrelation

          public SpearmansCorrelation(RealMatrix dataMatrix)

      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)

      Create a SpearmansCorrelation with the given input data matrix and ranking algorithm.
      Parameters:
        `dataMatrix` - matrix of data with columns representing variables to correlate
        `rankingAlgorithm` - ranking algorithm

  - ### Method Detail

    - #### getCorrelationMatrix

          public RealMatrix getCorrelationMatrix()

      Calculate the Spearman Rank Correlation Matrix.
      Returns:
        Spearman Rank Correlation Matrix

    - #### getRankCorrelation

          public PearsonsCorrelation getRankCorrelation()

      Returns a `PearsonsCorrelation` instance constructed from the ranked input data. That is, `new SpearmansCorrelation(matrix).getRankCorrelation()` is equivalent to `new PearsonsCorrelation(rankTransform(matrix))` where `rankTransform(matrix)` is the result of applying the configured `RankingAlgorithm` to each of the columns of `matrix.`
      Returns:
        PearsonsCorrelation among ranked column data

    - #### computeCorrelationMatrix

          public RealMatrix computeCorrelationMatrix(RealMatrix matrix)

      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

          public RealMatrix computeCorrelationMatrix(double[][] matrix)

      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 array
        `yArray` - second data array
      Returns:
        Returns Spearman's rank correlation coefficient for the two arrays
      Throws:
        `DimensionMismatchException` - if the arrays lengths do not match
        `MathIllegalArgumentException` - if the array length is less than 2

    - #### rankTransform

          private void rankTransform(RealMatrix matrix)

      Applies rank transform to each of the columns of `matrix` using the current `rankingAlgorithm`
      Parameters:
        `matrix` - matrix to transform

Copyright (c) 2003-2013 Apache Software Foundation