Utiliser R dans 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 :
- Environnement de travail impliqué dans différents phases de la recherche, du traitement des données à la publication d'articles ou report scientifiques
- 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.
- Écosystème de partage de paquets pour mener à bien des analyses ou opérations communes 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.
- Outil cognitif pour véhiculer 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 choix populaire pour véhiculer des bonnes pratiques ou montrer l'application concrète de principes ou méthodologies de recherche.
- 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.
- 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 :
- Identifie le dossier spécifique dans lequel se trouvent les fichiers séparés
- Filtre les fichiers à importer, par exemple par rapport à une extension spécifique (e.g. .csv)
- Applique de manière itérative la procédure d'importation à chaque fichier singulièrement
- 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 :
- Le processus est automatisé, ce qui limite le risque d'erreurs dans un nettoyage à la main
- 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 :
- 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.
- 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
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.
Pour plus d'informations à ce sujet, voir par exemple :
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.