Как рассчитать взвешенное стандартное отклонение в R

Как рассчитать взвешенное стандартное отклонение в 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),
 points=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),
 points=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)))

 wins points 
4.9535723 0.6727938

Средневзвешенное стандартное отклонение для столбца побед равно 4,954 , а средневзвешенное стандартное отклонение для столбца очков равно 0,673 .

Дополнительные ресурсы

Как рассчитать взвешенное стандартное отклонение в Excel
Как рассчитать стандартное отклонение в R
Как рассчитать коэффициент вариации R
Как рассчитать диапазон в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.