Warum hat dieser Datensatz keine Kovarianz?

8

Mein Verständnis der Funktionsweise der Kovarianz ist, dass korrelierte Daten eine etwas hohe Kovarianz aufweisen sollten. Ich bin auf eine Situation gestoßen, in der meine Daten korreliert aussehen (wie im Streudiagramm gezeigt), die Kovarianz jedoch nahe Null liegt. Wie kann die Kovarianz der Daten Null sein, wenn sie korreliert sind?

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]])

Geben Sie hier die Bildbeschreibung ein

Kilojoule
quelle
4
Hinweis: Was passiert, wenn Sie sich die Korrelation ansehen? Was ist der Unterschied zwischen Kovarianz und Korrelation?
Aleshing
2
10001000000

Antworten:

14

Die Größe der Kovarianz hängt von der Größe der Daten ab und davon, wie nahe diese Datenpunkte um den Mittelwert dieser Daten verstreut sind. Es ist leicht zu erkennen, wenn Sie sich die Formel ansehen:

covx,y=(xix¯)(yiy¯)n1

In Ihrem Fall zeigt die Abweichung von x1und x2Daten auf den Mittelwert von x1und x2ist:

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

Wenn Sie nun diese beiden Vektoren miteinander multiplizieren, erhalten Sie offensichtlich ziemlich kleine Zahlen:

(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

n1

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

Das ist der Grund, warum die Größe der Kovarianz nicht viel über die Stärke des Wie x1und die x2Ko-Variation aussagt. Durch Standardisieren (oder Normalisieren) der Kovarianz, dh Teilen durch das Produkt der Standardabweichung von x1und x2(sehr ähnlich der Kovarianz, dh 2.609127e-05),

r=covx,ysxsy=(x1x¯)(yiy¯)(n1)sxsy

r=0.99

Stefan
quelle
7

Lassen Sie uns darüber sprechen, was aus einem kurzen Blick auf die Handlung und einigen Angemessenheitsprüfungen ersichtlich ist (dies sind die Dinge, die man selbstverständlich tun kann, wenn man Daten betrachtet, indem man einfach mit ein paar grundlegenden Fakten bewaffnet ist):

nn1

104

Folglich sind die beobachteten Werte der Abweichungen in Ihrer Ausgabe sinnvoll. sie sind beide weniger als das, aber mehr als ein Zehntel davon.

Der absolute Wert der Kovarianz darf dann nicht mehr als das geometrische Mittel der beiden Varianzen sein (andernfalls könnte die Korrelation 1 überschreiten). Der absolute Wert der Kovarianz sollte also nicht überschreiten14

0.02(0.02)2/4=104

Aus dieser sehr groben Analyse sieht nichts überraschend aus.


0.0230.0158.6×105

2.9×105

2.9×1052.6×105

(Nicht so schlecht für eine schnelle Berechnung auf der Rückseite des Umschlags, beginnend mit Bereichen bis zu zwei signifikanten Zahlen!)

Glen_b - Monica neu starten
quelle