Visualisation interactive de données dans R avec animint2

1 Contenu et contexte

Dans ce manuel, nous expliquons comment planifier et créer des visualisations de données interactives avec le package R animint2.

1.1 Contenu

Ce manuel comporte trois volets que nous présentons dans les sections suivantes.

1.1.1 Extensions animint2 à la grammaire des graphiques

Les sept premiers chapitres fournissent les bases de la visualisation interactive des données avec animint2 et vous devriez les lire dans l’ordre.

Dès la section contexte ci-dessous, ce premier chapitre donne un aperçu de l’analyse et de la visualisation de données. Il apporte le contexte et la base théorique nécessaires à la compréhension des autres chapitres, ce qui sera particulièrement utile aux novices en matière d’analyse de données. Il présente la méthode de prototypage de visualisation des données à l’aide d’esquisses, sans introduire de code R.

À partir du chapitre 2, nous démontrons comment traduire les esquisses de graphiques en code R. Ce chapitre présente les bases de la visualisation de données à l’aide de ggplots et de animint2, et sera une ressource précieuse pour les lecteurs qui n’ont jamais utilisé ggplot2. Nous y expliquons comment générer des ggplots standards sur des pages web en utilisant animint2.

Le chapitre 3 présente showSelected, l’un des deux principaux mots-clés introduits par animint2 pour la conception de visualisation des données interactives. Ce chapitre s’ouvre sur une explication des variables de sélection, qui constituent le mécanisme d’interaction dans animint2. Le chapitre 3 explique ensuite comment le mot-clé showSelected permet de tracer des sous-ensembles de données. Nous expliquons également comment utiliser des transitions graduelles et des animations.

Le chapitre 4 est consacré à clickSelects, l’autre mot-clé important introduit par animint2 pour la conception de visualisation des données interactives. Le mot-clé clickSelects permet à l’utilisateur de modifier une variable de sélection en cliquant directement sur un élément du graphique.

Le chapitre 5 explique différentes façons de partager vos visualisations de données interactives sur le web.

Le chapitre 6 couvre d’autres fonctionnalités de animint2, y compris la manière de définir des hyperliens, des infobulles et toutes les autres nouvelles fonctionnalités qui n’existent pas dans les graphiques statiques de ggplot2.

Le chapitre 7 couvre les limites de l’implémentation actuelle du package R animint2, et propose des solutions de contournement pour certains problèmes courants. De plus, il présente quelques idées d’amélioration, à l’intention de ceux qui souhaiteraient contribuer au développement de animint2.

1.1.2 Exemples

Les chapitres restants peuvent être lus dans n’importe quel ordre, puisque chacun explique comment réaliser des visualisations de données pour un ensemble de données ou un algorithme statistique particulier.

Le chapitre 8 explique comment créer une visualisation interactive multi-panneaux des données de la Banque mondiale.

Le chapitre 9 présente une visualisation des données provenant de cyclistes de Montréal.

Le chapitre 10 explique comment créer une version interactive de la visualisation des données sur les plus proches voisins du livre Elements of Statistical Learning (Hastie, Tibshirani, et Friedman 2009).

Le chapitre 11 présente une visualisation des données qui explique le Lasso, un modèle d’apprentissage automatique pour la régression régularisée.

Le chapitre 12 présente une visualisation des données qui explique la séparateur à vaste marge (aussi connu sous le nom « machine à vecteurs de support » ou SVM), un modèle d’apprentissage automatique pour la classification binaire.

Le chapitre 13 explique comment créer une visualisation interactive qui explique le modèle de régression de Poisson.

Le chapitre 14 montre un exemple de création d’une visualisation avec nombreux sélecteurs, à l’aide de clickSelects et showSelected nommés, dans une visualisation interactive d’un modèle pour la détection de pics.

Le chapitre 15 explique comment créer une visualisation interactive de l’algorithme de recherche de racines « root-finding » de Newton.

Le chapitre 16 explique comment créer une visualisation interactive d’un modèle de détection de ruptures dans les données séquentielles.

Le chapitre 17 explique comment créer une visualisation interactive de l’algorithme d’agrégation « clustering », k-moyennes.

Le chapitre 18 explique comment créer une visualisation interactive de l’algorithme de descente de gradient pour l’apprentissage d’un réseau de neurones.

Le chapitre 19 explique la visualisation des valeurs-p. Pour éviter l’occlusion dans un nuage de points avec trop de données, nous proposons une visualisation interactive avec carte thermique reliée à un nuage de points.

Le chapitre 20 propose plusieurs visualisations pour comparer différents algorithmes d’apprentissage artificiel, calculé avec le package mlr3.

1.1.3 Annexes

Le Glossaire contient l’explication détaillée de plusieurs expressions idiomatiques du code R utilisées dans ce manuel.

Le Guide de contribution fournit des instructions sur la manière de contribuer à l’amélioration de ce manuel.

1.2 Contexte

L’objectif de ce manuel est d’expliquer l’utilisation des éléments suivants animint2, un package R pour la visualisation interactive des données. Ce chapitre d’introduction répond aux questions suivantes :

  • Que sont les données et comment les analyser?
  • Qu’est-ce que la visualisation des données, et quand est-elle utile pour l’analyse des données?
  • Qu’est-ce que la visualisation des données interactive et dans quelles situations est-elle utile?

La structure du chapitre est la suivante :

  • Qu’est-ce qu’une donnée?
  • Petits ensembles de données – la visualisation des données n’est pas nécessaire.
  • Moyens ensembles – la visualisation statique des données est suffisante.
  • Grands ensembles - la visualisation interactive est utile.

1.2.1 Qu’est-ce que l’analyse des données?

{#data}

Les données sont des éléments d’information enregistrés de manière systématique, que ce soit sur support papier ou informatique. Tout le monde peut créer des données, simplement en consignant méthodiquement des éléments. En général, les données sont créées pour répondre à une question précise et sont organisées en tableaux comportant des lignes pour les observations et des colonnes pour les variables ou différents types d’informations. D’après Larousse, « donnée » désigne la « représentation conventionnelle d’une information en vue de son traitement informatique » (larousse_donnée?). https://www.larousse.fr/dictionnaires/francais/donnée Dans le cas de animint2, la représentation conventionnelle est un tableau, dans lequel chaque ligne correspond à une observation, et chaque colonne à une variable. Nous utilisons le terme « ensemble de données » pour désigner un sous-ensemble d’observations/de lignes, ou le tableau de données dans son intégralité.

Il existe de nombreux exemples de données qui pourraient être créées pour répondre à des questions basées sur des expériences quotidiennes :

  • Comment la météo de cette année se compare-t-elle à celle des années précédentes? La quantité de pluie est-elle supérieure ou inférieure à la normale? Pour répondre à ces questions, nous pourrions créer un tableau de données avec des colonnes pour les mesures des différentes conditions météorologiques (température, précipitations, etc.), ainsi que des colonnes pour la date et l’heure de chaque observation, et une ligne pour chaque observation.
  • Quel est l’effet de mon régime alimentaire sur ma santé? Si vous modifiez votre alimentation, vous pouvez noter ce que vous mangez et comment vous vous sentez après chaque repas dans un tableau de contingence comportant une ligne pour chaque repas et quatre colonnes (date, heure, aliments consommés, effets constatés).
  • Ce nouveau traitement contre le cancer du poumon est-il plus efficace que l’ancien? Le médecin responsable d’un essai clinique répartit au hasard les patients en deux groupes : l’un recevant un nouveau traitement, l’autre l’ancien. Le médecin créerait ensuite un tableau de données comportant une ligne pour chaque patient, et plusieurs colonnes : nombre d’années de tabagisme, type de traitement (nouveau ou ancien), âge au moment du traitement, âge au décès, mesure des marqueurs tumoraux, etc.

Nous définissons l’« analyse des données » comme le processus visant à répondre à ces questions en convertissant le tableau de données brut en d’autres formes plus compréhensibles. Parmi les méthodes d’analyse particulièrement efficaces figure la « visualisation des données », qui cherche à répondre aux questions en transposant un ensemble de données en une image informative. Le terme « visualisation des données » désigne à la fois l’image (également connue sous le nom de graphique, figure, diagramme, graph, plot ou visualisation de données) et le processus de création de l’image.

Il existe de nombreuses façons différentes d’effectuer une analyse de données, et différentes techniques sont nécessaires selon la taille des ensembles de données. Bien que les définitions varient d’un auteur à l’autre, nous adopterons dans ce manuel une classification en trois catégories : petits, moyens et grands ensembles de données. Nous discutons d’abord des petits ensembles de données, pour lesquels la visualisation n’est pas nécessaire.

1.2.2 Analyse des petits ensembles de données sans visualisation

Dans cette section, nous aborderons les « petits ensembles de données » dont la taille restreinte permet une analyse par simple examen du tableau de données. Pour ces ensembles, la visualisation graphique n’est pas nécessaire : la présentation sous forme de tableau est suffisante.

Prenons l’exemple de la célèbre expérience de dégustation du thé conçue par Ronald Fisher. Une dame a affirmé pouvoir détecter si le lait d’une tasse de thé avait été ajouté avant ou après le thé. Fisher s’est posé la question suivante : la dame peut-elle vraiment distinguer les deux types de préparation?

Pour répondre à cette question, Fisher a préparé huit tasses : quatre avec du lait ajouté après le thé, et quatre avec du lait ajouté avant. Il les a ensuite fait goûter à la dame dans un ordre aléatoire en lui demandant d’identifier celles dans lesquelles le lait avait été ajouté après le thé. Selon help(fisher.test) dans R, la dame a correctement identifié trois des quatre tasses. Fisher a ensuite consigné les données suivantes : le nombre total de tasses (8), le nombre de tasses dans lesquelles du lait a été ajouté (4) et le nombre de tasses correctement identifiées (3). Cet ensemble de données peut être visualisé dans R en imprimant un tableau de contingence des données de comptage :

                Ordre réel
Choix de la dame Lait-thé Thé-lait
        Lait-thé        3        1
        Thé-lait        1        3

Dans ce cas, l’ensemble de données est suffisamment petit pour que l’on puisse répondre à la question de Fisher en examinant simplement le tableau de données lui-même. Si la dame avait identifié correctement les quatre tasses, la démonstration de ses capacités aurait été très convaincante. Cependant, elle n’a réussi que dans trois cas sur quatre, ce qui est moins concluant.

Le sujet principal de ce manuel est la visualisation des données, et elle n’est pas nécessaire pour des ensembles de données aussi petits. Concentrons-nous plutôt sur les ensembles de données trop volumineux pour être analysés par examen visuel direct du tableau de données.

1.2.3 Analyse des moyens ensembles de données avec des visualisations de données statiques

Pour les ensembles de données de taille moyenne, la simple inspection du tableau de données ne suffit plus pour répondre aux questions posées lors de l’analyse des données. Ces ensembles sont suffisamment volumineux pour nécessiter l’utilisation de la visualisation pour comprendre les données.

Prenons par exemple les données suivantes sur les concentrations de dioxyde de carbone (CO₂) dans l’atmosphère, enregistrées mensuellement de 1959 à 1997 :

     year.int month.int    month year.month.POSIXct    ppm
  1:     1959         1  January         1959-01-15 315.42
  2:     1959         2 February         1959-02-15 316.31
 ---                                                      
467:     1997        11 November         1997-11-15 362.49
468:     1997        12 December         1997-12-15 364.34

L’impression de ces données sur la ligne de commande R montre qu’il y a 468 lignes/observations au total. Ce nombre n’est pas énorme, mais il est déjà suffisamment important pour qu’une simple inspection du tableau ne permette pas de répondre aux questions posées. Nous allons donc créer une visualisation des données statique :

La visualisation des données statiques montre que les concentrations de CO₂ ont augmenté au cours de la seconde moitié du XXe siècle. Cette visualisation des données porte le nom de courbe de Keeling, du nom de Charles David Keeling, le premier scientifique à effectuer des relevés continus et systématiques des taux CO₂ atmosphérique. La tendance générale à l’augmentation peut être expliquée par le processus chimique de la combustion, qui transforme l’oxygène en CO₂. Keeling a noté que « le taux d’augmentation observé est proche de celui que l’on peut attendre de la combustion de combustibles fossiles » (keeling1960concentration?) .

La visualisation des données révèle également une intéressante tendance saisonnière qui, chaque année, atteint son maximum en mai et son minimum en octobre. Cette tendance saisonnière s’explique par l’activité des forêts de l’hémisphère Nord. Les feuilles des arbres réalisent la photosynthèse, un processus chimique qui convertit le CO₂ en oxygène. Or, dans l’hémisphère Nord, les arbres n’ont pas de feuilles en hiver et le CO₂ s’accumule dans l’atmosphère jusqu’à atteindre son maximum en mai. La photosynthèse reprend lorsque le feuillage réapparaît au printemps et se poursuit tout au long de l’été, faisant baisser la concentration de CO₂ dans l’atmosphère jusqu’à son minimum annuel en octobre.

Nous disons que cette visualisation des données est « statique » ou « non interactive » parce que le lecteur peut la visualiser, mais ne peut pas modifier ce qui est affiché. Ce genre de visualisation convient parfaitement aux ensembles de données de taille moyenne, dans lesquels nous pouvons voir tous les détails de l’ensemble de données. Cependant, comme nous le verrons dans la section suivante, la visualisation statique n’est pas suffisante pour montrer tous les détails des grands ensembles de données.

1.2.4 Analyse de données volumineuses avec visualisation des données interactive

Certains ensembles de données sont si volumineux qu’il n’est ni possible ni souhaitable de tracer toutes les données à la fois dans une visualisation statique. Pour de tels ensembles, les approches traditionnelles d’analyse consistent à résumer les données, puis à visualiser ce résumé. Cependant, le résumé graphique peut être trompeur, car il ne révèle pas tous les détails des données originales. Dans de telles situations, la « visualisation des données interactive » devient utile.

Examinons tout d’abord une forme légèrement plus élaborée de la courbe de Keeling :

Le graphique ci-dessus présente des points colorés pour chaque mois de l’année, plutôt qu’uniquement pour mai et octobre, les pics que nous voulions mettre en évidence. Ce graphique statique est moins instructif que le précédent, car il ne fait pas ressortir les extrêmes. Il s’agit d’un exemple où il n’est pas souhaitable de tracer toutes les données simultanément. Nous pouvons résoudre ce problème en utilisant le graphique interactif suivant.

Dans le graphique ci-dessus, les mois de mai et octobre sont mis en évidence par défaut, mais l’utilisateur peut cliquer sur la légende pour mettre à jour l’accentuation. Cet exemple simple illustre l’idée principale de la visualisation interactive des données à l’aide deanimint(). De nombreux choix doivent être effectués pour montrer les détails des ensembles de données volumineux. Par exemple, le choix des mois à mettre en valeur dans le graphique ci-dessus. Plutôt que de fixer de tels choix dans un graphique statique, l’objectif de la visualisation des données interactive est de permettre au lecteur de voir à quoi ressemble le graphique avec des choix différents. Dans l’exemple ci-dessus, nous avons utilisé une légende interactive qui permet à l’utilisateur de sélectionner différents mois et de voir les effets sur le graphique.

L’exemple ci-dessus illustre bien comment clickSelects et showSelected, les deux mots-clés introduits par animint2 permettent l’interaction. Sans entrer dans les détails, le graphique ci-dessus utilise clickSelects=mois pour la légende interactive, ce qui signifie qu’un clic sur la légende modifiera les mois sélectionnés. En outre, nous avons utilisé showSelected=mois pour les points, de sorte que seuls les points correspondant aux mois sélectionnés par l’utilisateur sont affichés. Dans les chapitres 3 et 4, nous expliquerons comment concevoir des visualisations de données en utilisant ces deux nouveaux mots-clés dans l’écriture du code R.

1.3 Résumé du chapitre et exercices

Ce chapitre a introduit quelques notions de base sur les données et a proposé des définitions des différentes tailles d’ensembles de données : petite, moyenne et grande.

  • Sur la base des définitions présentées dans ce chapitre, qu’est-ce qui distingue les petits ensembles des moyens?
  • Quelle est la différence entre les moyens des grands ensembles?

Au chapitre 2, nous vous expliquerons comment la grammaire graphique peut être utilisée pour créer des visualisations des données.