Pensée computationnelle avec R

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

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 de ce type présente les avantages suivants :

  • Elle permet de départager et mieux comprendre les différentes composantes de R (langage de programmation, environnement/interprète de codage, écosystème de ressources, ...) ;
  • Elle explique les raisons d'une certaine complexité intrinsèque et pratiques différentes dans l'utilisation de R qui peuvent être décourageantes, surtout à un stade initial ;
  • Elle favorise des pratiques d'automatisation et organisation des processus de travail qui peuvent être exploitées dans une perspective de Science Ouverte (ou Open Science en anglais).

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 :

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.

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 :

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.

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 :

  • Le stockage et la mise à disposition des données originales de l'étude
  • 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'approche et philosophie différentes (e.g. "fréquentiste" vs "bayésienne")
  • La justification de la taille de l'échantillon utilisé
  • 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.

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.
  • É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 est censé limiter des sources d'erreur.
  • 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.
  • É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.

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.

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é en modules :

  1. Les différentes possibilités qui sont offertes aux chercheurs pour utiliser R sont illustrées : (i) installation sur leur 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. 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.
  3. 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.
  4. 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.
  5. Introduction à la modélisation des données avec R
    L'objectif de cette partie du parcours est de montrer comment R, ainsi que la plupart des paquets qui s'occupent de la modélisation des données, conçoit les test statistiques d'un point de vue technique. En d'autres termes, il ne sera pas le cas de montrer quel test statistique il faut utiliser ou de proposer des notions théoriques sur l'analyse inférentielle. Au contraire, il sera illustré comment les résultats des tests peuvent être récupérés, maniés et réutilisé en tant qu'éléments symboliques.
  6. 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.
  7. 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é.

Tutoriels R

À faire et/ou réorganiser Tutoriels R

Ressources R

À faire...