Pensée computationnelle avec R

De EduTech Wiki
Aller à : navigation, rechercher

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.



1 Introduction

Pensée computationnelle avec R

R est un langage de programmation, un logiciel et un environnement informatique open-source très utilisé dans le cadre du data science et autour duquel il existe un vaste écosystème de ressources qui ne se limitent pas seulement aux analyses statistiques traditionnelles. Parmi ces ressources on trouve notamment la visualization des données ; l'acquisition et nettoyage automatisés de données depuis différentes sources ; des workflow pour la création et la publication de report scientifiques (articles, sites web, documentation technique, etc.) ; ou encore des applications interactives. R est également de plus en plus utilisé dans l'enseignement et la formation, grâce surtout à sa licence open-source, et des nombreuses ressources, livres, manuels et tutoriels sont aujourd'hui disponibles, souvent en libre accès.

Nous proposons ici une collection de ressources dont l'objectif est d'insérer l'utilisation de R dans le contexte plus vaste de la pensée computationnelle que nous identifions comme un ensemble d'habiletés, compétences et procédures qui facilitent la résolution de problèmes en s'appuyant sur des principes tirés des sciences informatiques. Une approche computationnelle présente à notre avis plusieurs avantages techniques et conceptuels, comme par exemple :

  • Acquérir des compétences qui peuvent être mobilisées et adaptées en fonction de cas spécifiques, afin d'éviter l'application mécanique de la même routine ;
  • Favoriser des pratiques d'automatisation et organisation des processus de travail pour implémenter des principes relatifs à la Science Ouverte (ou Open Science en anglais) tels que la transparence, la reproductibilité et la réplicabilité ;
  • Départager les différentes composantes de R (langage de programmation, environnement/interprète de codage, écosystème de ressources, ...) pour pouvoir ensuite les mettre au service d'un large éventail de situations, y compris collaboratives ;
  • Expliquer les raisons d'une certaine complexité intrinsèque et de l'existence de pratiques différentes dans l'utilisation de R qui peuvent être décourageantes, surtout à un stade initial ;

1.1 Public cible

Les ressources sont conçues principalement pour deux types de destinataires dans le cadre des sciences sociales :

  1. Des (jeunes) chercheurs qui ont déjà une certaine expérience dans le data science, par exemple avec des logiciels traditionnels (e.g. SPSS, Statistica, Jamovi, ...), mais qui ont rencontrés des limites dans leurs processus d'analyses et de reporting et qui veulent explorer des outils plus flexibles, ainsi que des pratiques liés à la Science Ouverte. Pour plus de détails voir :
  2. Des formateurs qui utilisent R dans leurs cours/formations, mais qui n'ont pas le temps de créer et maintenir des ressources plus fondamentales sur les enjeux techniques (e.g., installation sur différents systèmes d'exploitation) et conceptuels (e.g. pensée symbolique, logique, input/output) dérivant de l'utilisation du codage au lieu du pointer-cliquer. Pour plus de détails voir :

1.2 Prérequis

En principe, aucun prérequis particulier n'est nécessaire. En cas contraire, les prérequis sont indiqués dans l'introduction des différentes pages.

1.3 Pensée computationnelle en sciences sociales

Pensée computationnelle avec R s'inscrit dans le contexte du projet Pensée computationnelle en sciences sociales qui propose d'autres ressources dont l'objectif est de tirer avantage de la pensée computationnelle dans les sciences sociales. Pour plus de détails voir :

2 Objectifs

Les objectifs de la pensée computationnelle avec R peuvent se diviser en deux catégories :
  1. L'objectif principal consiste à sensibiliser à l'importance d'adopter des processus de travail transparents, ouverts et faciles à répliquer par d'autres chercheurs, en fournissant des instruments qui peuvent soutenir ces processus ;
  2. Des sous-objectifs nécessaires ou corollaires à l'objectif principal qui peuvent être identifiés comme des soft skills.

2.1 Processus de travail transparents, ouverts et faciles à répliquer

Depuis quelques années, les sciences sociales traversent une crise de la reproductibilité qui remet en questions la fiabilité et, par extension, l'utilité des résultats obtenus dans les études et expériences qui utilisent des tests statistiques pour corroborer ou rejeter des hypothèses, à leur tour liées à des théories. Même s'il n'existe pas un accord unanime sur la gravité et l'étendu de cette crise - et encore moins sur les solutions à mettre en place pour pallier le problème - plusieurs pratiques (ou routines) sont progressivement remises en questions. Parmi ces pratiques figurent plusieurs éléments qui sont liés, directement ou indirectement, à la manière dont les chercheurs comprennent, utilisent et interprètent les différents processus de traitement de données impliqués dans une étude, comme par exemple :

  • La gestion des données de recherche, comme le stockage et la mise à disposition des données originales de l'étude, accompagnées par des métadonnées
  • Les manipulations effectuées pour nettoyer, trier, agréger, ... les données (e.g. exclusion de données extrêmes)
  • L'utilisation de tests statistiques issues d'approches et philosophies différentes (e.g. "fréquentiste" vs "bayésienne")
  • La justification de la taille de l'échantillon utilisée
  • Le report et l'interprétation d'indices statistiques nécessaires à évaluer la fiabilité et la magnitude des résultats obtenus (e.g. p-values, taille de l'effet, ...)

Tous ces éléments sont souvent regroupés sous le drapeau de la reproductibilité ou réplicabilité computationnelle des études et impliquent, implicitement ou explicitement, des compétences techniques qui ne sont souvent pas abordées dans les cursus universitaires. Les ressources qui composent la Pensée computationnelle avec R visent par conséquent à introduire ces concepts en s'appuyant sur un environnement de travail construit autour du langage de programmation R.

2.2 Soft-Skills

Pour atteindre l'objectif principal, l'acquisition des connaissances et compétences suivantes est nécessaire ou corollaire :

  • Installer, configurer et utiliser logiciels, environnements et plateformes numériques
    Un environnement moderne pour le Data Science est composé par plusieurs éléments qui s'intègrent à différents niveaux, notamment dans des contextes participatifs et collaboratifs. Adopter un environnement basé sur des outils que tout chercheur peut obtenir plutôt que des outils propriétaires, nécessitant de licenses souvent coûteuses, n'est pas seulement un choix technique. Au contraire, les conséquences concernent également la possibilité de scruter, répliquer, critiquer ou étendre les contributions scientifiques.
  • Écrire et lire du code
    Le code, même si difficile à apprendre, représente à présent la meilleure solution pour garder trace des différentes opérations effectuées et permet de les répliquer sans intervention humaine, ce qui réduit des sources d'erreur. De plus, il est plus flexible et réactif vis-à-vis de nouveautés ou changements dans les pratiques (e.g. nouveaux modèles statistiques, indices, etc.).
  • Organiser et structurer les fichiers
    Un projet de recherche se compose souvent de différents types de fichiers (données, graphiques, articles, ...). Grâce à l'automatisation des processus, ces composantes peuvent s'intégrer de manière plus simples à gérer et à partager. Cette démarche nécessitent cependant d'appliquer des bonnes pratiques, notamment au niveau du nommage des fichiers et du choix de formats facilement transposables (e.g. fichiers textuels plutôt que formats propriétaires comme SPSS ou Excel).
  • Écrire et lire de la documentation technique
    L'utilisation de R comporte la nécessité de lire de la documentation technique, par exemple pour comprendre le fonctionnement du langage ou de paquets externes qui permettent de mener une opération particulière. De plus, pour rendre un projet de recherche transparent et facile à répliquer, il faut documenter son propre code, fournir des informations d'accompagnements aux données (e.g. méta-données), ou encore indiquer précisément les versions des outils utilisés.

3 Organisation des ressources

Les ressources sont divisés en trois types :

  1. Un parcours guidé destiné surtout à des personnes qui n'ont pas une expérience préalable avec un langage de programmation ;
  2. Des tutoriels ponctuels qui illustrent des applications concrètes de R pour une finalité plutôt spécifique ;
  3. Une collection de références externes qui peuvent être utiles pour approfondir certaines thématiques.

3.1 Parcours guidé

Le parcours guidé vise à illustrer l'utilisation de différentes éléments de l'écosystème de R pour les étapes communes à l'activité du data science :

  • Importation, manipulation et nettoyage des données
  • Visualization des données et analyses exploratoires
  • Modélisation des données (e.g. analyses inférentielles)
  • Publication et partage des résultats

Le parcours est organisé dans les ressources suivantes que nous conseillons de suivre dans l'ordre, même si elles peuvent être consultées de manière indépendante :

  1. Les différentes possibilités qui sont offertes aux chercheurs pour utiliser R sont illustrées : (i) installation sur son propre ordinateur, (ii) mise en place d'un serveur pour une équipe/labo, ou (iii) utilisation des services cloud. Nous proposons également des ressource sur RStudio, un logiciel qui permet d'intégrer plusieurs aspects de l'écosystème de R, et Git, un système de gestion des versions, utilisé surtout dans le développement, mais qui est de plus en plus utilisé également dans la recherche.
  2. Premier projet avec RStudio
    Tutoriel pratique qui illustre les différentes étapes (de la création au partage du report) d'un projet avec le logiciel RStudio. Cette introduction pratique fournit également un aperçu concret des différentes éléments théoriques et techniques illustrés dans les ressources suivantes.
  3. L'articulation entre langage de programmation, environnement et écosystème sera expliquée de manière détaillée. Pour ce faire, des concepts fondamentaux comme variables, fonctions, structures de contrôle, etc. seront abordées. La notion de paquet sera également introduit en tant que composante essentielle de l'ecosystème de R.
  4. Tidyverse est une collection de paquets qui partagent la même philosophie et une syntaxe similaire. Tidyverse permettra d'aborder l'importation, la manipulation et le nettoyage des données.
  5. En continuité avec l'ecosystème de Tidyverse, nous proposons une section dédiée à la visualisation des données, notamment à travers ggplot, un système de création de graphique basée sur une grammaire bien précise.
  6. La modélisation des données vise à séparer le signal du bruit dans l'analyse de données pour des finalités différentes : rejet ou corroboration d'une hypothèse, quantifier l'incertitude, création de modèles prédictifs, etc. Cet article propose un survol technique de la modélisation des données en R, avec des références aux statistiques fréquentistes, Bayésiennes, et machine learning.
  7. Introduction à l'analyse de texte avec R
    Cette partie montrera que R ne se limite pas à des analyses quantitatives, mais peut être également adopté pour des analyses qualitatives.
  8. Introduction à Rmarkdown
    Rmarkdown regroupe des éléments syntaxiques et procéduraux pour la création automatisée de reports scientifiques (articles, présentations, pages web, ...) dans une perspective de réplicabilité.

3.2 Tutoriels R

À faire et/ou réorganiser Tutoriels R

3.3 Ressources R

À faire...