Cours
La visualisation de données est une compétence essentielle pour les data scientists. Elle marie statistiques et design de manière pertinente et efficace. D’un côté, la visualisation est une forme d’analyse graphique des données, qui privilégie la représentation fidèle et l’interprétation. De l’autre, elle s’appuie sur de bons choix de design pour rendre les graphiques attractifs et faciliter à la fois la compréhension et la communication des résultats. À cela s’ajoute une part de créativité, car la visualisation de données reste avant tout une communication visuelle.

Il est important de distinguer visualisations exploratoires et explicatives. Les visualisations exploratoires sont rapides à produire, riches en données et destinées à un public restreint et spécialiste, comme vous et vos collègues : leur objectif principal est l’analyse graphique des données. Les visualisations explicatives demandent plus d’efforts, sont adaptées à des données spécifiques et visent un public plus large (publications, présentations) : elles s’inscrivent dans une démarche de communication. En tant que data scientist, vous devez pouvoir explorer rapidement des données, mais aussi expliquer vos résultats aux parties prenantes. Un bon design commence par la réflexion sur l’audience — et parfois, cela signifie tout simplement nous-mêmes.

Nuage de points
Ci-dessous, nous avons un jeu de données qui contient les poids moyens du cerveau et du corps de 62 mammifères.
MASS::mammals
body brain
Arctic fox 3.385 44.50
Owl monkey 0.480 15.50
Mountain beaver 1.350 8.10
Cow 465.000 423.00
Grey wolf 36.330 119.50
Goat 27.660 115.00
Roe deer 14.830 98.20
...
Pig 192.000 180.00
Echidna 3.000 25.00
Brazilian tapir 160.000 169.00
Tenrec 0.900 2.60
Phalanger 1.620 11.40
Tree shrew 0.104 2.50
Red fox 4.235 50.40
Pour comprendre la relation entre ces variables, la première étape la plus évidente est de réaliser un nuage de points, comme ci-dessous :
ggplot(mammals, aes(x = body, y = brain)) +
geom_point()

Deux mammifères, les éléphants d’Afrique et d’Asie, ont des poids du cerveau et du corps très élevés, ce qui induit une asymétrie positive sur les deux axes.
Modèle linéaire
Si nous appliquions un modèle linéaire tel quel, ce serait un mauvais choix, car quelques valeurs extrêmes exerceraient une influence disproportionnée.
ggplot(mammals, aes(x = body, y = brain)) +
geom_point(alpha = 0.6) +
stat_smooth(
method = "lm",
color = "red",
se = FALSE
)

Appliquer une transformation logarithmique aux deux variables permet un ajustement plus pertinent.
ggplot(mammals, aes(x = body, y = brain)) +
geom_point(alpha = 0.6) +
coord_fixed() +
scale_x_log10() +
scale_y_log10() +
stat_smooth(
method = "lm",
color = "#C42126",
se = FALSE,
size = 1
)

Ainsi, même si nous avons commencé par un graphique exploratoire sommaire, il nous a informés sur nos données et nous a conduits à un résultat pertinent.
Les graphiques d’Anscombe
Lorsque nous pensons à un modèle linéaire, comme sur ce graphique anonyme, nous imaginons que nous décrivons des données qui ressemblent à ceci.

Mais ce même modèle pourrait décrire un tout autre jeu de données, par exemple une relation parabolique, qui appellerait un autre modèle.

Ou des données où une valeur extrême a un effet majeur, ce qui devient évident une fois l’observation aberrante retirée.

Et parfois, le modèle peut sembler décrire une relation alors qu’il n’y en a pas, parce que certaines valeurs extrêmes sont erronées.

Si nous nous contentions des résultats numériques sans tracer les données, nous passerions à côté de tendances sous-jacentes distinctes et intéressantes.

On voit bien que la visualisation de données s’enracine dans les statistiques et l’analyse graphique, tout en étant un processus créatif qui implique une part d’essais et d’erreurs.
Exemple interactif
Dans l’exemple suivant, vous allez d’abord charger le package ggplot2 avec library(). Puis vous explorerez la structure du jeu de données mtcars avec str().
Enfin, vous visualiserez le ggplot et chercherez à comprendre ce que ggplot fait des données.
Vous utiliserez le jeu de données mtcars, qui contient des informations sur 32 voitures issues d’un numéro de 1973 du magazine Motor Trend. Ce jeu de données est de petite taille, intuitif, et comporte une variété de variables continues et catégorielles.
# Load the ggplot2 package
library(ggplot2)
# Explore the mtcars data frame with str()
str(mtcars)
# Execute the following command
p <- ggplot(mtcars, aes(cyl, mpg)) +
geom_point()
Lorsque nous exécutons le code ci-dessus, il produit le résultat suivant :
data.frame': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
$ hp : num 110 110 93 110 175 105 245 62 95 123 ...
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
$ qsec: num 16.5 17 18.6 19.4 17 ...
$ vs : num 0 0 1 1 0 1 0 1 1 1 ...
$ am : num 1 1 1 0 0 0 0 0 0 0 ...
$ gear: num 4 4 4 3 3 3 3 4 4 4 ...
$ carb: num 4 4 1 1 2 1 4 2 2 4 ...

Pour en savoir plus sur la visualisation de données avec ggplot, regardez cette vidéo issue de notre cours Introduction to Data Visualization with ggplot2. Gardez aussi à portée de main notre ggplot2 Cheat Sheet comme aide-mémoire.
Ce contenu est extrait du cours Introduction to Data Visualization with ggplot2 de DataCamp, par Rick Scavetta.