SciPy

scipy.stats.mstats.spearmanr

scipy.stats.mstats.spearmanr(x, y, use_ties=True)[source]

Calculates a Spearman rank-order correlation coefficient and the p-value to test for non-correlation.

The Spearman correlation is a nonparametric measure of the linear relationship between two datasets. Unlike the Pearson correlation, the Spearman correlation does not assume that both datasets are normally distributed. Like other correlation coefficients, this one varies between -1 and +1 with 0 implying no correlation. Correlations of -1 or +1 imply an exact linear relationship. Positive correlations imply that as x increases, so does y. Negative correlations imply that as x increases, y decreases.

Missing values are discarded pair-wise: if a value is missing in x, the corresponding value in y is masked.

The p-value roughly indicates the probability of an uncorrelated system producing datasets that have a Spearman correlation at least as extreme as the one computed from these datasets. The p-values are not entirely reliable but are probably reasonable for datasets larger than 500 or so.

Parameters:

x : array_like

The length of x must be > 2.

y : array_like

The length of y must be > 2.

use_ties : bool, optional

Whether the correction for ties should be computed.

Returns:

spearmanr : float

Spearman correlation coefficient, 2-tailed p-value.

References

[CRCProbStat2000] section 14.7