The R_CORRELATE function computes Spearman’s (rho) or Kendalls’s (tau) rank correlation of two sample populations *X *and *Y*. The result is a two-element vector containing the rank correlation coefficient and the two-sided significance of its deviation from zero. The significance is a value in the interval [0.0, 1.0]; a small value indicates a significant correlation.

where *Rx*_{i} and *Ry*_{i} are the magnitude-based ranks among *X *and *Y*, respectively. Elements of identical magnitude are ranked using a rank equal to the mean of the ranks that would otherwise be assigned.

This routine is written in the IDL language. Its source code can be found in the file r_correlate.pro in the lib subdirectory of the IDL distribution.

## Examples

; Define two n-element sample populations:

X = [257, 208, 296, 324, 240, 246, 267, 311, 324, 323, 263, $

305, 270, 260, 251, 275, 288, 242, 304, 267]

Y = [201, 56, 185, 221, 165, 161, 182, 239, 278, 243, 197, $

271, 214, 216, 175, 192, 208, 150, 281, 196]

; Compute Spearman's (rho) rank correlation of X and Y.

result = R_CORRELATE(X, Y)

PRINT, "Spearman's (rho) rank correlation: ", result

; Compute Kendalls's (tau) rank correlation of X and Y:

result = R_CORRELATE(X, Y, /KENDALL)

PRINT, "Kendalls's (tau) rank correlation: ", result

IDL prints:

Spearman’s (rho) rank correlation: 0.835967 4.42899e-006

Kendalls’s (tau) rank correlation: 0.624347 0.000118729

## Syntax

*Result* = R_CORRELATE( *X*, *Y* [, D=*variable*] [, /KENDALL] [, PROBD=*variable*] [, ZD=*variable*] )

## Return Value

Returns a two-element vector indicating the rank correlation coefficient and the significance of its deviation from zero.

## Arguments

### X

An *n*-element integer, single-, or double-precision floating-point vector.

### Y

An *n*-element integer, single-, or double-precision floating-point vector.

## Keywords

### D

Set this keyword to a named variable that will contain the sum-squared difference of ranks. If the KENDALL keyword is set, this parameter is returned as zero.

### KENDALL

Set this keyword to compute Kendalls’s (tau) rank correlation. By default, Spearman’s (rho) rank correlation is computed.

### PROBD

Set this keyword to a named variable that will contain the two-sided significance level of ZD. If the KENDALL keyword is set, this parameter is returned as zero.

### ZD

Set this keyword to a named variable that will contain the number of standard deviations by which D deviates from its null-hypothesis expected value. If the KENDALL keyword is set, this parameter is returned as zero.

## Version History

4.0 |
Introduced |

## Resources and References

*Numerical Recipes, The Art of Scientific Computing (Second Edition)*, Cambridge University Press (ISBN 0-521-43108-5).

## See Also

A_CORRELATE, C_CORRELATE, CORRELATE, M_CORRELATE, P_CORRELATE