/
spearman

spearman

The spearman operator computes a rank-based measure of association called Spearman's rho. Available only in the Enterprise Edition.

Synopsis

spearman(A,B);

Library

The spearman operator resides in the Linear Algebra library. Run the following query to load this library:

AFL% load_library('linear_algebra');

Summary

Spearman's rho,

Loading
, or the Spearman rank correlation coefficient, is a non-parametric measure of dependence between two variables. Spearman's
Loading
 is defined as the Pearson correlation coefficient of the ranks of the two variables.  For a sample population of size
Loading
 and two arrays
Loading
 and
Loading
 let :

Loading

Loading

where ties in rank are defined as the mean of the tied ranks had they been assigned sequentially, and

Loading

Then Spearman's 

Loading
 is defined as

Loading

which reduces to

Loading

Example

Calculate Spearman's rho for the wikipedia example of 10 people's IQ's and the corresponding number of hours watching TV:

  1. Create a vector of 10 IQ's:

    AFL% store(build(<iq:double>[i=1:10; j=0:0],'[[106], [86],[100],[101],[99],[103],[97],[113],[112],[110]]',true),IQ);


    The output is:

    {i,j} iq
    {1,0} 106
    {2,0} 86
    {3,0} 100
    {4,0} 101
    {5,0} 99
    {6,0} 103
    {7,0} 97
    {8,0} 113
    {9,0} 112
    {10,0} 110
  2. Create the coresponding vector of hours-per-week:

    AFL% store(build(<hours:double>[i=1:10; j=0:0],'[[7],[0],[27],[50],[28],[29],[20],[12],[6],[17]]',true),HOURS);


    The output is:

    {i,j} hours
    {1,0} 7
    {2,0} 0
    {3,0} 27
    {4,0} 50
    {5,0} 28
    {6,0} 29
    {7,0} 20
    {8,0} 12
    {9,0} 6
    {10,0} 17

     

  3. Calculate Spearman's rho between 'iq' and 'hours':

    AFL% spearman(IQ, HOURS);


    The output is:

    {j1,j2} spearman
    {0,0} -0.175758

    This result suggests that the relationship between IQ and hours-of-TV/week is weak and should it exist, would be negatively correlated.



Related content