Взвешенное стандартное отклонение — полезный способ измерения дисперсии значений в наборе данных, когда некоторые значения в наборе данных имеют больший вес, чем другие.
Формула для расчета взвешенного стандартного отклонения:
куда:
- N: общее количество наблюдений
- M: количество ненулевых весов
- w i : вектор весов
- x i : вектор значений данных
- x : взвешенное среднее
Самый простой способ вычислить взвешенное стандартное отклонение в Python — использовать функцию DescrStatsW() из пакета statsmodels:
DescrStatsW(values, weights=weights, ddof= 1 ). std
В следующем примере показано, как использовать эту функцию на практике.
Пример: взвешенное стандартное отклонение в Python
Предположим, у нас есть следующий массив значений данных и соответствующих весов:
#define data values
values = [14, 19, 22, 25, 29, 31, 31, 38, 40, 41]
#define weights
weights = [1, 1, 1.5, 2, 2, 1.5, 1, 2, 3, 2]
Следующий код показывает, как вычислить взвешенное стандартное отклонение для этого массива значений данных:
from statsmodels. stats.weightstats import DescrStatsW
#calculate weighted standard deviation
DescrStatsW(values, weights=weights, ddof= 1 ). std
8.570050878426773
Взвешенное стандартное отклонение оказывается равным 8,57 .
Обратите внимание, что мы также можем использовать var для быстрого вычисления взвешенной дисперсии:
from statsmodels. stats.weightstats import DescrStatsW
#calculate weighted variance
DescrStatsW(values, weights=weights, ddof= 1 ). var
73.44577205882352
Взвешенная дисперсия оказывается равной 73,446 .
Дополнительные ресурсы
В следующих руководствах объясняется, как рассчитать взвешенное стандартное отклонение в других статистических программах:
Как рассчитать взвешенное стандартное отклонение в Excel
Как рассчитать взвешенное стандартное отклонение в R