[R] Comparison of correlation coefficients

Christian.Stratowa@vie.boehringer-ingelheim.com Christian.Stratowa at vie.boehringer-ingelheim.com
Tue Jul 13 14:06:25 CEST 2004

Dear expeRts

Is it possible to compare correlation coefficients or to normalize 
different correlation coefficients?

Concretely, we have the following situation:
We have gene expression profiles for different tissues, where the 
number of samples per tissue are different, ranging from 10 to 250.
We are able to determine the correlation between two genes A and B
for each tissue separately, using "cor.test". However, the question
arises if the correlation coefficients between different tissues
can be compared or if they must somehow be "normalized", since the
number of samples per tissue varyies. 

Searching the web I found the function "compcorr", see:
and implemented it in R:

compcorr <- function(n1, r1, n2, r2){
# compare two correlation coefficients
# return difference and p-value as list(diff, pval)

#	Fisher Z-transform
	zf1 <- 0.5*log((1 + r1)/(1 - r1))
	zf2 <- 0.5*log((1 + r2)/(1 - r2))

#	difference
	dz <- (zf1 - zf2)/sqrt(1/(n1 - 3) + (1/(n2 - 3)))

#	p-value
	pv <- 2*(1 - pnorm(abs(dz)))

	return(list(diff=dz, pval=pv))

Would it make sense to use the resultant p-value to "normalize"
the correlation coefficients, using: corr <- corr * compcorr()$pval

Is there a better way or an alternative to "normalize" the
correlation coefficients obtained for different tissues?

Thank you in advance for your help.
Since in the company I am not subscribed to r-help, could you 
please reply to me (in addition to r-help)

Best regards
Christian Stratowa

Christian Stratowa, PhD
Boehringer Ingelheim Austria
Dept NCE Lead Discovery - Bioinformatics
Dr. Boehringergasse 5-11
A-1121 Vienna, Austria
Tel.: ++43-1-80105-2470
Fax: ++43-1-80105-2782
email: christian.stratowa at vie.boehringer-ingelheim.com

More information about the R-help mailing list