Podemos comparar correlações entre grupos comparando inclinações de regressão?

10

Em esta questão eles perguntam como comparar Pearson r por dois grupos independentes (como homens contra mulheres). Resposta e comentários sugeriram duas maneiras:

  1. Use a fórmula conhecida de Fisher usando "tranformação z" de r;
  2. Use a comparação de inclinações (coeficientes de regressão).

O último poderia ser facilmente realizado apenas através de um modelo linear saturado: , onde e são as variáveis ​​correlacionadas e é uma variável dummy (0 vs 1) indicando os dois grupos. A magnitude de (o coeficiente do termo de interação) é exatamente a diferença no coeficiente após o modelo realizado em dois grupos individualmente, e sua significância ( 's) é, portanto, o teste da diferença de inclinação entre os grupos.X Y G d b Y = a + b X dY=a+bX+cG+dXGXYGdbY=a+bXd

Agora, inclinação ou coeficiente de regressão. ainda não é um coeficiente de correlação. Mas se padronizarmos e - separadamente em dois grupos -, será igual à diferença r no grupo 1 menos r no grupo 0 e, portanto, seu significado estará testando a diferença entre as duas correlações: estamos testando inclinações, mas parece [como se -?] estamos testando correlações.Y dXYd

Escrevi corretamente?

Se sim, resta a questão de qual é o melhor teste de correlações - este descrito ou o de Fisher? Pois eles produzirão resultados não idênticos. O que você acha?

Mais tarde Editar: Agradecendo a @Wolfgang por sua resposta, no entanto, sinto falta de entender por que o teste de Fisher é mais correto do que a abordagem de comparação da inclinação abaixo da padronização descrita acima. Portanto, mais respostas são bem-vindas. Obrigado.

ttnphns
fonte

Respostas:

10

Tudo o que você escreveu está correto. Você sempre pode testar coisas assim com um exemplo de brinquedo. Aqui está um exemplo com 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))

O que você verá que a interação é altamente significativa, mesmo que a correlação verdadeira seja a mesma nos dois grupos. Por que isso acontece? Porque os coeficientes de regressão brutos nos dois grupos refletem não apenas a força da correlação, mas também a escala de X (e Y) nos dois grupos. Como essas escalas diferem, a interação é significativa. Este é um ponto importante, pois acredita-se que, para testar a diferença na correlação, você só precisa testar a interação no modelo acima. Vamos continuar:

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

Isso mostrará que a diferença nos coeficientes de regressão para o modelo ajustado separadamente nos dois grupos fornecerá exatamente o mesmo valor que o termo de interação.

O que realmente nos interessa é a diferença nas correlações:

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

Você verá que essa diferença é essencialmente zero. Vamos padronizar X e Y dentro dos dois grupos e refazer o modelo completo:

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

Observe que não estou incluindo aqui o efeito principal de interceptação ou grupo, porque eles são zero por definição. Você descobrirá que o coeficiente para x é igual à correlação para o grupo 1 e o coeficiente para a interação é igual à diferença nas correlações para os dois grupos.

Agora, para sua pergunta, se seria melhor usar essa abordagem em vez de usar o teste que faz uso da transformação r-to-z de Fisher.

EDITAR

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

Conclusão: Se você deseja testar uma diferença nas correlações, use a transformação de Fisher em z e teste a diferença entre esses valores.

Wolfgang
fonte
A transformação Fisher tem alguma vantagem sobre o outro teste?
mark999
Acontece que eu fui um pouco rápido demais. Veja minhas edições. Espero que isso responda à sua pergunta.
Wolfgang
Então, @Wolfgang, você considera que a abordagem de comparação de inclinação sob padronização é uma comparação válida de r. A famosa alternativa de Fisher é na verdade uma aproximação disso. Eu te entendi certo?
ttnphns
Veja minhas edições. Eu fui rápido demais com minhas conclusões iniciais.
Wolfgang
@ Wolfgang, mais tarde acrescentou EDIT da sua resposta, afirmando que Fisher é melhor. A abordagem de comparação da inclinação sob a padronização é inadequada porque "erros padrão ... quando você padroniza ... não leva essa padronização em consideração". Por favor, explique-me como eles devem levar em consideração a padronização para que a abordagem de comparação da inclinação abaixo da padronização se torne tão válida quanto o teste de Fisher.
precisa saber é o seguinte