Tutoriel #6 : Recherche reproductible

Intervenant

Arnaud Legrand (CNRS/Université de Grenoble/Inria). arnaud.legrand@imag.fr.

Slides

Les slides avec plein de références sont disponibles sur ma page.

Contexte

La reproductibilité des expériences et des analyses est l'un des fondements de la science moderne. Pourtant, la description des protocoles expérimentaux (en particulier dans les articles d'informatique) sont très souvent lacunaires et ne permettent que très rarement de reproduire une expérience. Ce genre d'imprécision n'était que peu gênant il y a 20 ans lorsque le
matériel et les systèmes d'exploitations étaient relativement simple. Mais les plates-formes de calcul actuelles résultent de l'agrégation d'un grand nombre de composants hétérogènes et d'une architecture logicielle (OS, compilateur, bibliothèques, machines virtuelles, …) qu'il est devenu impossible de maîtriser parfaitement. Les phénomènes observés par certains deviennent donc de plus en plus difficile à reproduire par des tiers et à expliquer en l'absence d'informations suffisantes. Si ces systèmes sont théoriquement déterministes, l'explosion de leur espace d'état et le manque de maîtrise de l'état impose de les considérer plutôt comme des systèmes stochastiques, ce à quoi les informaticiens sont peu habitués.

Cependant, les analyses de systèmes non déterministes sont plus complexes et les courbes fournies dans un article sont souvent insuffisantes pour conclure. Si elles illustrent le point de vue de l'auteur, elles ne comportent que rarement les informations sur la variabilité du système permettant d'évaluer quelle confiance avoir en la résultats présentés.

La recherche reproductible est l'idée selon laquelle le produit de la recherche académique n'est pas uniquement un article classique mais également l'ensemble des logiciels et des données ayant permit d'aboutir au résultat annoncé.

An article about computational science in a scientific publication is not the scholarship itself, it is merely advertising of the scholarship. The actual scholarship is the complete software development environment and the complete set of instructions which generated the figures.

– Jonathan Buckheit and David Donoho

Suite à l'apparition croissante de fraudes scientifiques et aux rétractations de plus en plus fréquentes d'articles erronnés, la communauté scientifique dans son ensemble commence à se doter d'outils et de pratiques permettant de limiter ces problèmes.

Programme

L'objectif de ce tutoriel est de sensibiliser au problème de la reproductibilité des expériences et des analyses en informatique. J'y présenterai des outils permettant d'apporter une réponse concrète au problème de l'analyse et je permettrai aux participants de faire leurs premiers pas en levant les difficultés techniques qui pourraient survenir.

All supporting material will be in English; the talk will be given in French if all participants are confortable with that language, and in English on need

Plus précisément, je présenterai les différents outils:

  • R et ggplot2 qui permettent un traitement standardisé, efficace et flexible des données et de la production de graphes. Si R est de prime abord un langage assez déroutant pour les informaticiens, il se révèle rapidement un atout en terme de productivité.
  • knitR qui permet d'intégrer du R à un document en LaTeX ou en Markdown. Cet outil permet donc d'automatiser complètement le post-traitement des données et la production des figures en les intégrant à un article. Au delà de la simplification en terme de mise en page ou de la garantie d'uniformité des traitements faits aux données, la mise à disposition des sources du document permet à quiconque de vérifier ce qui a été fait et potentiellement d'améliorer les graphes ou l'analyse.
  • J'illustrerai l'utilisation de ces outils à l'aide de Rstudio, un IDE pour R multi-plate-forme et facile à prendre en main. Par exemple, en utilisant R+Markdown (Rmd files) in Rstudio, il est alors très facile de les exporter vers Rpubs et ainsi de mettre à disposition à peu près n'importe quoi… :).

J'évoquerai également rapidement org-mode et babel et le notebook ipython qui permettent une démarche de recherche reproductible au jour le jour à mon avis un peu plus souple et que knitR.

Prérequis

Ce tutoriel ne suppose pas de prérequis particuliers en terme de connaissances mais afin de ne pas perdre de temps, il est indispensable que les participants aient au préalable installé R, Rstudio et ggplot2 sur leur machine.

Voici comment procéder sur une distribution debian

sudo apt-get install r-base r-cran-ggplot2 r-cran-reshape

Rstudio and knitr are unfortunately not packaged within debian so the easiest is to download the corresponding debian package on the Rstudio webpage and then to install it manually.

wget http://download1.rstudio.org/rstudio-0.98.490-amd64.deb
sudo dpkg -i rstudio-0.98.490-amd64.deb
sudo apt-get -f install # to fix possibly missing dependencies

You will also need to install knitr. To this end, you should simply run R (or Rstudio) and use the following command (you'll have to answer yes to the first question about installing in
your home and then you'll have to select a mirror).

install.packages("knitr")

If r-cran-ggplot2 or r-cran-reshape could not be installed for
some reason, you can also install them through R by doing:

install.packages("ggplot2")
install.packages("reshape")

Those of you who whould like to play with org-mode should install emacs, org-mode and ess:

sudo apt-get install emacs org-mode ess

Ressources