Le 27 et 28 juin 2013, se déroulaient les 2e Rencontres R, à Lyon. J’aimerais faire un petit bilan de ce que j’ai pu voir pendant ces deux journées.

En premier lieu, j’aimerais souligner la qualité de l’organisation. Tout était millimétré, l’accueil était très agréable et les membres de l’équipe organisatrice étaient très sympathiques. Dès l’arrivée, une malette (biodégradable) est remise à chaque participant, contenant un programme relié et en couleur, ainsi que quelques goodies provenant de Revolution Analytics.

Les lignes qui suivent sont plutôt un pense-bête personnel, mais je vais tenter de les rendre compréhensibles. Je vais me limiter ici à quelques présentations, surtout à celles qui me parlent le plus.

Session de tutoriels (26 juin 2013)

Avant les rencontres, j’ai assisté à deux tutoriels. Le premier était donné conjointement par Anne-Béatrice Dufour et Sylvain Mousset. Il était question de présenter l’intégration de code R dans des documents LaTeX, avec Sweave. Certains enseignants de l’Université Claude Bernard Lyon 1 ont réalisé un projet plutôt génial avec R+LaTeX, mais on reviendra sur ce point un peu plus tard.

Le second tutoriel était animé par Christophe Genolini, et avait pour but de familiariser les participants à la création de package avec R. Parmi les nombreuses ressources du site de Christophe, on retoure un document PDF pour créer ces fameux packages. S’il faut retenir une seule chose de cette session, il s’agit de l’accent qui a été mis sur la nécessité de créer des documentations complètes, qui favoriseront l’adoption des packages par les utilisateurs. Cette idée a été répétée à de nombreuses reprises durant les rencontres.

Première journée (27 juin 2013)

Après un petit mot d’ouverture par Stéphane Dray, dans une ambiance détendue, le premier orateur monte sur la scène. Il s’agit tout simplement de Hadley Wickham. Oui, à Lyon, ils ne font pas les choses à moitié !

Visualising big data in R

L’auteur du package ggplot2 (« djidjiplot tou » pour les intimes (@phnk)) vient présenter un nouveau package : bigvis. Ce dernier permet de travailler avec des jeux de données conséquents. Pour illustrer la présentation, Hadley s’appuie sur plus de 60 millions d’observations sur les distances et les durées de vols d’avions aux États-Unis. Les données sont stockées dans un fichier RDS. Pour les importer, il suffit de s’appuyer sur la fonction readRDS. L’idée, pour produire un graphique de la distance en fonction de la vitesse, est de procéder en trois étapes :

  1. condenser les données ;
  2. effectuer un lissage ;
  3. afficher les résultats sur un graphique.

Pour rendre la présentation un peu plus impressionnante, Hadley Wickham fait appel au package Shiny. Je suis scotché ! En un rien de temps (moins de 3 secondes), suite à un choix de fenêtre effectué en faisant glisser un curseur, la version condensée (fraîchement recalculée) des +60 millions de points est graphée sur la page.

Par la suite, Hadley nous touches deux mots sur Rcpp, qui permet d’écrire du code en C++ directement dans R. Plutôt génial (voir plus bas pour la présentation de Romain François).

L’analyse de données avec FactoMineR : les nouveautés

François Husson vient présenter les améliorations apportées au package FactoMineR. Premièrement, une gestion des données manquantes, à l’aide du package missMDA est proposée. D’un point de vue graphique, un argument fait son apparition, et il est plutôt sympathique : autolab. Finis les graphiques de projection illisibles, les légendes sont placées de manière à ce que leur recouvrement soit le moins grand possible.

rCarto, un package de cartographie statistique

Timothée Giraud nous montre le travail qu’il a réalisé pour produire de bien jolies cartes géographiques avec R, en travaillant notamment sur les légendes, ou de manière plus générale, sur leur habillage. Son package se nomme rCarto, et est disponible sur le CRAN.

What a statistician might want to know about human color vision, but was afraid to ask!

Le thème proposé par Kenneth Knoblauch laisse songeur. Il est question des couleurs utilisées pour produire des illustrations. Lorsque je produis un graphique, je ne pense jamais à ceux qui ont des troubles dans la vision des couleurs… Or, ils sont nombreux (8% selon Kenneth). Le package dichromat permet d’afficher les couleurs telles qu’elles sont perçues par les daltoniens. À méditer pour les prochaines sorties !

Kml3D: K-means pour données longitudinales jointes

Christophe Genolini vient nous parler des données longitudinales, et du package Kml3D. Il est vrai que c’est encore quelque chose que je ne connais quasiment pas. Je ne vais donc pas m’étendre sur le sujet. J’aimerais juste conserver une trace de ce que nous a proposé Christophe, qui bien qu’anecdotique, pourrait quand même s’avérer être amusant : la possibilité d’inclure un graphique 3D dans un document PDF, avec la fonction plot3dPdf.

R and the Cloud

Le deuxième conférencier invité, Karim Chine a fait un speech qui m’a particulièrement impressionné, mais qui me laisse perplexe dans le même temps. Il s’agit de présenter la relation possible entre R et des machines sur le cloud, notamment sur Amazon. En quelques secondes, Karim commande une machine sur le cloud, pour quelques centimes de dollars. C’est impressionnant, mais il n’y a rien d’extraordinaire (enfin… je pense que pour mes grand-parents, c’est une toute autre histoire !). Les serveurs d’Amazon sont apparemment aux États-Unis, la question de consommation d’énergie est occultée ici.

Là où j’ai été bluffé, c’est quand Karim nous a introduit sa plateforme Elastic-R, qui permet non seulement de commander des machines sur le cloud rapidement, mais surtout de faire de l’édition en direct, à plusieurs, de codes R. Un utilisateur (Romain, dont le nom m’a échappé) de l’amphi est invité à rejoindre la session créée par Karim, et à effectuer quelques modifications dans la console R. Mieux encore, Romain est invité à changer des valeurs dans une feuille de calcul Excel, qui interagit avec R ! Les modifications sont répercutées quasi instantanément sur les données, dans R ! Mais ça ne s’arrête pas là ! Karim reprend complètement la main, et ouvre un document Word, dans lequel il inscrit quelques lignes de code R, se terminant par un appel à la fonction plot. Comme par enchantement, le graphique correspondant s’affiche dans le document Word ! Cette librairie est prometteuse.

R2GUESS: a GPU-based R package for sparse Bayesian variable selection

Habib Saadi nous a présenté le package R R2GUESS qui ne devrait pas tarder à arriver sur le CRAN. Il permet de faire de la sélection de variables, en utilisant la puissance de calcul du GPU.

Intégration R et C++ avec Rcpp

Encore une partie de la conférence qui m’a pas mal plu. Romain François nous a présenté le package Rcpp, qui comme son nom le laisse deviner, permet d’écrire du code C++ directement dans R. L’objectif affiché ? Améliorer la rapidité des calculs. Les projets de Romain ont l’air tous mieux les uns que les autres…

R as a sound system

Pour finir la journée en beauté, avec une touche de poésie, nous avons eu le plaisir d’écouter Jérôme Sueur (conférencier invité), au sujet de la gestion des sons avec R, et plus particulièrement à l’aide des packages tuneR (ou audio) et seewave. Jérôme utilise R pour faire, entre autre, de la bioacoustique. R est utilisé pour analyser des sons. Une utilisation intéressante proposée par Jérôme est d’écouter des données. Oui, oui ! Écouter des données ! Dans un premier temps, une petite citation d’un homonyme de l’orateur, Jérôme Bonaldi s’affiche sur une slide :  C’est totalement inutile et donc rigoureusement indispensable ! (c’est plutôt bien choisi, pour une conférence à Lyon). Mais en réalité, écouter les données n’est pas aussi inutile que ce que l’on pourrait croire. Dès que je retrouve une connexion internet plus puissante, j’ajouterai un exemple ici. Grosso modo, l’écoute des données peut permettre d’identifier des points aberrants. Comme le fait remarquer Joel Gombin, La datasonification permet aux non voyants de « visualiser » des données.

Seconde journée (28 juin 2013)

Après une soirée autour d’un buffet dinatoire et accompagné de gens fort sympathiques, puis une bonne nuit de sommeil dans la résidence de l’INSA, il est temps d’attaquer la seconde journée des 2e rencontres R.

L’approche par comparaison de modèles avec R2STATS dans l’enseignement des statistiques en sciences humaines

Le premier conférencier invité de la journée est Yvonnick Noël. Il nous parle de l’interface R2STATS, qu’il a développé pour permettre à ses étudiants en psychologie de comparer des modèles statistiques sans passer par la rédaction de codes R. R2STATS permet d’estimer des GLM ou des GLMM, avec choix de distribution. La fenêtre de l’interface est organisée en six onglets : « fichiers », « données », « résultats », « graphiques » et « comparaisons ». C’est assez intuitif, mais je trouve qu’on perd trop de liberté. Il est dommage de ne pas pouvoir récupérer le code R qui a servi à produire les sorties, pour le modifier (un peu à la manière de SAS qui permet de rappeler le code produit lors d’une procédure réalisée à l’aide du Wizzard).

Un site web d’enseignement R automatisé et à gestion partagée

Trois enseignants chercheurs (Anne-Béatrice Dufour, Daniel Chessel et Jean R. Lobry) ont mis en place un site web génial d’enseignements de statistique en biologie. Sur ce site, les enseignants peuvent déposer des cours, des fiches de TD, des sujets d’examens, etc. Simon Penel nous explique le fonctionnement de ce site.

Ce que je trouve génial dans ce qu’ils ont réalisé, c’est que les TD et les examens sont produits avec LaTeX et R via Sweave. Les sujets créés peut être différents chaque année, via la possibilité d’introduire des valeurs aléatoires grâce à R. L’enseignant réalise son sujet avec Sweave, et peut ainsi produire de manière automatique une feuille de composition ainsi qu’une de correction. Les années suivantes, la méthode des exercices ne change pas, mais les résultats si. Cela permet par exemple aux redoublants de ne pas avoir exactement le même sujet !

Génération automatique de documents pédagogiques avec R pour l’enseignement et l’évaluation des étudiants

Autant vous prévenir tout de suite, les vingt minutes de Sylvain Mousset m’ont fait rêver. Il est question de génération automatique de documents avec R. On reste donc dans le même esprit que la présentation précédente. Sylvain fait rêver une bonne partie de la salle (je pense) en nous montrant comment il réalise certaines évaluations, à l’aide de QCM. Pour ce faire, il utilise un logiciel appelé AMC (Auto Multiple Choice), développé par Alexis Bienvenüe. Le logiciel se charge de créer un questionnaire au format LaTeX, avec ordre des questions variables pour chaque étudiant, et ordre des propositions de réponses défini aléatoirement. Fini la triche lors des QCM ? François Briatte se pose des questions intéressantes (j’aimerais bien connaître les réponses) : est-ce que la mise en place de ce type de QCM a eu un impact sur les notes ? Sur la triche ? Quoi qu’il en soit, ce type de questionnaires est alléchant, d’autant plus qu’AMC ne s’arrête pas là, et propose de corriger les copies ! Formidable, non ? Plusieurs centaines de copies corrigées en trois heures…

Pistes de réflexion pour la mise en oeuvre d’un enseignement à distance sur le test du khi carré d’indépendance pour des étudiants en master de sciences de l’éducation

Mehdi Khaneboubi introduit les difficultés rencontrées pour l’enseignement de l’analyse de données avec R, à distance (avec des étudiants résidant dans plusieurs pays différents). L’avantage que propose R face à d’autres logiciels de statistique est sa présence sur de nombreuses plateformes, et même en ligne dans le cas où les étudiants se trouvent dans un cyber-café.

De la biologie à l’algèbre linéaire… en passant par R : expérimenter la notion de projection

Anne-Béatrice Dufour présente une manière d’introduire le sujet de la projection (dans le cadre de la régression linéaire) aux étudiants. J’ai trouvé son approche très intelligente, et assez intuitive. Le sujet d’étude doit interpeler les biologistes : étudier la relation entre la taille et l’empan (distance entre le bout du pouce et l’extrémité de l’auriculaire) de chaque main (data(survey) du package MASS). L’étudiant est amené à représenter graphiquement les mesures, pour à chercher de manière heuristique une droite qui permet de s’ajuster au mieux aux données, de manière à minimiser les écarts entre la droite et les observations.

Lightning talks 1

L’exercice est difficile pour les personnes devant présenter leur travail en 6 minutes. Toutes les 24 secondes, une diapositive défile automatiquement. Je me limite à deux intervenants ici.

Aspects de la cartographie thématique pour les sciences sociales avec R

Joël Gombin ouvre le bal avec la présentation de son package pour visualiser des données géographiques. L’idée de Joël est de proposer un aperçu des méthodes pour construire des cartes avec R, dans un domaine relatif aux sciences sociales. Les fonctions sont écrites en POO et disponibles sur son espace GitHub.

Prévision de consommation électrique avec R

Raphaël Nedellec expose des méthodes utilisées au sein du service R&D d’EDF pour faire des prévisions de consommation électrique. J’étais content de voir qu’un grand groupe comme EDF s’ouvre sur le logiciel R.

TraMineR : Une boîte à outils pour l’exportation et la visualisation de séquences

Gilbert Ritschard, dernier conférencier invité, nous montre le travail colossal qui a été réalisé autour de l’analyse de séquences. Après les prestations éclair lors des lightning talks, le contraste est très fort, puisque Gilbert est extrêmement posé, prend le temps d’expliquer chaque notion, et s’explique très clairement (je ne sous-entend aucunement que les intervenants des lightning talks ne s’exprimaient pas clairement, mais la rapidité avec laquelle s’enchaînent les diapositives entraîne un rythme effréné, d’où la présence du contraste). Le package TraMineR permet des représentations graphiques de séquences chronologiques. La conférence est illustrée avec des données de séquences de vies (études, chômage, emploi, etc.).

multcmm : fonction d’estimation de modèles mixtes à processus latent pour données longitudinales multivariées

Viviane Philipps présente la fonction multlcmm du package lcmm, qui permet d’estimer des modèles mixtes à processus latent, dans le cas où les données sont longitudinales multivariées. Je ne suis pas du tout familier avec ce genre de modèles, j’avoue ne pas avoir très bien suivi cette présentation.

Données tronquées sous R dans les modèles linéaires simples et à effets mixtes

Djeneba Thiam propose de se pencher sur des données censurées, avec effets aléatoires.

Prédiction d’un événement binaire à partir de données fonctionnelles : application aux bovins laitiers

Dans cette présentation, Cécile Sauder nous parle de ses travaux relatifs à la gestation des vaches. Il s’agit de prévoir l’état d’une vache (gestante ou non), 42 jours après son insémination, en fonction de ses courbes de lactation.

Génération de documents Word à partir de R : utilisation du package R2DOCS dans uneplateforme statistique en milieu industriel

David Gohel commence par fixer les bases : il veut lier R et Word, en réponse aux attentes de ses clients, qui  souhaitent travailler avec Word uniquement (entendre ici : pas avec Libre Office). Son package s’appelle R2DOCX, et est disponible sur GitHub. L’idée est de pouvoir faire du reporting avec R et Word, en permettant un respect de la charte graphique des clients. À l’avenir, David souhaite étendre son travail à la passerelle entre R et PowerPoint.

R-dyndoc une alternative à Sweave

Rémy Drouilhet procède à l’ultime présentation de ces 2e rencontres R. Il nous montre son projet, R-dyndoc, qui se veut être une alternative à Sweave. Rémy s’appuie sur le langage de programmation Ruby pour développer son outil. L’avantage de Dyndoc, serait la possibilité d’utiliser plus de librairies que Sweave. Pour un utilisateur lambda comme moi, je trouve que Sweave est plus abordable, dans la mesure où une fois qu’on sait se débrouiller un minimum avec LaTeX et R, il est facile de créer des documents avec Sweave. En revanche, avec Dyndoc, il faut encore changer dans la manière de raisonner pour construire les documents, et je ne suis pas prêt à investir du temps dans l’apprentissage de ce code.

Une autre alternative à Sweave, qui a été à plusieurs reprises mentionnée lors des rencontres, serait knitr, plus récent que Sweave. À creuser !

Voilà, le petit aperçu des 2e rencontres R s’arrête ici. Comme il y avait deux sessions en parallèle, il manque un bon nombre de présentations dans ce billet.

Laisser un commentaire

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

Time limit is exhausted. Please reload CAPTCHA.