Utiliser R dans la recherche

De EduTech Wiki
Aller à la navigation Aller à la recherche

Cet article est en construction: un auteur est en train de le modifier.

En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.



Introduction

Cet article vise promouvoir l'utilisation de R dans la recherche en tant qu'outil qui facilite l'adoption de bonnes pratiques pour une Science Ouverte. Nous illustrerons une série d'avantages liés à l'utilisation de R à la fois au niveau individuel et collectif. Nous fournirons également des ressources pour approfondir le sujet.

Un autre article disponible dans ce wiki aborde l'utilisation de R dans l'enseignement et la formation :

Les deux pages sont liés à Pensée computationnelle avec R, une collection de ressources pour apprendre R dans le contexte des sciences sociales (voir également Pensée computationnelle en sciences sociales).

Note sur la référence à R

Par souci de brévité, nous allons faire référence simplement à R dans l'article, mais en réalité nous nous référons à l'ensemble d'un environnement de travail typique qui inclut d'autres éléments, comme par exemple RStudio. Pour plus d'informations sur l'environnement typique, voir :

Survol de l'utilisation de R dans la recherche

Nous proposons d'abord un survol de l'utilisation de R dans la recherche, pour ensuite traiter de manière plus approfondie certains aspects dans le reste de l'article.

Il existe différents domaines dans lesquels R est utilisé dans la recherche. Ces domaines ne sont pas mutuellement exclusifs et, au contraire, s'influencent réciproquement :

  1. Environnement de travail impliqué dans différents phases de la recherche
    Plusieurs chercheurs utilisent R de manière quotidienne, que se soit pour recueillir, transformer, visualiser ou analyser des données, ou pour créer des reports scientifiques (articles, posts de blog, ...). Cette utilisation est particulièrement propice aux principes de Open Science relatifs à la réplicabilité computationnelle (également appelée souvent reproductibilité) des analyses statistiques effectuées dans les contributions scientifiques. Le fait que R soit gratuit, open-source et multi-plateforme le rend une sorte de lingua franca dans certaines disciplines académiques.
  2. Écosystème de partage de paquets communs ou spécifiques à des domaines de recherche
    La recherche dans différents domaines, y compris les sciences sociales, repose de plus en plus sur des principes et techniques computationnels. R représente à cet effet un environnement propice pour créer et partager des paquets à partager entre chercheurs. Ces paquets sont souvent l'objet d'articles dans des revues et comptent par conséquent comme des contributions scientifiques à part entière.
  3. Véhiculer des concepts ou des bonnes pratiques à travers des tutoriels
    L'une des conséquences du point précédent consiste dans la nécessité de compétences et savoir-faire computationnels croissants. À cet effet, R représente souvent un outil cognitif pour véhiculer des nouveaux concepts ou des bonnes pratiques en montrant l'application concrète de principes ou méthodologies de recherche.
  4. Simulations et applications interactives
    R étant à la base un langage de programmation à part entière, il permet de créer des simulations et applications interactives à utiliser pour des finalités de recherche. Par exemple, à travers la technologie Shiny, il est possible de créer et publier dans le web des applications interactives qui permettent de déterminer l'échantillon nécessaire pour des analyses statistiques, visualiser des jeux de données multidimensionnels, etc.
  5. Instrument de contrôle de qualité des contributions scientifiques et de démasquage de questionable research practices (pratiques de recherche douteuses)
    Il existe des paquets de R qui permettent d'identifier dans les articles scientifiques des erreurs dans le report de résultats statistiques ou de mettre en question des résultats too good to be true.

Environnement de travail day-to-day

Contrairement à des logiciels exclusivement dédiés aux analyses statistiques comme SPSS, c'est-à-dire impliqué seulement dans un processus spécifique de la recherche, R propose un plus large éventail d'utilisations quotidiennes à différents stades d'une recherche.

Récolte de données digitales

R est souvent utilisé pour la récolte de données digitales. Bien que R permet des importations classiques de données depuis un fichier rectangulaire (organisés en lignes et colonnes) depuis différents formats, l'utilisation de R devient plus intéressantes dans les cadres suivants :

  • Importation de larges datasets
  • Importer plusieurs fichiers en même temps
  • Récolte des empreintes digitales (e.g. web scraping)

Importation de larges datasets

Des datasets de large proportion sont de plus en plus utilisés dans les recherches en sciences sociales. Une vision globale de ces datasets est souvent inutile et risque de surcharger des interfaces graphiques de type spreadsheet qui ne sont pas conçues pour afficher des milliers de lignes ou centaines de colonnes. R permet d'importer rapidement et stocker en mémoire des larges datasets depuis différents formats libres ou propriétaires, sans nécessairement les affichés en entier et avec la possibilité de les interroger ponctuellement pour récupérer exclusivement les informations pertinentes.

Pour plus d'informations sur l'importation des données voir :

Importer plusieurs fichiers en même temps

Un autre avantage de R dans le day-to-day de la recherche consiste à pouvoir importer plusieurs fichiers en même temps sans avoir à les coller manuellement en amont. En tant que langage de programmation, en effet, R peut avoir accès à vos fichiers de manière systématique, ce qui lui permet notamment de lire le contenu d'un dossier. Il est par conséquent possible de lancer un script qui :

  1. Identifie le dossier spécifique dans lequel se trouvent les fichiers séparés
  2. Filtre les fichiers à importer, par exemple par rapport à une extension spécifique (e.g. .csv)
  3. Applique de manière itérative la procédure d'importation à chaque fichier singulièrement
  4. Combine toutes les informations dans un unique dataset

Encore une fois, R permet de faire cette opération de manière rapide et de pouvoir la répliquer sur demande à chaque exécution du code. De cette manière, même si entre temps certains des fichiers ont été ajoutés ou modifiés, le même script pourra prendre en compte les changements automatiquement.

Récolte des empreintes digitales

Les empreintes digitales, ou digital footprints en anglais, sont de plus en plus utilisées dans la recherche en sciences sociales. Ces données, représentées par des traces que les utilisateurs disséminent dans les différents environnements en ligne (sites, réseaux sociaux, forum, ...), peuvent atteindre des volumes qui nécessitent une extraction automatisée.

En tant que langage de programmation, R permet de planifier l'extraction de données depuis différentes sources. Une technique d'extraction appelé web scraping, en particulier, permet de récupérer directement des données depuis des sources web non structurées. Il existe des paquets pour effectuer du web scraping en général ou ciblés sur certaines sources spécifiques (e.g. Twitter, Wikipedia, ...). Pour plus d'informations voir :

Nettoyage et exploration des données

Le nettoyage de données, souvent appelé depuis l'anglais Data wrangling, consiste à transformer des données brutes dans des formats plus propices à des processus ultérieurs, comme par exemple la visualisation ou l'analyse des données. Ce processus est souvent accompagné par la nécessité d'explorer et mieux connaître le dataset, par exemple à la recherche d'éventuels erreurs de mesure ou transcription. R met à disposition des fonctionnalités out of the box ou des paquets qui permettent des opérations à plusieurs niveaux, comme par exemple :

  • Appliquer différents filtres pour exclure/inclure seulement une partie des données
  • Agréger les données dans des indices à travers des mécanismes de groupement
  • Utiliser les expressions régulières pour identifier des patterns dans les données et appliquer des modifications (e.g. extraire seulement les chiffres depuis une suite alphanumérique, etc.)
  • Passer d'un format large à un format long des données (e.g. plusieurs lignes pour le même participant)
  • etc.

Le grand avantage de R consiste à pouvoir formaliser ces opérations dans le code, ce qui est utile pour deux raisons :

  1. Le processus est automatisé, ce qui limite le risque d'erreurs dans un nettoyage à la main
  2. Le processus est transparent, donc il peut être répliqué à plusieurs reprises ou testé par d'autres personnes

Pour une philosophie et des outils pratiques dans le nettoyage des données, voir par exemple :

Visualisation des données

Avec la complexification des datasets (voir plus haut), la visualisation des données devient un instrument de plus en plus utile pour deux raisons :

  • Créer des visualisations exploratoires
    Ce type de visualisation permet aux chercheurs de mieux comprendre leurs propres données (ou les donnée d'autres chercheurs) à travers la reconnaissance de patterns dans des représentions graphiques complexes ;
  • Créer des visualisations communicationnelles
    Une fois que les chercheurs ont compris la valeur de leurs propres données (à travers des visualisations exploratoires ou des analyses statistiques), il est important de pouvoir transmettre ces informations aux autres chercheurs à travers des visualisations qui permettent de saisir le message véhiculé de la manière la plus immédiate possible. Parfois, pour obtenir ce résultat, les visualisations graphiques classiques (e.g. graphiques statiques en deux dimensions qu'on voit dans les articles papier) ne sont pas suffisantes et il faut utiliser des visualisations dynamiques.

R met à disposition des instruments très puissants que ce soit pour des représentations graphiques statiques ou dynamiques. Voir par exemple à ce sujet :

Analyses statistiques

Depuis quelques années, les sciences sociales traversent une période de questionnement sur la fiabilité des résultats obtenus à travers des analyses statistiques, un phénomène souvent identifié dans la 'crise de réplicabilité. En synthétisant au maximum, il y a deux aspects qui ressortent de ce questionnement :

  1. Mauvaise compréhension et usage des tests statistiques
    Souvent les tests statistiques sont exécutés de manière mécanique, en répliquant des opérations apprises ou copiées depuis des pratiques dominantes dans la discipline de référence.
  2. Intégration de principe computationnel holistiques
    On s'aperçoit que l'analyse statistique des données requiert des compétences généralisées dans les principes computationnels qui sous-tendent ces tests. En termes plus simples, il n'y a pas de relation exclusive entre la discipline académique et le type de test à mener (e.g. Analyse de la variance pour psychology, regression linéaire pour sociologie, etc.).

L'utilisation de R comme outil pour mener les analyses statistiques dans une recherche présente plusieurs avantages :

  • Les analyses sont transparentes et les résultats peuvent être contrôlés par d'autres chercheurs ou reviewers simplement en lisant le code des scripts ;
  • Les paquets qui permettent de mener des analyses statistiques (simples ou complexes) sont open-source et par conséquent la transparence s'applique également à un niveau supérieur : ces paquets eux-mêmes peuvent être contrôlés par plusieurs chercheurs ;
  • Les chercheurs peuvent créer en amont le script pour traiter les données (e.g. en utilisant des données simulées) et pré-enregistrer l'analyse. Ce processus augmente la fiabilité des résultats obtenus en écartant la possibilité que l'analyse soit manipulée en fonction des données à disposition (e.g. pour chercher d'atteindre un seuil de significativité) ;
  • Des nouvelles techniques d'analyse, souvent basées sur des modèles computationnels complexes, peuvent être mises à disposition de manière rapide, ce qui permet une adoption et amélioration de ces techniques plus rapide comparé à des logiciels propriétaires qui dépendent des mises à jour du concepteur.

Pour plus d'informations sur le sujet, voir par exemple :

Écriture de report scientifique

Exemple de templates d'articles scientifiques disponibles avec le paquet rticles

Les articles scientifiques empiriques ou basées sur des simulations ressemblent de plus en plus à des logiciels qui combine des parties computationnelles et des éléments textuels et graphiques. D'ailleurs, l'écriture d'un article scientifique suit souvent des processus itératifs communs à la programmation et au développement. Souvent, les chercheurs doivent intégrer plusieurs outils différents pour compléter le produit final : un logiciel pour recueillir et modifier les données ; un logiciel pour mener les analyses ; un logiciel pour créer ou adapter les représentations graphiques ; et un logiciel pour écrire le texte et agencer les résultats et représentations graphiques.

R permet d'effecteur tous ces aspects dans un flux de travail homogène, sans quitter l'interface de l'environnement de R. En exploitant le principe de la programmation littéraire qui consiste à mélanger éléments textuels et computationnels, R permet de produire plusieurs types de report scientifiques (articles, thèses, diaporama, ...) de manière automatisée et reproductibles par d'autres chercheurs.

Des paquets de R mettent directement à disposition directement des templates pour certains journaux ou publications scientifiques. Il est par exemple possible de choisir ces templates en RStudio (voir image à droite). Voir par exemple :

Pour plus d'informations à ce sujet, voir :

Communication parallèle (blog, sites web, ...)

De plus en plus de chercheurs utilisent des canaux de communication moins formels par rapport aux publications peer-reviewd, comme par exemple des blogs personnels ou des sites web de l'unité de recherche. Même sans la nécessité des aspects formels des publications scientifiques, il est souvent utile de pouvoir bénéficier également dans cette communication parallèle de certains éléments comme les citations, les graphiques, les résultats d'analyses, etc.

À ce propos, l'écosystème de R met à disposition des paquets qui permettent d'utiliser la même notation syntaxique que pour les articles scientifiques (voir point précédent et Introduction à Rmarkdown), mais pour créer des blogues ou sites web. Nous signalons à ce propos deux paquets souvent utilisés à cet effet :

Écosystème de partage

Un vaste écosystème de ressources s'est construit autour de R pendant les dernières années. Ces ressources sont représentées principalement par des paquets (voir Introduction conceptuelle à R). Ces paquets, néanmoins, ne se composent pas seulement de code informatique, mais incluent souvent aussi les éléments suivants :

  • De la documentation, y compris des exemples d'utilisation concrète
  • Des jeux de données à des finalités explicatives, de recherche, pour des simulations, etc.
  • Des templates pour favoriser la mise en page et la communication (voir section précédente)
  • Du support pour les personnes avec des difficultés ou qui veulent signaler des problèmes
  • De la collaboration, car souvent un paquet est maintenu par plusieurs personnes en même temps
  • Des synergies avec d'autres paquets ou même d'autres outils ou langages de programmation
  • Etc.

Dans cette section, nous proposons d'abord une liste non exhaustive des endroits dans lesquels vous pouvez trouver des paquets de R, ainsi que les raisons de cette modalité de publication. Deuxièmement, nous proposons une liste de sites qui regroupent des paquets selon des critères sémantiques. Ensuite, nous illustrons quelques paquets qui s’intègrent avec des plateformes de partage souvent utilisées dans la recherche. Enfin, nous attirons l'attention sur l'importance de citer les paquets utilisés, ainsi que des manières pour le faire, et sur les bénéfices de produire et partager ses propres paquets.

Dépôts de paquets

Il existe différents endroits qui permet de télécharger ou téléverser des paquets à partager. Chaque endroit n'a pas les mêmes finalités et les mêmes assurances sur la qualité et fiabilité (i.e. sécurité) du code.

CRAN

CRAN est l'acronyme de Comprehensive R Archive Network et représente le dépôt officiel des paquets R. Il est maintenu par des volontaires et par la R Foundation. La publication des paquets sur cet archive doit suivre des critères bien spécifiques, présenté dans une policy.

Les paquets partagés à travers CRAN sont considéré fiables et d'intérêt général pour la communauté de R au sens large.

MRAN

MRAN est l'acronyme de Microsoft R Application Network. Il s'agit d'un dépôt de paquets de R maintenu par Microsoft qui vise garantir la réplicabilité des analyses. Pour cette raison, MRAN maintient un vaste archive de snapshot, c'est-à-dire l'état d'un paquet à un moment précis de son histoire, afin que des éventuels changements dans le code des paquets ne modifient pas le résultat de code qui utilise ces paquets, mais qui a été écrit avant ces changements. Pour plus d'informations sur les différentes versions, voir :

GitHub

GitHub est une plateforme en ligne liée principalement à la programmation et le développement informatique, mais qui est de plus en plus utilisée également dans le milieu académique. Sur GitHub se trouvent de millions de projets qui varient entre des petits projets personnels à des collaborations entre géants du milieu technologique.

Certains paquets de R sont souvent disponibles à travers GitHub surtout dans ces cadres de figure :

  1. Le paquet est en développement et il n'a pas encore atteint la maturité nécessaire pour être publié sur CRAN ;
  2. Vous voulez télécharger la toute nouvelle version d'un paquet disponible sur CRAN, mais qui est encore a une version précédente pour des raisons de stabilité ;
  3. Le paquet a une finalité très spécifique qui n'est pas d'intérêt pour la communauté de R au sens large, et donc ne trouve pas sa place sur CRAN ;
  4. Le paquet appartient à une institution ou laboratoire qui le met à disposition publiquement, mais qui n'a pas l'intérêt (ou le temps) de le publier et maintenir sur CRAN ;
  5. Le paquet n'est pas disponible publiquement (il se trouve dans un dépôt privé de GitHub).
Il faut faire attention avec les paquets disponibles à travers GitHub parce que, contrairement à CRAN, il n'y a pas forcément un contrôle sur la qualité et la fiabilité du code.En d'autres termes, la fiabilité des paquets sur GitHub dépend de la fiabilité de la personne, du groupe ou de l'institution qui l'a créé et qui le maintient.

Pour plus d'informations sur la plateforme, voir :

Collections de paquets

En septembre 2020, CRAN proposait plus de 15'000 paquets de R, un chiffre qui a augmenté de manière exponentielle dans les dernières années et qui est très probablement destiné à augmenter encore. Une telle quantité de paquets, d'une part, témoigne de la richesse et activité de l'écosystème R ; mais de l'autre peut rendre le choix d'un paquet compliqué en raison de l'étendu de l'offre disponible. Dans cette section, nous proposons une liste non exhaustive de sites ou plateformes qui propose des sélections ou mécanismes de recherche de paquets, surtout liés aux pratiques de la recherche.

rOpenSci

rOpenSci est une initiative non-profit fondée en 2011 par Karthik Ram, Scott Chamberlain, et Carl Boettiger afin d'encourager "une culture qui valorise la recherche ouverte et reproductible en utilisant des données partagées et des logiciels réutilisables" (notre traduction depuis la page About du site).

Le site met à disposition une collection de paquets sélectionnés qui sont en lien avec le Open Science, mais également des tutoriels, des espaces de discussion, et un blog pour informer sur les nouvautés.

Tidyverse

Tidyverse est une collection de paquets qui partagent la même philosophie et un syntaxe similaire, visant l'implémentation de bonnes pratiques dans les différents processus impliqués en Data Science. Tidyverse inclut notamment le paquet ggplot2 qui est très utilisé pour la visualisation des données et qui possède un site avec plusieurs extensions du paquet de base. Pour plus d'informations voir :

Paquets intégrés avec plateforme ou logiciels

Étant R très utilisé dans le cadre de la recherche dans différents domaines et disciplines académiques, il existe plusieurs paquets en relation avec des plateformes en lignes ou des logiciels utilisés dans le même contexte.

À noter que ces paquets demandent parfois d'insérer des données d'accès (utilisateur, password, API key, etc.). Il est donc important de faire attention à ne pas partager ensuite les fichiers de script, par exemple sur des plateformes comme GitHub, sans avoir mis en place des mécanismes de masquage de ces informations.

Nous proposons ici une liste non exhaustive de quelques paquets liés à des plateformes en ligne utilisées dans la recherche :

  • citr
    Paquet qui facilite la citation de références, surtout depuis RStudio. Il est possible de le connecter avec le logiciel Zotero avec quelques passages supplémentaires indiqués dans la page du paquet.
  • osfr
    Paquet qui permet d'interagir avec la plateforme Open Science Framework (OSF). Le paquet permet de télécharger/téléverser des fichiers depuis différents dépôts des projets de recherche ouverts.
  • qualtRics
    Paquet en relation avec la plateforme Qualtrics qui permet de créer des questionnaires/expériences en ligne.
  • Google drive
    Paquet qui permet d'interagir avec les fichiers disponibles sur Google drive, par exemple pour automatiser l'importation de données.
  • jspsychr
    Paquet qui permet de créer du matériel expérimental (e.g. stimuli) pour la plateforme jsPsych.
  • aRxiv
    Paquet pour automatiser la recherche dans l'archive de preprints arXiv

Citation de R

Pour connaître comment citer correctement R dans une contribution scientifique, utiliser la fonction citation() sans argument. En septembre 2020, cette fonction donne le résultat suivant :

To cite R in publications use:

  R Core Team (2020). R: A language and environment for statistical
  computing. R Foundation for Statistical Computing, Vienna, Austria. URL
  https://www.R-project.org/.

A BibTeX entry for LaTeX users is

  @Manual{,
    title = {R: A Language and Environment for Statistical Computing},
    author = {{R Core Team}},
    organization = {R Foundation for Statistical Computing},
    address = {Vienna, Austria},
    year = {2020},
    url = {https://www.R-project.org/},
  }

We have invested a lot of time and effort in creating R, please cite it when
using it for data analysis. See also ‘citation("pkgname")’ for citing R
packages.

Le format BibTeX peut être utilisé pour sauvegarder la référence dans des logiciels de gestion de références académiques comme par exemple Zotero.

Citation des paquets

La citation des paquets R utilisé dans un projet de recherche est l'une de manière pour garantir à l'écosystème de partage de se maintenir et agrandir dans le temps. La fonction citation("nom du paquet") permet de savoir comment citer correctement un paquet, en utilisant le nom du paquet comme argument. Par exemple :

citation("dplyr")

Le résultat qui s'affiche à l'écran peut varier selon le paquet, mais en général vous obtenez un texte pour une citation et, souvent, également le format BibTeX. Par exemple, la citation du paquet dplyr du code précédent donne ce résultat :

To cite package ‘dplyr’ in publications use:

  Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2020).
  dplyr: A Grammar of Data Manipulation. R package version 1.0.2.
  https://CRAN.R-project.org/package=dplyr

A BibTeX entry for LaTeX users is

  @Manual{,
    title = {dplyr: A Grammar of Data Manipulation},
    author = {Hadley Wickham and Romain François and Lionel {
             Henry} and Kirill Müller},
    year = {2020},
    note = {R package version 1.0.2},
    url = {https://CRAN.R-project.org/package=dplyr},
  }

Apprendre et comprendre

Simulation et applications interactives

Contrôle de qualité et fiabilité

Conclusion

Ressources