Ich habe ein Array von reellen Werten, die den Mittelwert von μ o l d und die Standardabweichung von σ o l d haben . Wenn ein Element des Arrays x i durch ein anderes Element x j ersetzt wird , lautet der neue Mittelwert
Der Vorteil dieses Ansatzes besteht darin, dass eine konstante Berechnung unabhängig vom Wert von erforderlich ist . Gibt es einen Ansatz zur Berechnung von σ n e w unter Verwendung von σ o l d wie die Berechnung von μ n e w unter Verwendung von μ o l d ?
standard-deviation
online
Benutzer
quelle
quelle
Antworten:
Ein Abschnitt im Wikipedia-Artikel über "Algorithmen zur Berechnung der Varianz" zeigt, wie die Varianz berechnet wird, wenn Ihren Beobachtungen Elemente hinzugefügt werden. (Denken Sie daran, dass die Standardabweichung die Quadratwurzel der Varianz ist.) Angenommen, Sie fügen an Ihr Array anxn + 1
EDIT : Die obige Formel scheint falsch zu sein, siehe Kommentar.
Wenn Sie nun ein Element ersetzen, müssen Sie eine Beobachtung hinzufügen und eine andere entfernen. beide können mit der obigen Formel berechnet werden. Beachten Sie jedoch, dass Probleme mit der numerischen Stabilität auftreten können. der zitierte Artikel schlägt auch numerisch stabile Varianten vor.
Um die Formel selbst abzuleiten, berechnen Sie Verwendung der Definition der Stichprobenvarianz und setzen Sie μ n e w gegebenenfalls durch die von Ihnen angegebene Formel ein. Dies ergibt am Ende σ 2 n e w - σ 2 o l d und somit eine Formel für σ n e w mit σ o l d und( n - 1 ) ( σ2n e w- σ2o l d) μn e w σ2n e w- σ2o l d σn e w σo l d . In meiner Notation gehe ich davon aus, dass Sie das Element x n durch x ′ n ersetzen:μo l d xn x′n
Das in der Summe transformiert sich in etwas, das von μ o l d abhängt , aber Sie müssen die Gleichung ein wenig genauer ausführen, um ein ordentliches Ergebnis zu erhalten. Dies sollte Ihnen die allgemeine Idee geben.xk μo l d
quelle
Basierend auf dem, was ich glaube, auf dem verlinkten Wikipedia-Artikel zu lesen , können Sie eine "laufende" Standardabweichung beibehalten:
In dem Artikel pflegen sie zwar keinen separaten Lauf
sum
undcount
, sondern haben stattdessen den einzigenmean
. Da ich in dem, was ich heute mache, eine behaltecount
(zu statistischen Zwecken), ist es sinnvoller, die Mittelwerte jedes Mal zu berechnen.quelle
Vielleicht gibt es eine schickere Art, es zu schreiben?
Ich habe dies anhand eines kleinen Testfalls überprüft, und es schien zu funktionieren.
quelle