あなたが書いたすべてが正しいです。おもちゃの例でいつでもそのようなことをテストできます。以下は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))
真の相関関係は両方のグループで同じですが、相互作用は非常に重要です。なぜそれが起こるのですか?2つのグループの生の回帰係数は、相関の強さだけでなく、2つのグループのX(およびY)のスケーリングも反映するためです。これらのスケーリングは異なるため、相互作用は重要です。これは重要なポイントです。相関の違いをテストするには、上記のモデルで相互作用をテストするだけでよいと考えられていることが多いためです。続けましょう:
summary(lm(xy2[,2] ~ xy2[,1]))$coef[2] - summary(lm(xy1[,2] ~ xy1[,1]))$coef[2]
これにより、2つのグループに別々に当てはめられたモデルの回帰係数の違いにより、交互作用項とまったく同じ値が得られることがわかります。
私たちが本当に興味を持っているのは、相関関係の違いです。
cor(xy1)[1,2]
cor(xy2)[1,2]
cor(xy2)[1,2] - cor(xy1)[1,2]
この違いは本質的にゼロであることがわかります。2つのグループ内で XとYを標準化して、モデル全体を再フィットさせます。
x <- c(scale(xy1[,1]), scale(xy2[,1]))
y <- c(scale(xy1[,2]), scale(xy2[,2]))
summary(lm(y ~ x + x:group - 1))
ここでは切片やグループの主効果は含まれていないことに注意してください。これらは定義上ゼロであるためです。xの係数はグループ1の相関に等しく、交互作用の係数は2つのグループの相関の差に等しいことがわかります。
ここで、Fisherのrからzへの変換を利用するテストを使用するよりも、このアプローチを使用する方が良いかどうかという質問に対して。
編集
ρ1= ρ2= 0ρ1= ρ2≠ 0α± 1
結論:相関関係の違いをテストする場合は、フィッシャーのr-to-z変換を使用して、それらの値の違いをテストします。