Je vous propose ici un nouveau type d’article dans lequel je vous partage les fonctions, packages ou ressources que j’ai découvertes durant le mois qui vient de s’écouler, et qui m’ont particulièrement intéressées. Je vais essayer de les regrouper dans de grandes thématiques comme l’utilisation de R, les biostatistiques, le reporting, la data visualisation, etc…
On commence donc pour le mois d’octobre 2021, avec vous allez voir, une pépite pour simuler des données !
La question des couleurs à employer pour permettre aux daltoniens de bien distinguer les informations sur une représentation visuelle revient souvent. Lors d’une formation que j’ai animé très récemment, un stagiaire a partagé un document rédigé par Paul Tol, qui propose des palettes de couleurs (avec leur code rgb et hexadécimal ) qui :
Ce document est vraiment très intéressant, parce qu’il permet de régler le problème récurrent du choix des couleurs pour satisfaire tout un ensemble de contraintes.
Et pour créer concrètement ces palettes sous R pour qu’elles soient prêtes à l’emploi, vous pouvez consulter mon article “Comment automatiser votre palette de couleurs RGB ?”.
Si vous souhaitez créer un blog ou un site internet pour partager vos travaux de recherche, mais que vous ne souhaitez pas passer par WordPress, et que vous vous débrouillez en R markdown, le package distill
peut vraiment être une bonne option !
Je l’ai rapidement essayé et j’ai réussi facilement à créer le squelette d’un site internet. J’ai même réussi à le déployer avec R Studio Connect (enfin une fois sur deux pour être honnête : au premier essai tout a fonctionné; et la seconde fois, j’ai obtenu une erreur 404…).
Je n’ai pas pris le temps de creuser cette erreur, mais globalement l’utilisation du package m’a vraiment paru abordable. Ce n’est pas plus compliqué que l’utilisation du package bookdown pour compiler un document complet à partir de différents fichiers Rmarkdown.
Vous trouverez des tutos plutôt faciles à suivre sur ce site (crée bien évidemment avec distill !) . Les tutoriels sont dans l’onglet Websites.
Voilà la pépite 💥 dont je vous parlais ! Une application Shiny qui permet de simuler des données de plans factoriels à partir de paramètres que l’on donne en entrée : nombre de facteurs, nombre de modalités, moyennes, écart-types (simulation selon des lois normales).
L’application permet de spécifier des effets between et within (analyse avec des modèles mixtes).
Elle s’appelle Faux, ça ne fait pas envie, et pourtant, elle me semble vraiment intéressante pour simuler des données afin de :
Cette application a été développée par Lisa DeBruine(@LisaDeBruine).
Pour la tester, j’ai cherché à simuler les données (reproduire) ToothGrowth
(présentes dans le package dataset
, chargé par défaut). Il s’agit d’un plan factoriel 2*3, uniquement avec des effets between, réalisés chez le cochon d’inde, et qui a pour but d’évaluer les effets de l’administration de vitamine C sur la croissance des dents. Cette vitamine C est administrée par jus d’orange (OJ), ou via un comprimé (VC), et selon 3 doses (0.5, 1 et 2). Chaque croisement de modalités est évaluée sur 10 animaux.
Pour commencer, j’ai récupéré les moyennes et écart-types des longueurs de dents :
TG <- ToothGrowth
tapply(TG$len, list(TG$supp, TG$dose), mean)
## 0.5 1 2
## OJ 13.23 22.70 26.06
## VC 7.98 16.77 26.14
tapply(TG$len, list(TG$supp, TG$dose), sd)
## 0.5 1 2
## OJ 4.459709 3.910953 2.655058
## VC 2.746634 2.515309 4.797731
J’ai ensuite :
TG_simul <- read.csv("data/TG-simulated.csv")
tapply(TG_simul$y, list(TG_simul$supp, TG_simul$dose), mean)
## 0.5 1 2
## OJ 13.2299 22.7002 26.0600
## VC 7.9799 16.7701 26.1401
tapply(TG_simul$y, list(TG_simul$supp, TG_simul$dose), sd)
## 0.5 1 2
## OJ 4.460140 3.909964 2.660077
## VC 2.750031 2.519982 4.799992
On peut voir que les données simulées ont effectivement des caractéristiques très proches des données d’origine.
J’ai ensuite exploré graphiquement ces deux datasets :
library(dplyr)
# data management des données simulées
TG_simul <- TG_simul %>%
select(-id) %>%
mutate(type="simulation") %>%
rename(len=y) %>%
relocate(len, supp, dose)
# data management des données d'origine
TG <- TG %>%
mutate(type="origine")
# assemblage des 2 datasets
TG_all <- bind_rows(TG, TG_simul)
# plot
library(ggplot2)
pd <- position_dodge(0.1)
ggplot(TG_all, aes(x=dose, y=len, colour=type))+
geom_point(position = pd)+
facet_grid(~supp)
On voit bien que les données simulées sont très similaires aux données d’origine.
Il s’agit ici d’une publication de Katherine Lee et al, qui propose une approche pour le traitement et le reporting des données manquantes dans les études épidémiologiques observationnelles.
Je n’ai pas encore pris le temps de la lire en totalité, je l’ai seulement parcouru (mais elle est en bonne position dans la liste de mes prochaines lecture d’article), mais elle me semble contenir beaucoup d’informations. Si, comme moi, vous connaissez mal ce sujet des données manquantes (les différents types, les différentes méthodes d’imputation, les guidelines etc..), je pense que c’est un bon point de départ. Et même si vous travaillez dans un domaine qui n’est pas celui de l’épidémiologie !
Il s’agit là encore d’une publication, mais qui traite des effect sizes. Elle a été écrite par Daniel Quitana. Daniel Quitana est un chercheur norvégien qui travaille sur l’Ocytocine, la variabilité de la fréquence cardiaque et les méta-analyse, et qui partage beaucoup de contenus sur Twitter ou sur sa chaîne Youtube, notamment sur sa manière de mener ses recherches (par exemple, comment il réalise une méta-analyse). Je vous en avais déjà parlé dans cet article .
L’effect size est une mesure standardisée de la différence des effets entre deux groupes. Il existe des seuils théoriques, proposés par Cohen, mais ces seuils ont été établis dans le domaine des sciences sociales. Dans son article, Daniel Quintana compare ces seuils avec la distribution réellement observés des effects size dans le domaine de la variabilité de la fréquence cardiaque.
Cette publication m’intéresse particulièrement parce que cette question de la pertinence des seuils définis une fois pour toute, pour un test donné, dans un domaine éloigné de l’application que j’en fais (biologie, médecine, agronomie), je me la pose fréquemment !
Et cerise sur le gâteau, Daniel Quintana partage le code R qu’il a employé dans son étude : https://osf.io/sjkxa/.
Comment faire pour que mon code fonctionne toujours dans 2 ans (ou 6 mois 😅 ) malgré les mises à jour de R et des packages ?
La réponse est dans cet article, en français ! 👇👇👇
Ici quelle que chose de très concret : comment exporter plusieurs data frame dans un même classeur Excel ?
C’est très simple avec la fonction write_xlsx()
du package writexl
. Pour cela, il suffit de spécifier, dans une liste, les data frame considérés et le nom des feuilles qui les recevront dans une liste.
Par exemple pour exporter dans un classeur mes_datasets.xlsx, les data frame iris, airquality, et anscombe,
# creation d'un dossier "data_export" dans le projet R
dir.create("data_export")
## Warning in dir.create("data_export"): 'data_export' existe déjà
#install.packages("writexl")
library(writexl)
writexl::write_xlsx(
x = list(
feuille_Iris = iris,
feuille_Airquality = airquality,
feuille_anscombe = anscombe
),
path = "data_export/mes-dataset.xlsx"
)
Remarque : ces trois datasets sont présents par défaut dans R
Pour apprendre comment découper un data frame en fonction des modalités d’une variable catégorielle pour ensuite exporter ces différents sous data frame dans même classeur Excel, toujours avec la fonction write_xlsx()
du package writexl
, vous pouvez consulter cet article : “Exportations multiples en fichiers csv ou feuilles Excel” .
Alors ?
Qu’est-ce que vous pensez de ce nouveau format d’article ?
Bien ou pas bien ?
Dites-le-moi en commentaire de cet article ou bien envoyez-moi un petit message : claire@delladata.fr
De même, si vous souhaitez que je consacre un article entier à un des éléments présentés ici, ou si vous découvrez des pépites que vous souhaitez partager, dites le moi en commentaire, ou envoyez-moi un mail.
Si cet article vous a plu, ou vous a été utile, et si vous le souhaitez, vous pouvez soutenir ce blog en faisant un don sur sa page Tipeee 👇
Enregistrez vous pour recevoir gratuitement mes fiches “aide mémoire” (ou cheat sheets) qui vous permettront de réaliser facilement les principales analyses biostatistiques avec le logiciel R et pour être informés des mises à jour du site.
8 Responses
Quelqu’un qui fait la biblio pour moi je ne vais pas refuser ! Très bonne idée & encore merci pour tout votre travail.
Merci Madame Della Vedova pour cet autre superbe article, grâce à vous, j’apprends un petit peu plus chaque jour sur la Data science / Data analyse/ Data visualisation et autre.
Vivement un prochain article.
Bien cordialement.
Alain
Bonjour,
A part le lien pour la publi Quintana qui n’a pas fonctionné pour moi, l’article est super.
Je vais jeter un oeil aux effect size et aux donnees manquantes qui sont mon lot quotidien! Mais ma préférence va aux couleurs que j’ai d’ores et déjà transférés!
MERCI
Très sympa et instructif ce nouveau format d’article, on en redemande ! 🙂
Merci pour ces infos très variées! Et le format est clair et très agréable à lire.
Très pratique pour parcourir rapidement un nombre important de sujets et approfondir en fonction du temps et de l’intérêt. Super travail merci beaucoup.
J’adore, j’adore, j’adore !
Utile et bien présenté, un grand merci pour l’ensemble de vos articles !
Merci pour votre enthousiasme.
Rendez-vous début décembre pour les nouveautés de novembre !