Zrozumienie obliczeń korelacji odległości

15

O ile rozumiem, korelacja odległości jest solidnym i uniwersalnym sposobem sprawdzenia, czy istnieje związek między dwiema zmiennymi numerycznymi. Na przykład, jeśli mamy zestaw par liczb:

(x1, y1)
(x2, y2)
...
(xn, yn)

możemy użyć korelacji odległości, aby sprawdzić, czy istnieje jakaś (niekoniecznie liniowa) zależność między dwiema zmiennymi ( xi y). Co więcej, xi ymogą być wektorami o różnych wymiarach.

Obliczenie korelacji odległości jest stosunkowo łatwe. Najpierw używamy xi do obliczania macierzy odległości. Następnie oblicz matrycy odległość za pomocą yi . Macierzach dystansowe mają takie same wymiary, ponieważ liczba xi i yi jest taka sama (ponieważ pochodzą one parami).

Teraz mamy wiele odległości, które można sparować. Na przykład element (2,3)z pierwszej macierzy odległości jest sparowany z elementem (2,3)z drugiej macierzy odległości. Mamy więc zestaw par odległości i możemy go użyć do obliczenia korelacji (korelacji między odległościami).

Jeśli dwa typy odległości są skorelowane, oznacza to, że bliskie Xs zwykle oznaczają bliskie Ys. Na przykład, jeśli jest bliski x 13 , oznacza to, że y 7 prawdopodobnie będzie bliski y 13 . Możemy zatem stwierdzić, że X i Y są zależne.x7x13y7y13

Brzmi rozsądnie, jednak są dwa aspekty, których nie rozumiem .

Po pierwsze , do obliczenia korelacji odległości nie używamy bezpośrednio dwóch macierzy odległości. Stosujemy do nich procedurę podwójnego centrowania (aby suma wszystkich elementów w dowolnym wierszu (lub kolumnie) była równa zero). Nie rozumiem, dlaczego musimy to zrobić. Jaka jest logika (lub intuicja) stojąca za tym krokiem?

Po drugie , w oryginalnych macierzach odległości mamy zera na przekątnej. Jeśli więc obliczymy korelacje między odległościami, uzyskamy korelację istotną statystycznie tylko dlatego, że wiele zer z pierwszej macierzy jest sparowanych z odpowiednimi zerami w drugiej macierzy. Jak rozwiązać ten problem?

rzymski
źródło

Odpowiedzi:

16

Dystansowa kowariancja / korelacja (= kowariancja / korelacja Browna) jest obliczana w następujących krokach:

  1. Oblicz matrycy euklidesową odległość pomiędzy Nprzypadkach przez zmienne , a druga matryca podobnie przez zmienną Y . Każda z dwóch cech ilościowych, X lub Y , może być wielowymiarowa, a nie tylko jednowymiarowa.XYXY
  2. Wykonaj podwójne centrowanie każdej matrycy. Zobacz, jak zwykle wykonuje się podwójne centrowanie . Jednak w naszym przypadku, robiąc to, początkowo nie zwiększaj odległości i nie dziel przez 2 na końcu. Średni wiersz, kolumna i ogólna średnia elementów stają się zero.2
  3. Pomnóż dwie wynikowe macierze elementarnie i oblicz sumę; lub równoważnie, rozpakuj macierze do dwóch wektorów kolumnowych i oblicz ich zsumowany produkt krzyżowy.
  4. Średnio dzieląc przez liczbę elementów N^2.
  5. Weź pierwiastek kwadratowy. Wynikiem jest kowariancji odległość między i Y .XY
  6. Wariancje odległości to kowariancje odległości , Y dla siebie, obliczamy je podobnie, punkty 3-4-5.XY
  7. Korelację odległości uzyskuje się z trzech liczb analogicznie jak korelację Pearsona uzyskuje się ze zwykłej kowariancji i pary wariancji: podziel kowariancję przez pierwiastek kwadratowy iloczynu dwóch wariancji.

Kowariancja odległości (i korelacja) nie jest kowariancją (lub korelacją) między samymi odległościami. Jest to kowariancja (korelacja) między specjalnymi produktami skalarnymi (produktami punktowymi), z których składają się macierze „podwójnie wyśrodkowane”.

W przestrzeni euklidesowej iloczyn skalarny jest podobieństwem jednoznacznie związanym z odpowiednią odległością. Jeśli masz dwa punkty (wektory), możesz wyrazić ich bliskość jako iloczyn skalarny zamiast odległości bez utraty informacji.

Jednak, aby obliczyć iloczyn skalarny, musisz odwołać się do punktu początkowego przestrzeni (wektory pochodzą od początku). Ogólnie rzecz biorąc, można umieścić źródło tam, gdzie mu się podoba, ale często i wygodnie jest umieścić go w geometrycznym środku chmury punktów, czyli w średniej. Ponieważ środek należy do tej samej przestrzeni, co obłok chmur, wymiarowość nie puchnie.

Obecnie zwykłym podwójnym centrowaniem macierzy odległości (między punktami chmury) jest operacja konwersji odległości na produkty skalarne z jednoczesnym umieszczeniem punktu początkowego w tym geometrycznym środku. W ten sposób „sieć” odległości jest równoważnie zastępowana przez „serię” wektorów o określonych długościach i kątach parowania od początku:

wprowadź opis zdjęcia tutaj

[Konstelacja na moim przykładowym obrazie jest płaska, co pokazuje, że „zmienna”, powiedzmy, że była to , po wygenerowaniu była dwuwymiarowa. Gdy X jest zmienną jednokolumnową, wszystkie punkty leżą oczywiście w jednej linii.]XX

Trochę formalnie o operacji podwójnego centrowania. Niech mają n points x p dimensionsdane (w przypadku jednowymiarowym ). Niech D będzie macierzą odległości euklidesowych między punktami. Niech C będzie X z kolumnami wyśrodkowanymi. Wtedy S = podwójnie wyśrodkowany  D 2 jest równy C C ' , iloczyn skalarny między rzędami po wyśrodkowaniu chmury punktów. Główną właściwością podwójnego centrowania jest to, że 1Xp=1Dn x nnCXS=double-centered D2CC, oraz suma równa się zanegowaną sumasię-diagonal elementówS12nD2=trace(S)=trace(CC)S .

Powrót do korelacji odległości. Co robimy, gdy obliczamy kowariancję odległości? Przekształciliśmy obie sieci odległości w odpowiadające im wiązki wektorów. Następnie obliczamy kowariację (a następnie korelację) między odpowiednimi wartościami dwóch wiązek: każda wartość iloczynu skalarnego (poprzednia wartość odległości) jednej konfiguracji jest mnożona przez odpowiadającą jej drugą konfigurację. Można to postrzegać jako (jak powiedziano w punkcie 3) obliczenie zwykłej kowariancji między dwiema zmiennymi, po wektoryzacji dwóch macierzy w tych „zmiennych”.

W związku z tym kowaritujemy dwa zestawy podobieństw (produkty skalarne, które są przeliczonymi odległościami). Każdy rodzaj kowariancji jest efektem krzyżowym momentów: musisz obliczyć te momenty, odchylenia od średniej, po pierwsze, - a podwójne centrowanie było tym obliczeniem. Oto odpowiedź na twoje pytanie: kowariancja musi opierać się na momentach, ale odległości nie są momentami.

Dodatkowe wyliczenie pierwiastka kwadratowego po (punkt 5) wydaje się logiczne, ponieważ w naszym przypadku sam moment był już swego rodzaju kowariancją (iloczyn skalarny i kowariancja strukturalnie konkurentami ), a zatem okazało się, że dwa razy byłeś rodzajem zwielokrotnionej kowariancji. Dlatego, aby zejść z powrotem na poziom wartości oryginalnych danych (i aby móc obliczyć wartość korelacji), należy później zakorzenić się.

(0,2)12

ttnphns
źródło
przez „sumowany iloczyn krzyżowy” w kroku 3, czy masz na myśli zwykły iloczyn skalarny?
kram1032
1
@ kram1032, tak scp i produkt skalarny są synonimami stats.stackexchange.com/a/22520/3277
ttnphns
8

Myślę, że oba pytania są ze sobą ściśle powiązane. Podczas gdy oryginalne przekątne w macierzy odległości wynoszą 0, to, co zostało zastosowane dla kowariancji (która określa licznik korelacji) to podwójnie wyśrodkowane wartości odległości - co dla wektora z dowolną odmianą oznacza, że ​​przekątne będą negatywny.

Przejdźmy więc przez prosty niezależny przypadek i zobaczmy, czy daje to nam jakąkolwiek intuicję, dlaczego korelacja wynosi 0, gdy dwie zmienne są niezależne.

(X,Y)=[(0,0),(0,1),(1,0),(1,1)]

XY

a=[0011001111001100]

b=[0101101001011010]

A

A=[.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5]

B=[.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5]

Now what happens when we compute the sample distance covariance, which is the average of the element-wise product of the two matrices? We can easily see of the 16 elements, 4 (the diagonal!) are .5.5=.25 pairs, 4 are .5.5=.25 pairs, and 8 are .5.5=.25 pairs, and so the overall average is 0, which is what we wanted.

That's an example, not a proof that it'll necessarily be the case that if the variables are independent, the distance correlation will be 0, and that if the distance correlation is 0, then the variables are independent. (The proof of both claims can be found in the 2007 paper that introduced the distance correlation.)

I find it intuitive that centering creates this desirable property (that 0 has special significance). If we had just taken the average of the element-wise product of a and b we would have ended up with 0.25, and it would have taken some effort to determine that this number corresponded to independence. Using the negative "mean" as the diagonal means that's naturally taken care of. But you may want to think about why double centering has this property: would it also work to do single centering (with either the row, column, or grand mean)? Could we not adjust any real distances and just set the diagonal to the negative of either the row sum, column sum, or grand sum?

(As ttnphns points out, by itself this isn't enough, as the power also matters. We can do the same double centering but if we add them in quadrature we'll lose the if and only if property.)

Matthew Graves
źródło
1
Would you mind if I edited matrices into this answer?
shadowtalker
@ssdecontrol thanks for the offer! I went through and did it myself, but feel free to make any other formatting changes.
Matthew Graves
1
I don't quite understand what you mean by "single" in this case (is it what the Mattew said or else?) What is really mysterious/important to me (as I expressed it in the end of my answer) is why (theoretically) when we perform the double centering without squaring the distances first we facilitate the dCov to have its unique and useful properties.
ttnphns
1
@ttnphns: By single centering I meant subtracting grand mean from each distance value. In any case, I agree that distance covariance is mysterious.
amoeba says Reinstate Monica
1
@amoeba i wish the authors would write a follow-up with some kind of intuitive explanation and an efficient implementation for multiple pairs of variables. It's closing in on a decade since their original paper and distance covariance is still mostly just a quixotic diversion for grad students. the only time I've ever seen it used in practice was in a then-unimplemented feature in Stan to diagnose MC chains
shadowtalker,