Hello, I have three numerical variables and I would like to test if their correlation is significantly different. I have seen that there is a package that "Test the difference between two (paired or unpaired) correlations". [https://www.personality-project.org/r/html/paired.r.html] However, there is the need to convert the correlations to "z scores using the Fisher r-z transform". I have seen that there is another package that does that [https://search.r-project.org/CRAN/refmans/DescTools/html/FisherZ.html]. Yet, I do not understand how to process the data. Shall I pass the raw data or the correlations directly?
I have made the following working example: ``` # define data v1 <- c(62.480, 59.492, 74.060, 88.519, 91.417, 53.907, 64.202, 62.426, 54.406, 88.117) v2 <- c(56.814, 42.005, 56.074, 65.990, 81.572, 53.855, 50.335, 63.537, 41.713, 78.265) v3 <- c(54.170, 64.224, 57.569, 85.089, 104.056, 48.713, 61.239, 60.290, 67.308, 71.179) # visual exploration par(mfrow=c(2, 1)) plot(v2~v1, ylim=c(min(c(v1,v2,v3)), max(c(v1,v2,v3))), xlim=c(min(c(v1,v2,v3)), max(c(v1,v2,v3))), main="V1 vs V2") abline(lm(v2~v1)) plot(v3~v1, ylim=c(min(c(v1,v2,v3)), max(c(v1,v2,v3))), xlim=c(min(c(v1,v2,v3)), max(c(v1,v2,v3))), main="V1 vs V3") abline(lm(v3~v1)) ## test differences in correlation # convert raw data into z-scores library(psych) library(DescTools) FisherZ(v1) # I cannot convert the raw data into z scores (same for the other variables): > [1] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN > Warning message: > In log((1 + rho)/(1 - rho)) : NaNs produced # convert correlations into z scores # (the correlation score of 0.79 has been converted into 1.08; is this correct?) FisherZ(lm(v2~v1)$coefficients[2]) > v1 > 1.081667 lm(v2~v1)$coefficients[2] > v1 > 0.7938164 # apply test v1_v2 = FisherZ(lm(v2~v1)$coefficients[2]) v1_v3 = FisherZ(lm(v3~v1)$coefficients[2]) paired.r(v1_v2, v1_v3, yz=NULL, length(v1), n2=NULL, twotailed=TRUE) > Call: paired.r(xy = v1_v2, xz = v1_v3, yz = NULL, n = length(v1), n2 = NULL, > twotailed = TRUE) > [1] "test of difference between two independent correlations" > z = NaN With probability = NaNWarning messages: > 1: In log((1 + xy)/(1 - xy)) : NaNs produced > 2: In log((1 + xz)/(1 - xz)) : NaNs produced ``` What is the right way to run this test? Shall I apply also yz? Thank you -- Best regards, Luigi ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.