La reproductibilité avec R, ou pourquoi celle-est située sur un continuum
Bruno Rodrigues
Qui suis-je
Bruno Rodrigues, responsable de la production de statistiques et de la stratégie des données du Ministère de l’Enseignement supérieur et de la Recherche du Grand-Duché du Luxembourg
La reproductibilité
Capacité de retrouver exactement les mêmes résultats si je refais une analyse
Mais pourquoi?
Reproduction des résultats à la demande (audit, mise à jour…)
Reproduction des résultats d’une analyse passée
(Travailler sur un environnement immutable)
En supposant que j’ai le script original et les données: quel est le problème?
Le continuum
Voici ce qui peut influencer la reproductibilité d’une analyse:
Version de R utilisée
Versions des paquets utilisés
Système d’exploitation et sa version
Hardware
Le continuum
Source: Peng, Roger D. 2011. “Reproducible Research in Computational Science.” Science 334 (6060): 1226–27
Exemples de problèmes - Versions de R
R < 3.6 (set.seed(1234))
sample(seq(1, 10), 5)
[1] 2 6 5 8 9
R >= 3.6 (set.seed(1234))
sample(seq(1, 10), 5)
[1] 10 6 5 4 1
Impact réel sur des publications utilisant R < 3.6! (projet de recherche en cours)
Exemples de problèmes - système d’exploitation (1/3)
While preparing a manuscript, to our surprise, attempts by team members to replicate these results produced different calculated NMR chemical shifts despite using the same Gaussian files and the same procedure outlined by Willoughby et al. […] these conclusions were based on chemical shifts that appeared to depend on the computer system on which step 15 of that protocol was performed.
Exemples de problèmes - système d’exploitation (2/3)
Exemples de problèmes - système d’exploitation (3/3)
Le cœur de problème
Works on my machine!
Solutions: conditions nécessaires pour rendre une analyse reproductible
Code source (no-code exclu par défaut!) et données disponibles
Langage de programmation (à la version près!) utilisé disponible
Librairies (et autre dépendances, à la version près!) utilisées disponibles
OS utilisé disponible
Disponible: possible d’utiliser, de partager et de ré-utiliser sans restrictions