4.2 Types de variables
Lors de la réalisation de graphiques dans les modules précédents, vous avez compris que toutes les variables ne sont pas équivalentes. Certains graphiques sont plutôt destinés à des variables qualitatives (par exemple, graphique en barres), alors que d’autres représentent des données quantitatives comme le nuage de points.
# gender day_birth weight height wrist year_measure age
# <fctr> <Date> <num> <num> <num> <num> <num>
# 1: M 1995-03-11 69.0 182 15.0 2013 18
# 2: M 1998-04-03 74.0 190 16.0 2013 15
# 3: M 1967-04-04 83.0 185 17.5 2013 46
# 4: M 1994-02-10 60.0 175 15.0 2013 19
# 5: W 1990-12-02 48.0 167 14.0 2013 23
# ---
# 391: M 1998-08-12 80.0 177 18.0 2017 19
# 392: W 1999-08-12 67.3 173 15.0 2017 18
# 393: M 1968-08-18 84.0 187 18.0 2017 49
# 394: W 1971-08-18 64.9 166 15.0 2017 46
# 395: M 1999-08-12 68.7 182 15.0 2017 18
La Figure 4.1 montre deux boites à moustaches parallèles différentes. Laquelle de ces deux représentations est incorrecte et pourquoi ?
a <- chart(biometry, height ~ gender %fill=% gender) +
geom_boxplot()
b <- chart(biometry, height ~ weight %fill=% gender) +
geom_boxplot()
combine_charts(list(a, b), common.legend = TRUE)
C’est la Figure 4.1B qui est incorrecte car elle tente de représenter une variable quantitative numérique height
sous forme de boites à moustaches parallèles en fonction d’une variable de découpage en sous-ensemble (weight
) qui est elle-même une variable quantitative, … alors qu’une variable qualitative telle que gender
aurait dû être utilisée pour ce découpage (comme dans la Fig. 4.1A). Dans le cas présent, R a bien voulu réaliser le graphique (avec juste un petit message d’avertissement), mais comment l’interpréter ? Dans d’autres situations, il vous renverra purement et simplement un message d’erreur.
Les jeux de données, lorsqu’ils sont bien encodés (tableaux “cas par variables”, en anglais on parlera de tidy data), sont en fait un ensemble de variables en colonnes mesurées sur un ensemble d’individus en lignes. Vous avez à votre disposition plusieurs types de variables pour personnaliser le jeu de données. Deux catégories principales de variables existent, chacune avec deux sous-catégories :
- Les variables quantitatives sont issues de mesures quantitatives ou de dénombrements
- Les variables quantitatives continues sont représentées par des valeurs réelles (double dans R)
- Les variables quantitatives discrètes sont typiquement représentées par des entiers (integer dans R)
- Les variables qualitatives sont constituées d’un petit nombre de valeurs possibles (on parle des niveaux de la variables ou de leurs modalités)
- Les variables qualitatives ordonnées ont des niveaux qui peuvent être classés dans un ordre du plus petit au plus grand. elles sont typiquement représentées dans R par des objets ordered.
- Les variables qualitatives non ordonnées ont des niveaux qui ne peuvent être rangés et sont typiquement représentées par des objets factor en R
Il existe naturellement encore d’autres types de variables. Les dates sont représentées, par exemple, par des objets Date, les nombres complexes par complex, les données binaires par raw, etc.
La fonction skimr::skim()
permet de visualiser la classe de la variable et bien plus encore. Elle fournit un résumé différent en fonction du type de la variable et propose, par exemple, un histogramme stylisé pour les variables numériques comme le montre le tableau ci-dessous.
Name | biometry |
Number of rows | 395 |
Number of columns | 7 |
Key | NULL |
_______________________ | |
Column type frequency: | |
Date | 1 |
factor | 1 |
numeric | 5 |
________________________ | |
Group variables | None |
Variable type: Date
skim_variable | n_missing | complete_rate | min | max | median | n_unique |
---|---|---|---|---|---|---|
day_birth | 0 | 1 | 1927-08-29 | 2000-08-11 | 1988-10-05 | 210 |
Variable type: factor
skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
---|---|---|---|---|---|
gender | 0 | 1 | FALSE | 2 | M: 198, W: 197 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
weight | 0 | 1.00 | 71.20 | 15.45 | 41.5 | 59.0 | 69.3 | 80 | 131 | ▅▇▅▁▁ |
height | 0 | 1.00 | 170.71 | 9.07 | 146.0 | 164.0 | 171.0 | 177 | 193 | ▁▆▇▆▂ |
wrist | 2 | 0.99 | 16.65 | 1.67 | 10.0 | 15.5 | 16.5 | 18 | 23 | ▁▃▇▃▁ |
year_measure | 0 | 1.00 | 2015.32 | 1.61 | 2013.0 | 2014.0 | 2016.0 | 2017 | 2017 | ▅▅▁▅▇ |
age | 0 | 1.00 | 35.34 | 17.32 | 15.0 | 19.0 | 27.0 | 50 | 89 | ▇▁▅▁▁ |
Avec une seule instruction, on obtient une quantité d’information sur notre jeu de données comme le nombre d’observations, le nombre de variables et un traitement spécifique pour chaque type de variable. Cette instruction permet de visualiser et d’appréhender le jeu de données mais ne doit généralement pas figurer tel quel dans un rapport final d’analyse (mais a toute sa place dans un bloc-notes, par exemple, où vous consignez vos différentes explorations comme dans un cahier de laboratoire).