Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment standardiser les données dans R : avec des exemples



Standardiser un ensemble de données signifie mettre à l’échelle toutes les valeurs de l’ensemble de données de telle sorte que la valeur moyenne soit 0 et l’écart type soit 1.

La manière la plus courante de procéder consiste à utiliser la standardisation du score z, qui met à l’échelle les valeurs à l’aide de la formule suivante :

(x jex ) / s

où:

  • x i : la ième valeur de l’ensemble de données
  • x : La moyenne de l’échantillon
  • s : l’écart type de l’échantillon

Les exemples suivants montrent comment utiliser la fonction scale() avec le package dplyr dans R pour mettre à l’échelle une ou plusieurs variables dans un bloc de données à l’aide de la standardisation z-score.

Standardiser une seule variable

Le code suivant montre comment mettre à l’échelle une seule variable dans un bloc de données comportant trois variables :

library(dplyr)

#make this example reproducible 
set.seed(1)

#create original data frame
df <- data.frame(var1= runif(10, 0, 50), 
                 var2= runif(10, 2, 23),
                 var3= runif(10, 5, 38))

#view original data frame 
df

        var1      var2      var3
1  13.275433  6.325466 35.845273
2  18.606195  5.707692 12.000703
3  28.642668 16.427480 26.505234
4  45.410389 10.066178  9.143318
5  10.084097 18.166670 13.818282
6  44.919484 12.451684 17.741765
7  47.233763 17.069989  5.441881
8  33.039890 22.830028 17.618803
9  31.455702  9.980739 33.699798
10  3.089314 18.326350 16.231517

#scale var1 to have mean = 0 and standard deviation = 1
df2 <- df %>% mutate_at(c('var1'), ~(scale(.) %>% as.vector))
df2

          var1      var2      var3
1  -0.90606801  6.325466 35.845273
2  -0.56830963  5.707692 12.000703
3   0.06760377 16.427480 26.505234
4   1.13001072 10.066178  9.143318
5  -1.10827188 18.166670 13.818282
6   1.09890684 12.451684 17.741765
7   1.24554014 17.069989  5.441881
8   0.34621281 22.830028 17.618803
9   0.24583830  9.980739 33.699798
10 -1.55146305 18.326350 16.231517

Notez que seule la première variable a été mise à l’échelle tandis que les deux autres variables sont restées les mêmes. Nous pouvons rapidement confirmer que la nouvelle variable mise à l’échelle a une valeur moyenne de 0 et un écart type de 1 :

#calculate mean of scaled variable
mean(df2$var1)

[1] -4.18502e-18 #basically zero

#calculate standard deviation of scaled variable 
sd(df2$var1)

[1] 1

Standardiser plusieurs variables

Le code suivant montre comment mettre à l’échelle plusieurs variables dans un bloc de données à la fois :

library(dplyr)

#make this example reproducible 
set.seed(1)

#create original data frame
df <- data.frame(var1= runif(10, 0, 50), 
                 var2= runif(10, 2, 23),
                 var3= runif(10, 5, 38))

#scale var1 and var2 to have mean = 0 and standard deviation = 1
df3 <- df %>% mutate_at(c('var1', 'var2'), ~(scale(.) %>% as.vector))
df3

          var1       var2      var3
1  -0.90606801 -1.3045574 35.845273
2  -0.56830963 -1.4133223 12.000703
3   0.06760377  0.4739961 26.505234
4   1.13001072 -0.6459703  9.143318
5  -1.10827188  0.7801967 13.818282
6   1.09890684 -0.2259798 17.741765
7   1.24554014  0.5871157  5.441881
8   0.34621281  1.6012242 17.618803
9   0.24583830 -0.6610127 33.699798
10 -1.55146305  0.8083098 16.231517

Standardiser toutes les variables

Le code suivant montre comment mettre à l’échelle toutes les variables d’un bloc de données à l’aide de la fonction mutate_all :

library(dplyr)

#make this example reproducible 
set.seed(1)

#create original data frame
df <- data.frame(var1= runif(10, 0, 50), 
                 var2= runif(10, 2, 23),
                 var3= runif(10, 5, 38))

#scale all variables to have mean = 0 and standard deviation = 1
df4 <- df %>% mutate_all(~(scale(.) %>% as.vector))
df4

          var1       var2       var3
1  -0.90606801 -1.3045574  1.6819976
2  -0.56830963 -1.4133223 -0.6715858
3   0.06760377  0.4739961  0.7600871
4   1.13001072 -0.6459703 -0.9536246
5  -1.10827188  0.7801967 -0.4921813
6   1.09890684 -0.2259798 -0.1049130
7   1.24554014  0.5871157 -1.3189757
8   0.34621281  1.6012242 -0.1170501
9   0.24583830 -0.6610127  1.4702281
10 -1.55146305  0.8083098 -0.2539824

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment normaliser les données dans R
Comment calculer l’écart type dans R
Comment imputer les valeurs manquantes dans R
Comment transformer des données dans R (Log, racine carrée, racine cubique)

Ajouter un commentaire

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