Ist es möglich, Pearson-Korrelationskoeffizientenwerte <-1 oder Werte> 1 zu haben?


7

Ich versuche, den Pearson-Korrelationskoeffizienten gemäß dieser Formel über einen großen Datensatz zu berechnen :

Geben Sie hier die Bildbeschreibung ein

Meistens liegen meine Werte zwischen -1 und 1, aber manchmal bekomme ich seltsame Zahlen wie:

1.0000000002
-3 

Und so weiter. Ist es möglich, seltsame Daten zu haben, die dazu führen würden, oder bedeutet dies, dass ich einen Berechnungsfehler habe?

Zum Beispiel stelle ich fest, dass meine Summe von X manchmal 1 ist und daher die Summe von X ^ 2 1 wäre. Dies führt zu einem Wert wie 1,00000002. In anderen Fällen habe ich die Summe von XY als 0 und dann die resultierende Berechnung -3. Ist dies statistisch möglich oder liegt ein Fehler in meinen Berechnungen vor?


2
Welche Sprache oder Umgebung verwenden Sie?
P. Windridge

3
Es wäre hilfreich, ein wenig über die Größe der Zahlen zu wissen, mit denen Sie es zu tun hatten, wie viele davon es gab und wie genau Ihre Zwischenberechnungen sind, z. B. ... hier gibt es eindeutig ein Problem mit der numerischen Stabilität könnte es wert sein, erkundet zu werden. xy
Silverfish

1
Ich zweite @Silverfish. Vielleicht können Sie ein Beispiel posten, das wir bewerten können. Nb1) Sie können mit Strg + Umschalt + JNb2 auf die JavaScript-Konsole von Chrome zugreifen.) Alle JS-Nummern sind 64-Bit-Doppel w3schools.com/js/js_numbers.asp
P.Windridge

1
Ironisch Antwort: Es ist nicht möglich, hat oder mathematisch (dh für ), aber es ist möglich zu haben zu sein in IEEE - Arithmetik, wenn und / oder sind konstant (als gleich , was alle Vergleiche nicht besteht). R>1R<1R.R.NOT((R>=-1)&(R<=1))Truexy0/0NaN
GeoMatt22

1
"Für meinen Y-Datensatz sind die Zahlen 0 <Y <1 und im Allgemeinen irgendwo zwischen e-5 und e-350. Für meinen X-Datensatz liegen die Zahlen irgendwo zwischen 0 und e7." Ok, Sportfans, so viele Bestellungen Die Größenordnung der Zahlen ist kein Erfolgsrezept, insbesondere für numerisch nicht robuste Algorithmen, aber vielleicht nicht so gut mit ihnen.
Mark L. Stone

Antworten:


16

Es ist seit langem bekannt, dass die von Ihnen verwendeten Formeln numerisch instabil sind. Wenn die quadratischen Mittelwerte im Vergleich zu den Varianzen groß sind und / oder die Mittelwerte im Vergleich zu den Kovarianzen groß sind, kann der Unterschied im Zähler und in den in Klammern gesetzten Begriffen im Nenner Probleme mit der katastrophalen Löschung haben .

Dies kann manchmal zu berechneten Varianzen oder Kovarianzen führen, die nicht einmal eine einzige Ziffer der Genauigkeit beibehalten (dh schlechter als nutzlos sind).

Verwenden Sie diese Formeln nicht. Sie machten Sinn, wenn Menschen von Hand berechneten , wo man sehen konnte, und sich mit solchen Präzisionsverlusten befassten, wenn dies passierte - z. B. ging der Verwendung dieser Formeln normalerweise das Entfernen der gemeinsamen Ziffern voraus, also Zahlen wie diese:

 8901234.567...
 8901234.575...
 8901234.412...

hätte zuerst (zumindest) 8901234 abgezogen - was viel Zeit bei der Arbeit sparen und das Stornierungsproblem vermeiden würde. Mittelwerte (und ähnliche Mengen) würden dann am Ende wieder angepasst, während Varianzen und Kovarianzen unverändert verwendet werden könnten.

Ähnliche Ideen (und andere Ideen) können mit Computern verwendet werden, aber Sie müssen sie wirklich die ganze Zeit verwenden, anstatt zu erraten, wann Sie sie möglicherweise benötigen.

Effiziente Wege, um mit diesem Problem umzugehen, sind seit über einem halben Jahrhundert bekannt - siehe z. B. Welfords Artikel von 1962 [1] (in dem er Varianz- und Kovarianzalgorithmen für einen Durchgang angibt - stabile Algorithmen für zwei Durchgänge waren bereits bekannt). Chan et al. [2] (1983) vergleichen eine Reihe von Varianzalgorithmen und bieten eine Möglichkeit, zu entscheiden, wann welche verwendet werden sollen (obwohl in den meisten Implementierungen im Allgemeinen nur ein Algorithmus verwendet wird).

Siehe die Diskussion von Wikipedia zu diesem Thema in Bezug auf Varianz und die Diskussion über Varianzalgorithmen .

Ähnliche Kommentare gelten für die Kovarianz.

[1] BP Welford (1962),
"Anmerkung zu einer Methode zur Berechnung korrigierter Summen von Quadraten und Produkten",
Technometrics Vol. 4, Iss. 3, 419-420
(Citeseer Link )

[2] TF Chan, GH Golub und RJ LeVeque (1983)
"Algorithmen zur Berechnung der Stichprobenvarianz: Analyse und Empfehlungen",
The American Statistician , Vol. 37, No. 3 (Aug.1983), S. 242-247
Tech Report Version


Ich denke, für die numerischen Probleme ist der einfache Zwei-Pass-Algorithmus normalerweise ausreichend zuverlässig: ein Durchgang für Mittelwerte, ein zweiter Durchgang für (Co-) Varianzen. Mein Eindruck ist, dass die schickeren Varianten (z. B. kompensierte Summe) selten für die Zuverlässigkeit erforderlich sind, wenn doppelte Präzision verwendet wird. (Aus Effizienzgründen können die Online- und / oder Parallelversionen jedoch nützlich sein.) Manchmal benehme ich mich definitiv schlecht und verwende die instabile Form! (für Dinge wie gleitende Durchschnittsfilter über Bildern)
GeoMatt22

1
(+1) @Tim bietet eine RImplementierung des Welford-Algorithmus unter stats.stackexchange.com/a/235151/919 .
whuber

8

Der Pearson-Korrelationskoeffizient liegt tatsächlich zwischen - -1 und +1(einschließlich). Dies folgt aus der Cauchy-Schwarz-Ungleichung.

Erhalten eines Korrelationskoeffizienten von 1.0000000002 ist möglicherweise (aber unwahrscheinlich) auf einen numerischen Fehler zurückzuführen, während -3 mit ziemlicher Sicherheit auf einen Fehler in der Implementierung hinweist (oder auf eine Plattform, die für numerische Fehler ungeeignet ist! :).


Könnten Sie möglicherweise in Betracht ziehen, Ihre Antwort zu erweitern (dh zu zeigen, wie sie sich aus CS ineq. Folgt und in wenigen Worten über numerische Fehler spricht)?
Tim
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.