Mam tablicę wartości rzeczywistych, co ma średnią i odchylenie standardowe . Jeśli element tablicy zostanie zastąpiony innym elementem , wówczas nowa średnia będzie
Zaletą tego podejścia jest to, że wymaga ciągłego obliczania niezależnie od wartości . Czy istnieje jakieś podejście do obliczania przy użyciu \ sigma_ {old}, podobnie jak obliczenia \ mu_ {new} przy użyciu \ mu_ {old} ?σ n e w σ o l d μ n e w μ o l d
standard-deviation
online
użytkownik
źródło
źródło
Odpowiedzi:
Część artykułu w Wikipedii „Algorytmy obliczania wariancji” pokazuje, jak obliczyć wariancję, jeśli do twoich obserwacji zostaną dodane elementy. (Przypomnij, że odchylenie standardowe jest pierwiastkiem kwadratowym wariancji.) Załóżmy, że dodajesz do tablicy, a następniexn + 1
EDYCJA : Powyższa formuła wydaje się nieprawidłowa, patrz komentarz.
Teraz zastąpienie elementu oznacza dodanie obserwacji i usunięcie kolejnego; oba można obliczyć za pomocą powyższego wzoru. Należy jednak pamiętać, że mogą wystąpić problemy ze stabilnością liczbową; cytowany artykuł proponuje również warianty stabilne numerycznie.
Aby wyprowadzić formułę samodzielnie, oblicz używając definicji wariancji próbki i podstawiając μ n e w wzorem podanym w razie potrzeby. To daje ci σ 2 n e w - σ 2 o l d na końcu, a zatem wzór na σ n e w danym σ o l d i(n−1)(σ2new−σ2old) μnew σ2new−σ2old σnew σold . W moim zapisie, zakładam wymienić element x n przez x ' n :μold xn x′n
w sumie przekształcić w coś zależnego od ľ o l d , ale będziesz musiał pracować równania nieco więcej czerpać schludny wynik. To powinno dać ci ogólny pomysł.xk μold
źródło
Based on what i think i'm reading on the linked Wikipedia article you can maintain a "running" standard deviation:
Although in the article they don't maintain a separate running
sum
andcount
, but instead have the singlemean
. Since in thing i'm doing today i keep acount
(for statistical purposes), it is more useful to calculate the means each time.źródło
Given originalx¯ , s , and n , as well as the change of a given element xn to x′n , I believe your new standard deviation s′ will be the square root of
Maybe there is a snazzier way of writing it?
I checked this against a small test case and it seemed to work.
źródło