Як обчислити зважене стандартне відхилення в 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *