Peut-on comparer les corrélations entre les groupes en comparant les pentes de régression?

10

Dans cette question, ils demandent comment comparer Pearson r pour deux groupes indépendants (tels que les hommes contre les femmes). La réponse et les commentaires suggèrent deux façons:

  1. Utilisez la formule bien connue de Fisher utilisant la "z-tranformation" de r;
  2. Utilisez la comparaison des pentes (coefficients de régression).

Ce dernier pourrait être facilement réalisé simplement via un modèle linéaire saturé: , où et sont les variables corrélées et est une variable fictive (0 vs 1) indiquant les deux groupes . La magnitude de (le coefficient du terme d'interaction) est exactement la différence de coefficient après que le modèle mené en deux groupes individuellement, et sa signification ( ) est donc le test de la différence de pente entre les groupes.Oui=une+bX+cg+XgY G d b Y = a + b X dXOuigbOui=une+bX

Maintenant, pente ou régression coef. n'est pas encore un coef de corrélation. Mais si nous normalisons et - séparément dans deux groupes - alors sera égal à la différence r dans le groupe 1 moins r dans le groupe 0 et donc sa signification testera la différence entre les deux corrélations: nous testons les pentes mais il apparaît [comme si -?] nous testons des corrélations.YXOui

Est-ce que j'ai écrit correctement?

Si oui, il reste la question qui est un meilleur test de corrélations - celle-ci décrite ou celle de Fisher? Car ils ne donneront pas des résultats identiques. Qu'est-ce que tu penses?

Édition ultérieure: Remerciant @ Wolfgang pour sa réponse, je sens néanmoins que je ne comprends pas pourquoi le test de Fisher est un test pour r plus correct que l'approche de comparaison de pente sous normalisation décrite ci-dessus. Donc, plus de réponses sont les bienvenues. Je vous remercie.

ttnphns
la source

Réponses:

10

Tout ce que vous avez écrit est correct. Vous pouvez toujours tester des choses comme ça avec un exemple de jouet. Voici un exemple avec R:

library(MASS)

rho <- .5  ### the true correlation in both groups

S1 <- matrix(c( 1,   rho,   rho, 1), nrow=2)
S2 <- matrix(c(16, 4*rho, 4*rho, 1), nrow=2)

cov2cor(S1)
cov2cor(S2)

xy1 <- mvrnorm(1000, mu=c(0,0), Sigma=S1)
xy2 <- mvrnorm(1000, mu=c(0,0), Sigma=S2)

x <- c(xy1[,1], xy2[,1])
y <- c(xy1[,2], xy2[,2])
group <- c(rep(0, 1000), rep(1, 1000))

summary(lm(y ~ x + group + x:group))

Ce que vous constaterez, c'est que l'interaction est très significative, même si la vraie corrélation est la même dans les deux groupes. Pourquoi cela se produit-il? Parce que les coefficients de régression bruts dans les deux groupes reflètent non seulement la force de la corrélation, mais aussi l'échelle de X (et Y) dans les deux groupes. Étant donné que ces échelles diffèrent, l'interaction est significative. C'est un point important, car on pense souvent que pour tester la différence de corrélation, il suffit de tester l'interaction dans le modèle ci-dessus. Nous allons continuer:

summary(lm(xy2[,2] ~ xy2[,1]))$coef[2] - summary(lm(xy1[,2] ~ xy1[,1]))$coef[2]

Cela vous montrera que la différence des coefficients de régression pour le modèle ajusté séparément dans les deux groupes vous donnera exactement la même valeur que le terme d'interaction.

Ce qui nous intéresse vraiment, c'est la différence dans les corrélations:

cor(xy1)[1,2]
cor(xy2)[1,2]
cor(xy2)[1,2] - cor(xy1)[1,2]

Vous constaterez que cette différence est essentiellement nulle. Normalisons X et Y au sein des deux groupes et réaménageons le modèle complet:

x <- c(scale(xy1[,1]), scale(xy2[,1]))
y <- c(scale(xy1[,2]), scale(xy2[,2]))
summary(lm(y ~ x + x:group - 1))

Notez que je n'inclus pas l'interception ou l'effet principal du groupe ici, car ils sont nuls par définition. Vous constaterez que le coefficient pour x est égal à la corrélation pour le groupe 1 et le coefficient pour l'interaction est égal à la différence dans les corrélations pour les deux groupes.

Maintenant, pour votre question s'il serait préférable d'utiliser cette approche plutôt que d'utiliser le test qui utilise la transformation r-to-z de Fisher.

ÉDITER

ρ1=ρ2=0ρ1=ρ20α±1

Conclusion: si vous voulez tester une différence de corrélations, utilisez la transformation r-to-z de Fisher et testez la différence entre ces valeurs.

Wolfgang
la source
La transformation de Fisher présente-t-elle des avantages par rapport à l'autre test?
mark999
Il s'avère que j'étais un peu trop rapide. Voir mes modifications. J'espère que cela devrait répondre à votre question.
Wolfgang
Donc, @Wolfgang, vous soutenez que l'approche de comparaison de pente sous standardisation est une comparaison valide de r. La célèbre alternative de Fisher en est en fait une approximation. Vous ai-je bien compris?
ttnphns
Voir mes modifications. J'ai été trop rapide avec mes premières conclusions.
Wolfgang
@Wolfgang, ajouté plus tard EDIT de votre réponse indique que Fisher est meilleur. L'approche de comparaison des pentes sous-standardisation est inadéquate car "les erreurs standard ... lorsque vous standardisez ... ne tenez pas compte de cette standardisation". Veuillez m'expliquer comment ils devraient prendre en compte la normalisation pour que l'approche de comparaison de pente sous-normalisation devienne aussi valable que le test de Fisher.
ttnphns