У меня есть массив из реальных значений, который имеет среднее значение и стандартное отклонение . Если элемент массива заменяется другим элементом , то новое среднее значение будет
Преимущество этого подхода в том, что он требует постоянного вычисления независимо от значения . Есть ли какой-либо подход к вычислению с использованием как вычисление с использованием ?
standard-deviation
online
пользователь
источник
источник
Ответы:
Раздел в статье Википедии о «Алгоритмы для вычисления дисперсии» показывает , как вычислить дисперсию , если элементы добавляются к вашим наблюдениям. (Вспомните, что стандартное отклонение - это квадратный корень из дисперсии.) Предположим, что вы добавили в свой массив, затемxn+1
РЕДАКТИРОВАТЬ : Выше формула, кажется, неправильно, см. Комментарий.
Теперь замена элемента означает добавление наблюдения и удаление другого; оба могут быть вычислены по формуле выше. Однако имейте в виду, что могут возникнуть проблемы численной устойчивости; цитируемая статья также предлагает численно стабильные варианты.
Для того, чтобы вывести формулу самостоятельно, вычислить с использованием определения образца дисперсии и заменить ц н е ш по формуле вы дали , когда это необходимо. Это дает вам σ 2 n e w - σ 2 o l d в конце, и, таким образом, формула для σ n e w задана σ o l d и(n−1)(σ2new−σ2old) μnew σ2new−σ2old σnew σold . В моей записи я предполагаю, что вы заменяете элемент x n на x ′ n :μold xn x′n
источник
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.источник
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.
источник