[R] R's Spearman

Chung-hong Chan chainsawtiney at gmail.com
Tue May 29 05:38:15 CEST 2007


Hi,

You can try with
cor.test(rank(y[1]),rank(y[2]))


On 5/29/07, Raymond Wan <rwan at kuicr.kyoto-u.ac.jp> wrote:
>
> Hi all,
>
> I am trying to figure out the formula used by R's Spearman rho (using
> cor(method="spearman")) because I can't seem to get the same value as by
> calculating "by hand".  Perhaps I'm using "cor" wrong, but I don't know
> where.  Basically, I am running these commands:
>
>  > y=read.table(file="tmp",header=TRUE,sep="\t")
>  > y
>    IQ Hours
> 1 106     7
> 2  86     0
> 3  97    20
> 4 113    12
> 5 120    12
> 6 110    17
>  > cor(y[1],y[2],method="spearman")
>        Hours
> IQ 0.2319084
>
> [it's an abbreviated example of one I took from Wikipedia].  I
> calculated by hand (apologies if the table looks strange when pasted
> into e-mail):
>
>       IQ    Hours    rank(IQ)  rank(hours)    diff    diff^2
> 1    106    7        3         2                 1    1
> 2     86    0        1         1                 0    0
> 3     97    20       2         6                -4    16
> 4    113    12       5         3.5             1.5    2.25
> 5    120    12       6         3.5             2.5    6.25
> 6    110    17       4         5                -1    1
>                                                       26.5
>
>                                               rho=    0.242857
>
> where rho = (1 - ((6 * 26.5) / 6 * (6^2 - 1))).  I kept modifying the
> table and realized that the difference in result comes from ties.  i.e.,
> if I remove the tie in rows 4 and 5, I get the same result from both cor
> and calculating by hand.  Perhaps I'm handling ties wrong...does anyone
> know how R does it or perhaps I need to change how I'm using it?
>
> Thank you!
>
> Ray
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>


-- 
"The scientists of today think deeply instead of clearly. One must be
sane to think clearly, but one can think deeply and be quite insane."
Nikola Tesla
http://www.macgrass.com



More information about the R-help mailing list