Pensée computationnelle avec R
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
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, 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. Cette approche nous semble utile surtout à deux types de destinataires dans le cadre des sciences sociales :
- 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, ...), mais qui ont rencontrés des limites dans leurs processus d'analyses et de reporting et qui veulent explorer des outils plus flexibles ;
- Des formateurs qui utilisent R pour des analyses spécifiques à leur champ d'intérêt, 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.
Une approche à R basée sur la pensée computationnelle 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 décourager les personnes, surtout à un stade initial ;
- Elle favorise des pratiques d'automatisation et organisation des processus de travail qui peuvent être exploitées dans une perspective Open Science.
Objectifs
Les ressources visent à montrer l'application concrète des concepts fondamentaux de la pensée computationnelle dans l'utilisation de R. Nous identifions en particulier quatre composantes de la pensée computationnelle auxquels nous ferons souvent référence dans les ressources :
- Décomposition
- Quelque soit la tâche à effectuer dans le cadre du data science, elle est très probablement assez complexe pour qu'elle puisse être divisée en des sous-tâches.
- Reconnaissance de pattern
- Plusieurs tâches se combinent et répètent souvent de manière similaire. Savoir reconnaître des éléments récurrents peut contribuer à optimiser le flux de travail.
- Abstraction
- La plupart des processus impliqués dans le data science peuvent être catégorisés à un niveau supérieur (e.g. importer les données, les explorer, les modéliser, etc.). Reconduire une opération à une utilité plus vaste permet de mieux cerner l'essentiel.
- Algorithmes
- La régularité et similarité de certaines opérations dans le data science fait ainsi que les processus peuvent être transformé en algorithmes : des séquences d'instructions automatisées qui permettent de passer de données d'entrée (input) à des résultats (output).
Organisation des ressources
Les ressources sont divisés en trois types :
- Un parcours guidé destiné surtout à des personnes qui n'ont pas une expérience préalable avec un langage de programmation ;
- Des tutoriels ponctuels qui illustrent des applications concrètes de R pour une finalité plutôt spécifique ;
- 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 :
- Mise en place d'un environnement de travail avec R
- 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.
- Introduction conceptuelle à R
- 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.
- Introduction à Tidyverse
- 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, ainsi que la visualisation des données, notamment à travers ggplot, un système de création de graphique basée sur une grammaire bien précise.
- 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.
- 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...
Ressources R
À faire...