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.

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=ρ2≠0α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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.