Можем ли мы сравнить корреляции между группами, сравнивая наклоны регрессии?

10

В этом вопросе они спрашивают, как сравнить Pearson r для двух независимых групп (таких как мужчины против женщин). Ответ и комментарии предложены двумя способами:

  1. Используйте известную формулу Фишера, используя "z-transformation" of r;
  2. Используйте сравнение уклонов (коэффициенты регрессии).

Последнее можно легко выполнить только с помощью насыщенной линейной модели: , где X и Y - коррелированные переменные, а G - фиктивная (0 против 1) переменная, обозначающая две группы. , Величина d (коэффициент члена взаимодействия) - это в точности разница в коэффициенте b после модели Y = a + b X, проведенной в двух группах по отдельности, и ее ( dY=a+bX+cG+dXGXYGdbY=a+bXds) значимость, таким образом, является тестом различия в уклоне между группами.

Теперь наклон или регрессия. еще не корреляционный коэффициент. Но если мы стандартизируем и Y - отдельно в двух группах - тогда d будет равно разнице r в группе 1 минус r в группе 0, и поэтому его значимость будет заключаться в проверке разницы между двумя корреляциями: мы тестируем наклоны, но кажется [как будто -?] мы проверяем корреляции.XYd

Это я правильно написал?

Если да, то остается вопрос, который является лучшим тестом корреляций - этот описал или Фишера? Ибо они дадут не одинаковые результаты. Что вы думаете?

Позже Edit: Поблагодарив @Wolfgang его ответа я все же чувствую , что я скучаю понять , почему тест Фишера является более правильным испытанием для г , чем сравнение, по глиссаде-под стандартизацией подход , описанный выше. Итак, больше ответов приветствуются. Спасибо.

ttnphns
источник

Ответы:

10

Все, что вы написали, правильно. Вы всегда можете проверить такие вещи на игрушечном примере. Вот пример с 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))

Что вы обнаружите, что взаимодействие очень важно, хотя истинная корреляция одинакова в обеих группах. Почему это происходит? Поскольку необработанные коэффициенты регрессии в двух группах отражают не только силу корреляции, но и масштабирование X (и Y) в двух группах. Поскольку эти масштабирования отличаются, взаимодействие является значительным. Это важный момент, поскольку часто считается, что для проверки различий в корреляции вам просто нужно проверить взаимодействие в приведенной выше модели. Давай продолжим:

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

Это покажет вам, что различие в коэффициентах регрессии для модели, отдельно встроенной в две группы, даст вам точно такое же значение, что и член взаимодействия.

Что нас действительно интересует, так это разница в корреляциях:

cor(xy1)[1,2]
cor(xy2)[1,2]
cor(xy2)[1,2] - cor(xy1)[1,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, а коэффициент для взаимодействия равен разнице в корреляциях для двух групп.

Теперь, на ваш вопрос, будет ли лучше использовать этот подход по сравнению с тестом, который использует преобразование Фишера от r к z.

РЕДАКТИРОВАТЬ

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

Вывод: если вы хотите проверить разницу в корреляциях, используйте преобразование Фишера от r к z и проверьте разницу между этими значениями.

Wolfgang
источник
Есть ли у преобразования Фишера какие-либо преимущества перед другим тестом?
mark999
Оказывается, я был слишком быстр. Смотрите мои правки. Надеюсь, это должно ответить на ваш вопрос.
Вольфганг
Итак, @Wolfgang, вы считаете, что подход сравнения наклона-под-стандартизацией является правильным сравнением r. Знаменитая альтернатива Фишера на самом деле является его приближением. Правильно ли я вас понял?
ttnphns
Смотрите мои правки. Я был слишком быстр с моими первоначальными выводами.
Вольфганг
@Wolfgang, позже добавленный EDIT вашего ответа утверждает, что Фишер лучше. Подход сравнения наклона под стандартизацией неадекватен, потому что "стандартные ошибки ... когда вы стандартизируете ... не принимайте во внимание эту стандартизацию". Пожалуйста, объясните мне, как они должны принимать во внимание стандартизацию, чтобы подход сравнения наклонов при стандартизации стал таким же достоверным, как тест Фишера.
ttnphns