# [R] Fisher's r to z' transformation - help needed

Duncan Murdoch murdoch at stats.uwo.ca
Wed May 23 14:38:03 CEST 2007

```On 5/23/2007 7:40 AM, Mike White wrote:
> I am trying to use Fisher's z' transformation of the Pearson's r but the
> standard error does not appear to be correct.  I have simulated an example
> using the R code below.  The z' data appears to have a reasonably normal
> distribution but the standard error given by the formula 1/sqrt(N-3) (from
> http://davidmlane.com/hyperstat/A98696.html) gives a different results than
> sd(z).  Can anyone tell me where I am going wrong?

Your simulation is very strange.  Why are you calculating the
correlation of data with its own mean?

Here's a simpler simulation that seems to confirm the approximation is
reasonable:

> p <- 10
> sdx <- 1
> sdy <- 1
> x <- matrix(rnorm(1000*p, sd=sdx), 1000, p)
> y <- matrix(rnorm(1000*p, mean=x, sd=sdy), 1000, p)

The true correlation is sdx/sqrt(sdx^2 + sdy^2), i.e. 0.71.

> r <- numeric(1000)
> for (i in 1:1000) r[i] <- cor(x[i,], y[i,])
> f <- 0.5*(log(1+r) - log(1-r))
> sd(f)
 0.3739086
> 1/sqrt(p-3)
 0.3779645

> p <- 5
> x <- matrix(rnorm(1000*p, sd=sdx), 1000, p)
> y <- matrix(rnorm(1000*p, mean=x, sd=sdy), 1000, p)
> r <- numeric(1000)
> for (i in 1:1000) r[i] <- cor(x[i,], y[i,])
> f <- 0.5*(log(1+r) - log(1-r))
> sd(f)
 0.6571383
> 1/sqrt(p-3)
 0.7071068

Duncan Murdoch

```