[R] RE: Comparison of correlation coefficients - Details

Christian.Stratowa@vie.boehringer-ingelheim.com Christian.Stratowa at vie.boehringer-ingelheim.com
Wed Jul 21 13:19:59 CEST 2004

Dear all

I apologize for cross-posting, but first it is accepted custom to 
thank the repliers and give a summary, and second I have still 
the feeling that this problem might be a general statistical problem 
and not necessarily related to microarrays only, but I might be wrong.

First, I want to thank Robert Gentleman, Mark Kimpel and Mark Reiners
for their kind replies. Robert Gentleman kindly pointed me to the
Bioconductor package "MeasurementError.cor" as alternative to "cor.test".
Mark Kimpel suggested that 2-way factorial Anova or the Bioconductor
package "limma", respectively, may be helpful. Mark Reiners suggested
to use the p-value of "cor.test" to test the significance.

Maybe, I miss the point, but being not a statistician I am still unsure
if it is possible to compare correlation coefficients from different 
sample sets. Both, the p-values from "cor.test" and from "compcorr",
could be used as measure of the significance. 
However, is it possible to "normalize" correlation coefficients from
different sample sets? Could an expression such as "corr * (1 - pval)" 
be used for normalization? Maybe, it is not possible to normalize
correlation coefficients?
Would a barplot comparing the correlation coefficients between two
genes for different tissues be meaningful? (Alternatively, I have 
tried to use (1-pval) to calculate the gray-level of the bars.)

Any further suggestions would be appreciated very much.

Best regards
Christian Stratowa

-----Original Message-----
From: Stratowa,Dr.,Christian FEX BIG-AT-V 
Sent: Monday, July 19, 2004 15:00
To: 'bioconductor at stat.math.ethz.ch'
Subject: Comparison of correlation coefficients - Details

Dear all

Maybe, my last mail did not explain my problem correctly:
Since we are interested, which genes have similar expression profiles in a
certain tissue or in different tissues, we have calculated the 
correlation coefficients between all 46,000 x 46,000 genes of the 
HG_U133A/B chipset for about 70 tissues, where the number of samples 
per tissue ranges from 10 to more than 200.

While writing an R-function to display the correlation coefficients between
gene A and B in the different tissues as bar-graph, I realized that it may
not be correct to compare the different correlation coefficients directly,
since the number of samples per tissue varyies between 10 and 200.

Thus, the question is: Is there a way to compare different correlation
coefficients and/or apply some kind of normalization?

Assuming that this might be a well known statistical problem I was browsing
statistics books and the web for more information, but could only find the
function "compcorr" which gives a p-value how well you can trust the 
comparison of two correlation coefficients from different samples.

Even though this might currently not be a direct Bioconductor question, it
is certainly a microarray analysis related question. Any suggestions how to
solve this problem would be greatly appreciated.

Best regards
Christian Stratowa

-----Original Message-----
From: Stratowa,Dr.,Christian FEX BIG-AT-V 
Sent: Tuesday, July 13, 2004 14:40
To: 'bioconductor at stat.math.ethz.ch'
Subject: Comparison of correlation coefficients

Dear Bioconductor 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 bioconductor-help, could you 
please reply to me (in addition to bioconductor-help)

P.S.: I have posted this first at r-help and it was suggested to me to 
post it here, too.

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