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