[R] Difference betweeen cor.test() and formula everyone says to use

Joshua Wiley jwiley.psych at gmail.com
Fri Oct 17 02:20:26 CEST 2014


Hi Jeremy,

I don't know about references, but this around.  See for example:
http://afni.nimh.nih.gov/sscc/gangc/tr.html

the relevant line in cor.test is:

STATISTIC <- c(t = sqrt(df) * r/sqrt(1 - r^2))

You can convert *t*s to *r*s and vice versa.

Best,

Josh



On Fri, Oct 17, 2014 at 10:32 AM, Jeremy Miles <jeremy.miles at gmail.com>
wrote:

> I'm trying to understand how cor.test() is calculating the p-value of
> a correlation. It gives a p-value based on t, but every text I've ever
> seen gives the calculation based on z.
>
> For example:
> > data(cars)
> > with(cars[1:10, ], cor.test(speed, dist))
>
> Pearson's product-moment correlation
>
> data:  speed and dist
> t = 2.3893, df = 8, p-value = 0.04391
> alternative hypothesis: true correlation is not equal to 0
> 95 percent confidence interval:
>  0.02641348 0.90658582
> sample estimates:
>       cor
> 0.6453079
>
> But when I use the regular formula:
> > r <- cor(cars[1:10, ])[1, 2]
> > r.z <- fisherz(r)
> > se <- se <- 1/sqrt(10 - 3)
> > z <- r.z / se
> > (1 - pnorm(z))*2
> [1] 0.04237039
>
> My p-value is different.  The help file for cor.test doesn't (seem to)
> have any reference to this, and I can see in the source code that it
> is doing something different. I'm just not sure what.
>
> Thanks,
>
> Jeremy
>
> ______________________________________________
> R-help at r-project.org 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.
>



-- 
Joshua F. Wiley
Ph.D. Student, UCLA Department of Psychology
http://joshuawiley.com/
Senior Analyst, Elkhart Group Ltd.
http://elkhartgroup.com
Office: 260.673.5518

	[[alternative HTML version deleted]]



More information about the R-help mailing list