Comment calculer l’écart type pondéré dans R



L’ écart type pondéré est un moyen utile de mesurer la dispersion des valeurs dans un ensemble de données lorsque certaines valeurs de l’ensemble de données ont des poids plus élevés que d’autres.

La formule pour calculer un écart type pondéré est la suivante :

où:

  • N : Le nombre total d’ observations
  • M : Le nombre de poids non nuls
  • w i : Un vecteur de poids
  • x i : Un vecteur de valeurs de données
  • x : La moyenne pondérée

Le moyen le plus simple de calculer un écart type pondéré dans R est d’utiliser la fonction wt.var() du package Hmisc , qui utilise la syntaxe suivante :

#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)

Les exemples suivants montrent comment utiliser cette fonction dans la pratique.

Exemple 1 : écart type pondéré pour un vecteur

Le code suivant montre comment calculer l’écart type pondéré pour un seul vecteur dans 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

L’écart type pondéré s’avère être de 8,57 .

Exemple 2 : écart type pondéré pour une colonne du bloc de données

Le code suivant montre comment calculer l’écart type pondéré pour une colonne d’un bloc de données dans 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

L’écart type pondéré pour la colonne des points s’avère être de 0,673 .

Exemple 3 : écart type pondéré pour plusieurs colonnes d’un bloc de données

Le code suivant montre comment utiliser la fonction sapply() dans R pour calculer l’écart type pondéré pour plusieurs colonnes d’un bloc de données :

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 

L’écart type pondéré pour la colonne des gains est de 4,954 et l’écart type pondéré pour la colonne des points est de 0,673 .

Ressources additionnelles

Comment calculer l’écart type pondéré dans Excel
Comment calculer l’écart type dans R
Comment calculer le coefficient de variation de R
Comment calculer la plage dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *