Learn R Programming

DescTools (version 0.99.56)

FisherZ: Fisher-Transformation for Correlation to z-Score

Description

Convert a correlation to a z score or z to r using the Fisher transformation or find the confidence intervals for a specified correlation.

Usage

FisherZ(rho)
FisherZInv(z)
CorCI(rho, n, conf.level = 0.95, alternative = c("two.sided", "less", "greater"))

Value

z value corresponding to r (in FisherZ)

r corresponding to z (in FisherZInv)

rho, lower and upper confidence intervals (CorCI)

Arguments

rho

the Pearson's correlation coefficient

z

a Fisher z transformed value

n

sample size used for calculating the confidence intervals

alternative

is a character string, one of "greater", "less", or "two.sided", or the initial letter of each, indicating the specification of the alternative hypothesis. "greater" corresponds to positive association, "less" to negative association.

conf.level

confidence level for the returned confidence interval, restricted to lie between zero and one.

Author

William Revelle <revelle@northwestern.edu>,
slight modifications Andri Signorell <andri@signorell.net> based on R-Core code

Details

The sampling distribution of Pearson's r is not normally distributed. Fisher developed a transformation now called "Fisher's z-transformation" that converts Pearson's r to the normally distributed variable z. The formula for the transformation is:

$$z_r = tanh^{-1}(r) = \frac{1}{2}log\left ( \frac{1+r}{1-r}\right )$$

See Also

Examples

Run this code
cors <- seq(-.9, .9, .1)

zs <- FisherZ(cors)
rs <- FisherZInv(zs)
round(zs, 2)
n <- 30
r <- seq(0, .9, .1)
rc <- t(sapply(r, CorCI, n=n))
t <- r * sqrt(n-2) / sqrt(1-r^2)
p <- (1 - pt(t, n-2)) / 2

r.rc <- data.frame(r=r, z=FisherZ(r), lower=rc[,2], upper=rc[,3], t=t, p=p)

round(r.rc,2)

Run the code above in your browser using DataLab