Dlaczego ten zestaw danych nie ma kowariancji?

8

Rozumiem, jak działa kowariancja, że ​​skorelowane dane powinny mieć nieco wysoką kowariancję. Natknąłem się na sytuację, w której moje dane wyglądają na skorelowane (jak pokazano na wykresie punktowym), ale kowariancja jest bliska zeru. Jak kowariancja danych może wynosić zero, jeśli są one skorelowane?

import numpy as np
x1 = np.array([ 0.03551153,  0.01656052,  0.03344669,  0.02551755,  0.02344788,
        0.02904475,  0.03334179,  0.02683399,  0.02966126,  0.03947681,
        0.02537157,  0.03015175,  0.02206443,  0.03590149,  0.03702152,
        0.02697212,  0.03777607,  0.02468797,  0.03489873,  0.02167536])
x2 = np.array([ 0.0372599 ,  0.02398212,  0.03649548,  0.03145494,  0.02925334,
        0.03328783,  0.03638871,  0.03196318,  0.03347346,  0.03874528,
        0.03098697,  0.03357531,  0.02808358,  0.03747998,  0.03804655,
        0.03213286,  0.03827639,  0.02999955,  0.0371424 ,  0.0279254 ])
print np.cov(x1, x2)

array([[  3.95773132e-05,   2.59159589e-05],
       [  2.59159589e-05,   1.72006225e-05]])

wprowadź opis zdjęcia tutaj

kilodżule
źródło
4
Wskazówka: Co się stanie, gdy spojrzysz na korelację? Jaka jest różnica między kowariancją a korelacją?
aleshing
2
Jeśli mierzysz liczby, które wydają się małe lub zbliżone do siebie w określonej skali, różnice między nimi również będą wydawać się małe, a iloczyn różnic wydaje się jeszcze mniejszy. Spróbuj pomnożyć wszystkie dane przez a następnie powtórzyć obliczenia; kowariancja powinna być razy większa10001000000
Henry

Odpowiedzi:

14

Wielkość kowariancji zależy od wielkości danych i tego, jak blisko te punkty danych są rozproszone wokół średniej tych danych. Łatwo zobaczyć, kiedy spojrzysz na formułę:

doovx,y=(xja-x¯)(yja-y¯)n-1

W twoim przypadku odchylenie x1i x2danych wskazuje na średnią x1i x2wynosi:

x1-mean(x1)
 [1]  0.006043341 -0.012907669  0.003978501 -0.003950639 -0.006020309 -0.000423439  0.003873601
 [8] -0.002634199  0.000193071  0.010008621 -0.004096619  0.000683561 -0.007403759  0.006433301
[15]  0.007553331 -0.002496069  0.008307881 -0.004780219  0.005430541 -0.007792829

x2-mean(x2)
 [1]  0.0039622385 -0.0093155415  0.0031978185 -0.0018427215 -0.0040443215 -0.0000098315
 [7]  0.0030910485 -0.0013344815  0.0001757985  0.0054476185 -0.0023106915  0.0002776485
[13] -0.0052140815  0.0041823185  0.0047488885 -0.0011648015  0.0049787285 -0.0032981115
[19]  0.0038447385 -0.0053722615

Teraz, jeśli pomnożycie te dwa wektory ze sobą, to oczywiście otrzymacie całkiem małe liczby:

(x1-mean(x1)) * (x2-mean(x2))
 [1] 2.394516e-05 1.202419e-04 1.272252e-05 7.279927e-06 2.434807e-05 4.163041e-09 1.197349e-05
 [8] 3.515290e-06 3.394159e-08 5.452315e-05 9.466023e-06 1.897897e-07 3.860380e-05 2.690611e-05
[15] 3.586993e-05 2.907425e-06 4.136268e-05 1.576570e-05 2.087901e-05 4.186512e-05

Teraz weź sumę i podziel przez a otrzymasz kowariancję:n-1

sum((x1-mean(x1)) * (x2-mean(x2))) / (length(x1)-1)
[1] 2.591596e-05

To jest powód, dla którego wielkość kowariancji nie mówi wiele o sile tego, jak x1i x2współzależnie się różnią. Poprzez standaryzację (lub normalizację) kowariancji, to jest podzielenie jej przez iloczyn standardowego odchylenia x1i x2(bardzo podobny do kowariancji, tj. 2.609127e-05),

r=doovx,ysxsy=(x1-x¯)(yja-y¯)(n-1)sxsy

otrzymujesz wysoki współczynnik korelacji, , co potwierdza to, co możesz zobaczyć na wykresie.r=0,99

Stefan
źródło
7

Porozmawiajmy o tym, co można zobaczyć po krótkim spojrzeniu na fabułę i o kilku sprawdzeniach racjonalności (są to rzeczy, które można oczywiście zrobić, patrząc na dane, po prostu uzbrojonych w kilka podstawowych faktów):

Jednak uwaga Zacznijmy że wersja -denominator odchylenia standardowego nie może przekroczyć połowy zakresu (do w wersji mianownik można, ale z więcej niż kilka nie przez wiele obserwacji).nn-1

Zakresy obu zmiennych są rzędu 0,02 (z grubsza), więc wariancje nie powinny przekraczać około połowy tej wartości, do kwadratu lub około .10-4

W związku z tym obserwowane wartości odchyleń na wyjściu mają sens; oba są mniejsze, ale ponad jedna dziesiąta.

Bezwzględna wartość kowariancji nie może wówczas przekraczać średniej geometrycznej dwóch wariancji (w przeciwnym razie korelacja mogłaby przekraczać 1). Zatem wartość bezwzględna kowariancji nie powinna przekraczać iloczynu zakresów.14

Tak więc, jeśli zakres obu zmiennych byłby bliski , nie moglibyśmy oczekiwać, że kowariancja absolutna przekroczy .0,02(0,02)2)/4=10-4

Z tej bardzo zgrubnej analizy nic nie wygląda zaskakująco.

Dokładniejsza analiza pochodzi z faktycznego wykonywania obliczeń przy użyciu dokładniejszych zakresów, a następnie myślenia o kształtach rozkładów krańcowych:
zakresy są odpowiednio poniżej i , więc kowariancja nie powinna przekraczać , ale ponieważ rozkład krańcowy nie jest rozkładem prawie symetrycznym dwupunktowym, musi być nieco mniejszy.0,0230,0158.6×10-5

Rzeczywiście, jeśli powiemy, że nie są tak daleko od jednolitości, kowariancja byłaby ograniczona przez coś bliższego 1/12 produktu, a nie 1/4 - tj. Dla z grubsza jednakowej zmienności z tymi zakresami byłaby mniejsza niż około - ale niewiele mniej, ponieważ korelacja jest wysoka. [Te odmiany nie są jednolite - pozostają pochylone - ale jest wystarczająco blisko dla naszych obecnych celów.]2.9×10-5

Tak więc po spojrzeniu na zakres każdej zmiennej i przybliżonym znaczeniu rozkładów krańcowych i korelacji na wykresie spodziewałbym się, że kowariancja będzie nieco mniejsza niż . W rzeczywistości jest to około .2.9×10-52.6×10-5

(Nieźle jak na szybkie obliczenia z tyłu koperty, zaczynając od zakresów do dwóch znaczących cyfr!)

Glen_b - Przywróć Monikę
źródło