Visualisation interactive de données dans R avec animint2

1 Contenu et motivation

Ce manuel explique comment concevoir et créer des visualisations de données interactives avec le package R animint2.

1.1 Contenu

Les chapitres de ce manuel sont organisés comme suit.

1.1.1 Les extensions animint2 à la grammaire des graphiques

On devrait lire les sept premiers chapitres de manière séquentielle, car ils fournissent les bases pour la visualisation interactive des données avec animint2.

A partir de la section Motivation ci-dessous, ce premier chapitre donne un aperçu de l’analyse et de la visualisation de données. Il fournit une motivation et une base théorique pour les autres chapitres, et devrait être particulièrement utile aux lecteurs qui sont complètement 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.

En commençant par le chapitre 2, nous montrerons comment les esquisses de graphiques peuvent être traduites en code R. Le chapitre 2 explique les bases de la visualisation de données à l’aide de ggplots et animint2, et devrait être plus utile aux lecteurs qui n’ont jamais utilisé ggplot2. Il explique comment les ggplots standards peuvent être générés sur des pages web en utilisant animint2.

Le chapitre 3 introduit showSelected, l’un des deux principaux mots-clés que animint2 introduit pour la conception de visualisation des données interactives. Le chapitre 3 commence par expliquer les 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. Le chapitre 3 explique également comment utiliser des transitions graduelles et des animations.

Le chapitre 4 introduit clickSelects, l’autre mot-clé principal que animint2 introduit 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 spécifier des hyperliens, des info-bulles et toutes les autres nouvelles fonctionnalités qui n’existe pas dans les graphiques statiques de ggplot2.

Le chapitre 7 couvre les limites de l’implémentation actuelle du package R animint2, et explique des solutions de contournement pour certains problèmes courants. Il contient également quelques idées d’amélioration, pour 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

Expressions utiles contient des explications détaillées sur plusieurs expressions idiomatiques du code R qui sont utilisées dans ce manuel.

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

1.2 Motivation

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 sont-elles analysées ?
  • 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 quand est-elle utile ?

Ce chapitre introductif suit le plan suivant :

  • Qu’est-ce qu’une donnée ?
  • Petites données – la visualisation des données n’est pas nécessaire.
  • Données moyennes – la visualisation statique des données est suffisante.
  • Grandes données - la visualisation interactive des données est utile.

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

{#data}

Les données sont des éléments d’information qui sont systématiquement enregistrés, soit sur papier, soit sur un ordinateur. Tout le monde peut créer des données, simplement en écrivant systématiquement des choses. En général, les données sont créées pour répondre à une question spécifique et sont organisées en tableaux avec des lignes pour les observations et des colonnes pour les variables ou différents types d’informations. D’après Larousse, « donnée » signifie « représentation conventionnelle d’une information en vue de son traitement informatique » (larousse_donnée?). https://www.larousse.fr/dictionnaires/francais/donnée La représentation conventionelle pour animint2 est un tableau, avec une ligne pour chaque observation, et une colonne pour chaque 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 le temps qu’il fait cette année se compare-t-il à celui des années précédentes ? Y a-t-il eu plus ou moins de pluie que d’habitude ? 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. Il devrait également y avoir des colonnes pour la date et l’heure de chaque observation, et une ligne pour chaque observation.
  • Quel est l’effet de ce nouveau régime sur moi ? Si vous essayez un nouveau régime, vous pouvez noter ce que vous mangez et comment vous vous sentez après chaque repas. Dans ce cas, vous pouvez créer un tableau de contingence avec une ligne pour chaque repas et quatre colonnes : la date, l’heure, ce que vous avez mangé et comment vous vous êtes senti après.
  • Ce nouveau traitement contre le cancer du poumon est-il plus efficace que l’ancien ? Le médecin qui mène l’essai clinique répartit au hasard les patients entre le nouveau et l’ancien traitement. 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 du patient, type de traitement (nouveau ou ancien), âge du patient au moment du traitement, âge du patient au moment du décès, mesure des marqueurs tumoraux, etc.

Nous définissons l’“analyse des données” comme le processus consistant à répondre à ces questions en convertissant le tableau de données brut en d’autres formes plus compréhensibles. Une catégorie très efficace de méthodes d’analyse des données est appelée “visualisation des données”, qui cherche à fournir des réponses aux questions en convertissant un ensemble de données en une image informative. Le terme “visualisation des données” fait référence à la fois à l’image elle-même (également connue sous le nom de graphique, figure, diagramme, graph, plot ou visualisation des données) et au processus de création de l’image.

Il existe de nombreuses façons différentes d’effectuer une analyse de données, et des ensembles de données de tailles différentes doivent être analysés à l’aide de techniques différentes. Il existe de nombreuses façons de caractériser la taille des ensembles de données, et chaque auteur utilise une définition légèrement différente. Dans ce manuel, nous utiliserons une classification des ensembles de données en trois tailles : petit, moyen et grand. Nous commençons par discuter des petits ensembles de données, pour lesquels la visualisation des données n’est pas nécessaire.

1.2.2 Analyse de petits ensembles de données sans visualisation

Dans cette section, nous aborderons les “petites données”, qui sont suffisamment petites pour que l’analyse des données puisse être effectuée en examinant simplement l’ensemble du tableau de données. Pour les petits ensembles de données, il n’est pas nécessaire d’utiliser la visualisation des données. Au lieu de cela, les données peuvent simplement être présentées pour une visualisation des données dans un tableau.

Prenons un exemple concret la célèbre expérience de dégustation de thé proposée par Ronald Fisher. Une dame a affirmé qu’elle pouvait sentir la différence lorsque du lait est ajouté dans la tasse de thé avant ou après le thé. Fisher pose la question suivante : la dame peut-elle vraiment sentir la différence entre les deux types de thé ?

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

      Truth
Guess  Lait Thé
  Lait    3   1
  Thé     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 pu identifier correctement les quatre coupes, elle aurait fait une démonstration très convaincante de ses capacités. Cependant, elle n’a apparemment pu identifier correctement que trois des quatre coupes, ce qui est moins convaincant.

Le sujet principal de ce manuel est la visualisation des données, ce qui n’est pas nécessaire pour des ensembles de données aussi petits. Nous nous concentrerons plutôt sur les ensembles de données trop volumineux pour être analysés par une visualisation manuelle du tableau de données.

1.2.3 Analyse de données moyennes 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. Les données de taille moyenne sont suffisamment volumineuses pour que nous ayons besoin d’utiliser la visualisation pour comprendre les données.

Prenons par exemple les données suivantes sur les concentrations de dioxyde de carbone (CO2) dans l’atmosphère, enregistrées mensuellement entre 1959 et 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 n’est pas un nombre énorme d’observations, mais il est déjà suffisamment important pour qu’il ne soit pas facile de répondre aux questions par une simple visualisation du tableau de données. Au lieu de cela, nous allons créer une visualisation des données statique :

La visualisation des données statiques montre que les concentrations de CO2 ont augmenté au cours de la seconde moitié du XXe siècle. Cette visualisation des données s’appelle une courbe de Keeling. Il porte le nom de Charles David Keeling, le scientifique pionnier qui a recueilli les premières données régulières et fréquentes sur le CO2 atmosphérique. La tendance générale à l’augmentation peut être expliquée par le processus chimique de la combustion, qui convertit l’oxygène en CO2. 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 l’intéressante tendance saisonnière qui atteint un maximum local chaque mois de mai et un minimum local chaque mois d’octobre. Cette tendance saisonnière peut être expliquée en considérant les forêts de l’hémisphère Nord. Les feuilles des arbres de ces forêts réalisent la photosynthèse, c’est-à-dire la transformation chimique du CO2 en oxygène. Pendant les mois d’hiver, les arbres n’ont pas de feuilles et le CO2 s’accumule dans l’atmosphère jusqu’à ce qu’il atteigne son maximum en mai de chaque année. Lorsque les feuilles reviennent chaque année, elles réalisent la photosynthèse tout au long du printemps et de l’été, ce qui fait baisser la concentration de CO2 dans l’atmosphère jusqu’à ce qu’elle atteigne 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é. Cela 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 des données 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 pas possible ou souhaitable de tracer toutes les données à la fois dans une visualisation statique des données. Pour de tels ensembles de “grandes données”, les approches traditionnelles d’analyse des données consistent à résumer les données, puis à visualiser ce résumé. Cependant, le résumé graphique peut être trompeur, car il ne montre 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 compliquée de la visualisation des données de la courbe de Keeling.

Le graphique ci-dessus présente des points colorés pour chaque mois de l’année, plutôt que pour les seuls mois de mai et septembre, les minima locaux annuels que nous voulions mettre en évidence. Ce graphique statique n’est pas aussi instructif que le précédent, car il ne met pas l’accent sur les minima locaux. Il s’agit d’un exemple où il n’est pas souhaitable de tracer toutes les données en même temps. Nous pouvons résoudre ce problème en utilisant le graphique interactif suivant.

Dans le graphique ci-dessus, l’accentuation par défaut est mai et octobre, 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 d’animint(). De nombreux choix doivent être faits pour montrer les détails des ensembles de données volumineuses. 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 lorsque des choix différents sont faits. 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 à quoi ressemble le graphique après avoir modifié la sélection.

L’exemple ci-dessus fournit également un bon exemple de clickSelects et showSelected, les deux mots-clés introduits par animint2 pour permettre 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 devrait modifier les mois sélectionnés. En outre, nous avons utilisé showSelected=mois pour les points, ce qui signifie que nous ne devons tracer que l’ensemble de points qui correspond aux mois actuellement sélectionnés. Dans les chapitres 3 et 4, nous expliquerons comment concevoir des visualisations de données en écrivant du code R à l’aide de ces deux nouveaux mots-clés.

1.3 Résumé du chapitre et exercices

Ce chapitre a expliqué quelques notions de base sur les données et a donné des définitions des différentes tailles de données : petites, moyennes et grandes.

  • Sur la base des définitions présentées dans ce chapitre, quelle est la différence entre les données petites et moyennes ?
  • Quelle est la différence entre les données moyennes et grandes ?

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