Ich versuche, den Pearson-Korrelationskoeffizienten gemäß dieser Formel über einen großen Datensatz zu berechnen :
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?
correlation
pearson-r
numerics
ocean800
quelle
quelle
NOT((R>=-1)&(R<=1))
True
0/0
NaN
Antworten:
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:
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
quelle
R
Implementierung des Welford-Algorithmus unter stats.stackexchange.com/a/235151/919 .Der Pearson-Korrelationskoeffizient liegt tatsächlich zwischen- 1 und + 1 (einschließlich). Dies folgt aus der Cauchy-Schwarz-Ungleichung.
Erhalten eines Korrelationskoeffizienten von1.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! :).
quelle