Как рассчитать взвешенное стандартное отклонение в r
Взвешенное стандартное отклонение — это полезный способ измерения дисперсии значений в наборе данных, когда некоторые значения в наборе данных имеют более высокие веса, чем другие.
Формула для расчета взвешенного стандартного отклонения:
Золото:
- N: Общее количество наблюдений
- M: количество ненулевых весов.
- w i : Весовой вектор
- x i : вектор значений данных
- x : Средневзвешенное значение
Самый простой способ вычислить взвешенное стандартное отклонение в R — использовать функцию wt.var() из пакета Hmisc , которая использует следующий синтаксис:
#define data values x <- c(4, 7, 12, 13, ...) #define weights wt <- c(.5, 1, 2, 2, ...) #calculate weighted variance weighted_var <- wtd. var (x, wt) #calculate weighted standard deviation weighted_sd <- sqrt(weighted_var)
Следующие примеры показывают, как использовать эту функцию на практике.
Пример 1: Взвешенное стандартное отклонение для вектора
Следующий код показывает, как вычислить взвешенное стандартное отклонение для одного вектора в R:
library (Hmisc) #define data values x <- c(14, 19, 22, 25, 29, 31, 31, 38, 40, 41) #define weights wt <- c(1, 1, 1.5, 2, 2, 1.5, 1, 2, 3, 2) #calculate weighted variance weighted_var <- wtd. var (x, wt) #calculate weighted standard deviation sqrt(weighted_var) [1] 8.570051
Взвешенное стандартное отклонение оказывается равным 8,57 .
Пример 2. Взвешенное стандартное отклонение для столбца во фрейме данных.
Следующий код показывает, как вычислить взвешенное стандартное отклонение для столбца фрейма данных в R:
library (Hmisc) #define data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'C'), wins=c(2, 9, 11, 12, 15, 17, 18, 19), dots=c(1, 2, 2, 2, 3, 3, 3, 3)) #define weights wt <- c(1, 1, 1.5, 2, 2, 1.5, 1, 2) #calculate weighted standard deviation of points sqrt(wtd. var (df$points, wt)) [1] 0.6727938
Взвешенное стандартное отклонение для столбца точек оказывается равным 0,673 .
Пример 3. Взвешенное стандартное отклонение для нескольких столбцов в фрейме данных.
В следующем коде показано, как использовать функцию sapply() в R для расчета взвешенного стандартного отклонения для нескольких столбцов во фрейме данных:
library (Hmisc) #define data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'C'), wins=c(2, 9, 11, 12, 15, 17, 18, 19), dots=c(1, 2, 2, 2, 3, 3, 3, 3)) #define weights wt <- c(1, 1, 1.5, 2, 2, 1.5, 1, 2) #calculate weighted standard deviation of points and wins sapply(df[c(' wins ', ' points ')], function(x) sqrt(wtd. var (x, wt))) win points 4.9535723 0.6727938
Взвешенное стандартное отклонение для столбца «выигрыши» составляет 4,954 , а взвешенное стандартное отклонение для столбца «очки» — 0,673 .
Дополнительные ресурсы
Как рассчитать взвешенное стандартное отклонение в Excel
Как рассчитать стандартное отклонение в R
Как рассчитать коэффициент вариации R
Как рассчитать дальность в R