Чи можемо ми порівняти кореляції між групами, порівнявши нахили регресії?


10

У цьому питанні вони запитують, як порівняти Пірсона r для двох незалежних груп (наприклад, чоловіків та жінок). Відповідь та коментарі пропонували два способи:

  1. Використовуйте відому формулу Фішера, використовуючи "z-перетворення" r;
  2. Використовуйте порівняння схилів (коефіцієнти регресії).

Останнє можна легко виконати просто за допомогою насиченої лінійної моделі: , де і - корельовані змінні, а - фіктивна (0 проти 1) змінна, що вказує на дві групи. Величина (коефіцієнт терміна взаємодії) - це саме різниця коефіцієнта за моделлю проведена в двох групах окремо, і його значення ( 's), таким чином, є тестом різниці нахилу між групами.Y=а+бХ+cГ+гХГХYГгбY=а+бХг

Тепер схил або регресійний коефіцієнт. ще не є кореляційним коефіцієнтом. Але якщо ми стандартизуємо і - окремо на дві групи, то буде дорівнює різниці r у групі 1 мінус r у групі 0, і тому його значення буде тестуванням різниці між двома кореляціями: ми тестуємо нахили, але це виглядає [ніби -?] ми перевіряємо кореляції.ХYг

Це я написав правильно?

Якщо так, то залишилося питання, що є кращим тестом на кореляцію - це описане чи таке Фішера? Бо вони дадуть не однакові результати. Як ти гадаєш?

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

Відповіді:


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-to-z.

EDIT

Стандартні похибки коефіцієнтів регресії, які обчислюються при стандартизації значень X і Y в межах груп, цю стандартизацію не враховують. Тому вони неправильні. Відповідно, t-тест на взаємодію не контролює адекватно коефіцієнт помилок типу I. Я провів імітаційне дослідження, щоб вивчити це. Коли , то помилка типу I контролюється. Однак, коли , то помилка t-тесту типу I, як правило, занадто консервативна (тобто вона не відкидає досить часто для даногоρ1=ρ2=0ρ1=ρ20αзначення). З іншого боку, тест, що використовує перетворення Фішера r-to-z, виконує адекватно, незалежно від розміру справжніх кореляцій в обох групах (за винятком випадків, коли розміри груп отримують дуже малі та справжні кореляції у двох групах наблизитися до .±1

Висновок. Якщо ви хочете перевірити різницю кореляцій, використовуйте перетворення r-to-z Фішера і перевіряйте різницю між цими значеннями.


Чи є перетворення Фішера якісь переваги перед іншими тестами?
mark999

Виявляється, я був занадто швидким. Дивіться мої зміни. Це, сподіваємось, відповість на ваше запитання.
Вольфганг

Отже, @Wolfgang, ти вважаєш, що підхід порівняння нахилу при недостатній стандартизації є коректним порівнянням r. Відома альтернатива Фішера - це насправді наближення до цього. Я правильно тебе зрозумів?
ttnphns

Дивіться мої зміни. Я був надто швидкий зі своїми початковими висновками.
Вольфганг

@Wolfgang, пізніше доданий EDIT вашої відповіді говорить, що Фішер краще. Підхід порівняння нахилу-недостандартності є неадекватним, оскільки "стандартні помилки ... при стандартизації ... не враховуйте цю стандартизацію". Поясніть, будь ласка, як вони повинні брати до уваги стандартизацію, щоб порівняння нахилу під нахилом-під стандартизацією стало таким же справедливим, як і тест Фішера.
ttnphns
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.