A confidence interval for the correlation coefficient

A confidence interval for the  population correlation coefficient \rho can be obtained with the Fisher-r-to-z transformation.   The steps are as follows.

1. Transform r to a standard normal deviate Z
Z_{xy} = \frac{1}{2}ln\left(\frac{1 + r}{1  –  r}\right), \tag{1}
which is equal to:
Z_{xy} = arctanh(r). \tag{2}
2. Determine the standard error for Z:
s_Z = \sqrt\frac{1}{N  –  3}. \tag{3}
3. Calculate the Margin of Error (MoE) for Z:
MOE_Z = 1.96*s_z. \tag{4}
4. Add to and substract MoE  from Z to obtain a 95% Confidence Interval for Z.
5. Transform the upper and lower limits of the CI for Z to obtain the corresponding limits for \rho, using:
r_Z = \frac{e^{2Z} –  1}{e^{2Z} + 1}, \tag{4}
which is equal to:
r_Z = tanh(Z). \tag{5}

The following R-code does all the work:

conf.int.rho <- function(r, N) {
lims.rho =  tanh(atanh(r) + c(qnorm(.025),
qnorm(.975)) * sqrt(1/(N - 3)))
return(lims.rho)
}



So, if you have r = .50 and N = .50, just run the above function in R to obtain a confidence interval for the correlation coefficient.

conf.int.rho(.50, 50)

## [1] 0.2574879 0.6832563