Czy możemy porównać korelacje między grupami, porównując nachylenia regresji?

10

W tym pytaniu pytają, jak porównać Pearson r dla dwóch niezależnych grup (takich jak mężczyźni i kobiety). Odpowiedzi i komentarze sugerowały dwa sposoby:

  1. Użyj znanej formuły Fishera, używając „z-tranformacji” r;
  2. Użyj porównania nachyleń (współczynników regresji).

To ostatnie można łatwo wykonać za pomocą nasyconego modelu liniowego: , gdzie i są zmiennymi skorelowanymi, a jest zmienną fikcyjną (0 vs 1) wskazującą dwie grupy. Wielkość (współczynnik terminu interakcji) jest dokładnie różnicą we współczynniku po modelu przeprowadzonym indywidualnie w dwóch grupach, a jego znaczenie ( ') jest zatem testem różnicy nachylenia między grupami.Y=a+bX+cG+dXGXYGdbY=a+bXd

Teraz nachylenie lub regresja. nie jest jeszcze współczynnikiem korelacji. Ale jeśli znormalizujemy i - oddzielnie w dwóch grupach - to będzie równe różnicy rw grupie 1 minus rw grupie 0, a zatem jej znaczeniem będzie testowanie różnicy między dwiema korelacjami: testujemy zbocza, ale wygląda na to, jakbyśmy testowali korelacje.XYd

Czy to napisałem poprawnie?

Jeśli tak, pozostawiono pytanie, które jest lepszym testem korelacji - tym opisanym czy Fishera? Przyniosą bowiem nie identyczne wyniki. Co myślisz?

Późniejsza edycja : Dziękując @Wolfgangowi za odpowiedź Czuję jednak, że brakuje mi zrozumienia, dlaczego test Fishera jest bardziej poprawnym testem na r niż opisane powyżej porównanie spadku nachylenia poniżej normy. Tak więc, więcej odpowiedzi jest mile widzianych. Dziękuję Ci.

ttnphns
źródło

Odpowiedzi:

10

Wszystko, co napisałeś, jest poprawne. Zawsze możesz przetestować takie rzeczy na przykładzie zabawki. Oto przykład z 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))

Przekonasz się, że interakcja jest bardzo znacząca, nawet jeśli prawdziwa korelacja jest taka sama w obu grupach. Dlaczego tak się dzieje? Ponieważ współczynniki regresji surowej w dwóch grupach odzwierciedlają nie tylko siłę korelacji, ale także skalowanie X (i Y) w dwóch grupach. Ponieważ te skalowania różnią się, interakcja jest znacząca. Jest to ważna kwestia, ponieważ często uważa się, że aby przetestować różnicę w korelacji, wystarczy przetestować interakcję w powyższym modelu. Kontynuujmy:

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

To pokaże, że różnica współczynników regresji dla modelu dopasowanego osobno w dwóch grupach da dokładnie taką samą wartość jak warunek interakcji.

Tym, co naprawdę nas interesuje, jest różnica w korelacjach:

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

Przekonasz się, że różnica ta wynosi zasadniczo zero. Standaryzujmy X i Y w dwóch grupach i zmontuj pełny model:

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

Zauważ, że nie uwzględniam tutaj przechwytywania ani głównego efektu grupy, ponieważ są one z definicji zerowe. Przekonasz się, że współczynnik dla x jest równy korelacji dla grupy 1, a współczynnik dla interakcji jest równy różnicy w korelacjach dla dwóch grup.

Teraz, jeśli chodzi o twoje pytanie, czy lepiej byłoby zastosować to podejście, niż test wykorzystujący transformację Fishera z r-na-z.

EDYTOWAĆ

Standardowe błędy współczynników regresji obliczane podczas standaryzacji wartości X i Y w grupach nie uwzględniają tej standaryzacji. Dlatego nie są poprawne. W związku z tym test t interakcji nie kontroluje odpowiednio poziomu błędu typu I. Przeprowadziłem badanie symulacyjne, aby to zbadać. Gdy , kontrolowany jest błąd typu I. Jednak gdy , błąd typu I testu t wydaje się być zbyt konserwatywny (tzn. Nie odrzuca się wystarczająco często dla danegoρ1=ρ2=0ρ1=ρ20αwartość). Z drugiej strony test wykorzystujący transformację F-do-Z Fishera działa prawidłowo, niezależnie od wielkości prawdziwych korelacji w obu grupach (z wyjątkiem sytuacji, gdy rozmiary grup stają się bardzo małe i prawdziwe korelacje w dwóch grupach podejdź bardzo blisko .±1

Wniosek: jeśli chcesz sprawdzić różnicę w korelacjach, użyj transformacji F-to-Z Fishera i przetestuj różnicę między tymi wartościami.

Wolfgang
źródło
Czy transformacja Fishera ma przewagę nad innym testem?
mark999
Okazuje się, że byłem trochę za szybki. Zobacz moje zmiany. Mam nadzieję, że powinno to odpowiedzieć na twoje pytanie.
Wolfgang,
Tak więc, @Wolfgang, utrzymujesz, że podejście polegające na porównaniu nachylenia poniżej normy jest prawidłowym porównaniem r. Słynna alternatywa Fishera jest właściwie jej przybliżeniem. Czy zrozumiałem cię, prawda?
ttnphns
Zobacz moje zmiany. Za szybko wyciągnąłem wstępne wnioski.
Wolfgang,
@Wolfgang, później dodane EDYTUJ twoją odpowiedź stwierdza, że ​​Fisher jest lepszy. Podejście polegające na porównaniu spadku poniżej normalizacji jest nieodpowiednie, ponieważ „błędy standardowe… podczas standaryzacji… nie uwzględniają tej standaryzacji”. Proszę wyjaśnić mi, w jaki sposób powinni wziąć pod uwagę normalizację, aby porównanie między nachyleniem a normalizacją stało się tak samo ważne jak test Fishera.
ttnphns