« Pensée computationnelle avec R » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
mAucun résumé des modifications
 
(35 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
{{ En construction }}
{{tutoriel
|fait_partie_du_cours=Pensée computationnelle avec R
|module_suivant=Introduction générale à R
|pas_afficher_sous-page=Non
|page_suivante=Introduction générale à R
|statut=à finaliser
|difficulté=débutant
|cat tutoriels=R
}}


== Introduction ==
== Introduction ==
Ligne 5 : Ligne 13 :
[[R]] est un langage de programmation, un logiciel et un environnement informatique open-source très utilisé [[utiliser R dans la recherche|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. [[utiliser R dans l'enseignement et la formation|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.
[[R]] est un langage de programmation, un logiciel et un environnement informatique open-source très utilisé [[utiliser R dans la recherche|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. [[utiliser R dans l'enseignement et la formation|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 :
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 :


* 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, ...) ;
* 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 ;
* 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 ;
* 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é ;
* 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).
* 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 ;


=== Public cible ===
=== Public cible ===
Ligne 33 : Ligne 42 :
== Objectifs ==
== Objectifs ==


Les objectifs de la pensée computationnelle avec R peuvent se diviser en deux catégories :
{{ bloc important | Les objectifs de la pensée computationnelle avec R peuvent se diviser en deux catégories :


# Un objectif principal qui consiste à sensibiliser à l'importance, et donner les instruments nécessaire à adopter des processus de travail transparents, ouverts et faciles à répliquer par d'autres chercheurs.
# 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 ;
# Des sous-objectifs nécessaires ou corollaires à l'objectif principal qui peuvent être identifiés comme des '''''soft skills'''''
# Des sous-objectifs nécessaires ou corollaires à l'objectif principal qui peuvent être identifiés comme des '''''soft skills'''''. }}


=== Objectif principal ===
=== Processus de travail transparents, ouverts et faciles à répliquer ===


Depuis quelques années, les sciences sociales traversent une ''crise'' relative à la fiabilité 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 :
Depuis quelques années, les sciences sociales traversent une [https://fr.wikipedia.org/wiki/Crise_de_la_reproductibilit%C3%A9 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
* 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ée|métadonnées]]
* Les manipulations effectuées pour nettoyer, trier, agréger, ... les données (e.g. exclusion de données extrêmes)
* 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")
* 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é
* 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, ...)
* 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és 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]].
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]].


=== Sous-objectifs ===
=== ''Soft-Skills'' ===


Pour atteindre l'objectif principal, l'acquisition des connaissances et compétences suivantes est nécessaire ou corollaire :
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'''
* '''É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.
*: 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'''
* '''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.
*: 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'''
* '''É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.
*: 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.


== Organisation des ressources ==
== Organisation des ressources ==
Ligne 74 : Ligne 85 :


* '''Importation, manipulation et nettoyage des données'''
* '''Importation, manipulation et nettoyage des données'''
* '''Visualization des données et analyses exploratoires'''
* '''Visualisation des données et analyses exploratoires'''
* '''Modélisation des données (e.g. analyses inférentielles)'''
* '''Analyse et modélisation des données'''
* '''Publication et partage des résultats'''
* '''Communication, publication et partage'''


Le parcours est organisé en modules :
Le parcours est organisé selon ces quatre étapes, plus une introduction générale à R, avec un exemple concret de projet.


# {{ Goblock | [[Mise en place d'un environnement de travail avec R]] }}
==== Introduction générale ====
#: 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.  
 
# {{ Goblock | [[Introduction conceptuelle à R]] }}
* {{ Goblock | [[Mise en place d'un environnement de travail avec 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]].
*: 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.  
# {{ Goblock | [[Introduction à Tidyverse]] }}
* [[Premier projet avec RStudio]]
#: [https://www.tidyverse.org/ 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.
*: 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.
# {{ Goblock | [[Introduction à la visualization des données avec R]] }}
* {{ Goblock | [[Introduction conceptuelle à R]] }}
#: En continuité avec l'ecosystème de Tidyverse, nous proposons une section dédiée à la visualisation des données, notamment à travers [https://ggplot2.tidyverse.org/ ggplot], un système de création de graphique basée sur une grammaire bien précise.
*: 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 à 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.
==== Importation, manipulation et nettoyage des données ====
# [[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.   
* {{ Goblock | [[Introduction à Tidyverse]] }}
# [[Introduction à Rmarkdown]]
*: [https://www.tidyverse.org/ 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.
#: [https://rmarkdown.rstudio.com/ 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é.
* {{ Goblock | [[Importer et exporter des données avec Tidyverse]] }}
*: Exploiter l'ecosystème Tidyverse pour importer et exporter des données depuis différentes formats et source. Il s'agit d'une alternative à l'[[Importer des données dans R|importation des données avec R de base]].
* {{ Goblock | [[Organiser des données avec tidyr]] }}
*: Préparer des données pour faciliter ensuite la manipulation, visualisation, l'analyse et la modélisation des données.
* {{ Goblock | [[Manipuler des données avec dplyr]] }}
*: Manipuler des données pour explorer ou extraire des résumés depuis des jeux de données.
 
==== Visualisation des données ====
* {{ Goblock | [[Introduction à la visualisation des données avec R]] }}
*: Aspects théoriques et pratiques de la visualisation des données avec du code plutôt qu'avec des logiciels ''point-and-click''.
* {{ Goblock | [[Visualisation des données avec ggplot2]] }}
*: Utilisation d'une grammaire des graphiques pour créer des visualisations complexes et structurées.
 
==== Analyse et modélisation des données ====
* {{ Goblock | [[Introduction à la modélisation des données avec R]] }}
*: 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''.
 
==== Communication, publication et partage ====  
* {{ Goblock | [[Introduction à Rmarkdown]] }}
*: [https://rmarkdown.rstudio.com/ 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é.
* {{ Goblock | [[Quarto]] }}
*: [https://quarto.org/ Quarto] est un système de publication plus récent par rapport à Rmarkdown et qui regroupe plusieurs langages de programmation.


=== Tutoriels R ===
=== Tutoriels R ===
Ligne 102 : Ligne 134 :


À faire...
À faire...
[[Catégorie: R]]

Dernière version du 30 avril 2023 à 23:13

Pensée computationnelle avec R
▬▶
à finaliser débutant
2023/04/30
Catégorie: R


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 ;

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 :

  • 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.

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.

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
  • Visualisation des données et analyses exploratoires
  • Analyse et modélisation des données
  • Communication, publication et partage

Le parcours est organisé selon ces quatre étapes, plus une introduction générale à R, avec un exemple concret de projet.

Introduction générale

  • 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.
  • 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.
  • 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.

Importation, manipulation et nettoyage des données

Visualisation des données

Analyse et modélisation des données

  • 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.

Communication, publication et partage

  • 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é.
  • Quarto est un système de publication plus récent par rapport à Rmarkdown et qui regroupe plusieurs langages de programmation.

Tutoriels R

À faire et/ou réorganiser Tutoriels R

Ressources R

À faire...