## org.apache.commons.math.stat.correlation
Class SpearmansCorrelation

    java.lang.Object
      org.apache.commons.math.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:
  $Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $

Field Summary
`private RealMatrix` `data` Input data
`private PearsonsCorrelation` `rankCorrelation` Rank correlation
`private RankingAlgorithm` `rankingAlgorithm` Ranking algorithm

Constructor Summary
`SpearmansCorrelation()` Create 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.

Method Summary
`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(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

### 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()

  Create a SpearmansCorrelation without data.

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)
                       throws java.lang.IllegalArgumentException

  Computes the Spearman's rank correlation coefficient between the two arrays. Throws IllegalArgumentException if the arrays do not have the same length or their common length is less than 2

  Parameters:
    `xArray` - first data array
    `yArray` - second data array
  Returns:
    Returns Spearman's rank correlation coefficient for the two arrays
  Throws:
    `java.lang.IllegalArgumentException` - if the arrays lengths do not match or there is insufficient data

### 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-2010 Apache Software Foundation