Devez-vous adopter le package see pour réaliser vos graphiques ?

Test du package see

Le package see appartient au meta package easystats qui contient, également, les packages :

  • insight
  • datawizard
  •  bayestestR
  • performance (je l’utilise dans ce tuto
  • parameters
  •  effectsize
  • modelbased
  • correlation
  • report (j’en parle ici )
Packages contenus dans le meta package easystats

Le package easystat est défini par ses développeurs (dont Indrajeet Patil, Dominique Makowski et Daniel Lüdecke ), comme “une collection de packages qui fonctionnent en synergie pour fournir une syntaxe cohérente et intuitive lorsque vous travaillez avec des modèles statistiques dans le langage de programmation R (R Core Team, 2021). La plupart des packages easystats renvoient des résumés numériques complets des paramètres et des performances du modèle.”

Dans cet ensemble, la place du package see est de “complèter ces résumés numériques avec une multitude de fonctions et d’outils pour produire une gamme de visualisations prêtes à être publiées pour les paramètres du modèle, les prédictions et les diagnostics de performance. En tant que pilier central d’easystats, le package see aide les utilisateurs à utiliser la visualisation pour des rapports scientifiques plus informatifs, communicables et complets.

La description étant plutôt prometteuse, je me suis penchée plus en détails les fonctions proposées par ce package. Dans cet article, je vous partage ce qui m’a particulièrement intéressée.

Plot des paramètres d'un modèle

Il s’agit de représenter, sur un graphique, les valeurs des paramètres d’un modèle statistique (régression linéaire multiple, glm etc..)

Pour réaliser ce type de graph, le principe est de :

1. Ajuster un modèle
2. Extraire les paramètres avec la fonction parameters() du package parameters (qui appartient à easystats)
3. Simplement employer la fonction plot() sur le résultat des étapes précédentes.

Pour tester cette fonction, j’ai ajusté un modèle de régression linéaire multiple sur les données cystfibr contenues dans le package ISwR :

Table des matières

install.packages("easystats")
library("easystats")

library(ISwR)
data("cystfibr")

cystfibr$sex <- as.factor(cystfibr$sex)

# ajustement du modèle
cystfibr.lm <- lm(pemax~sex+height+bmp+fev1+rv+tlc, data=cystfibr)

# obtention des paramètres
parameters(cystfibr.lm)
## Parameter   | Coefficient |    SE |           95% CI | t(18) |     p
## --------------------------------------------------------------------
## (Intercept) |     -166.49 | 99.01 | [-374.49, 41.52] | -1.68 | 0.110
## sex [1]     |        4.27 | 13.23 | [ -23.53, 32.08] |  0.32 | 0.750
## height      |        1.17 |  0.32 | [   0.50,  1.84] |  3.67 | 0.002
## bmp         |       -0.56 |  0.59 | [  -1.80,  0.67] | -0.96 | 0.351
## fev1        |        1.90 |  0.80 | [   0.22,  3.59] |  2.38 | 0.029
## rv          |        0.11 |  0.10 | [  -0.11,  0.33] |  1.06 | 0.304
## tlc         |        0.40 |  0.41 | [  -0.47,  1.26] |  0.97 | 0.345

plot(parameters(cystfibr.lm)) 

Et pour obtenir une version avec les paramètres standardisés, c’est tout simple : il suffit d’ajouter l’argument standardize="refit" dans la fonction parameters():

# pour obtenir des paramètres standardisés
plot(parameters(cystfibr.lm, standardize="refit")) 
plot des paramètres standardisés d'un modèle de régression linéaire multiple

Et comme le package est compatible avec ggplot2 (ça veut dire que l’on peut compléter les graphiques en ajoutant des couches ggplot2, on peut, par exemple, ajouter un titre :

library(ggplot2)
plot(parameters(cystfibr.lm, standardize="refit"))+
  ggtitle("mon super graph") 
Ajout d'un titre avec une syntaxe ggplot2

Il y a d’autres packages qui permettent de faire la même chose, mais ici l’interaction entre les packages parameters et see est simple d’utilisation et très efficace !

Plot des correlations

Là aussi,  il existe plein de packages et de fonctions qui permettent d’étudier les corrélations. J’en ai déjà parlé dans cet article, ou encore dans celui-là.

Pour tester ce que propose le package see, j’ai  encore employé les données cystfibr contenues dans le package  ISwR :

library(correlation)
library(see)
library(ISwR)
data("cystfibr")

results <- summary(correlation(cystfibr))
plot(results, show_data = "points") 
plot des corrélations du package see

Hé bien, je trouve la visualisation vraiment intéressante. Elle nous permet d’appréhender les liens entre les variables ultra-facilement !

Un vrai thème black

Dans certaines situations, réaliser un graphique sur un fond noir permet réellement de le mettre en valeur, ça fait un petit effet whaouuu  🤩 pas négligeable !

C’est possible de le faire avec ggplot2, mais à ma connaissance, pas facilement. Il existe bien un theme dark sur ggplot2, mais je le trouve super décevant. Voici un exemple : 

ggplot(iris, aes(x=Sepal.Width, y=Sepal.Length, colour=Species))+
    geom_point()+
    theme_dark() 
theme dark de ggplot 2

On est d’accord, c’est pas terrible ?

Alors qu’avec le package see on peut accéder à un vrai fond noir, grâce à la fonction theme_blackboard() :

ggplot(iris, aes(x=Sepal.Width, y=Sepal.Length, colour=Species))+
	geom_point()+
	theme_blackboard() 
Theme blacbord du package see

🤩🤩🤩 C’est beaucoup mieux, non ? 

Des palettes de couleurs jolies

Si comme moi, vous trouvez que les couleurs par défaut de ggplot2 ne sont pas géniales 😩, les palettes prédéfinies du package see seront une bouffée d’oxygène ! 😜 

Et en plus, elles sont super simples à employer, il suffit d’ajouter la couche scale_color_material()` par exemple (il en existe d’autres, vous les trouverez en cliquant ici.

Voilà ce que ça donne :

ggplot(iris, aes(x=Sepal.Width, y=Sepal.Length, colour=Species))+
	geom_point()+
	 scale_color_material() 
utilisation d'une palette du package see

Moi, je dis MERCI 🙏🙏🙏

Assemblage de graphiques

Jusque-là, pour combiner plusieurs plots dans une même fenêtre graphique, j’employais la plupart du temps la fonction, grid.arrange() du package gridExtra.

Pour faire des choses plus subtiles, j’employais les fonctions des packages cowplot et patchwork.

Le package see permet aussi de combiner facilement des plots, avec la fonction plots() !   Franchement, quoi de plus simple ?

Voici un exemple (directement copié de la page github du package 😉)

p1 <- ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) +
  geom_boxplot() +
  theme_modern(axis.text.angle = 45) +
  scale_fill_material_d()

p2 <- ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) +
  geom_violin() +
  theme_modern(axis.text.angle = 45) +
  scale_fill_material_d(palette = "ice")

p3 <- ggplot(iris, aes(x = Petal.Length, y = Petal.Width, color = Sepal.Length)) +
  geom_point2() +
  theme_modern() +
  scale_color_material_c(palette = "rainbow")

plots(p1, p2, p3, n_columns = 2) 
Assemblage de plots avec le package see

Jusque-là, rien de renversant. Mais ce que j’ai vraiment apprécié, c’est de pouvoir ajouter un tag ultra-facilement, grâce à l’argument tags, et obtenir un rendu très élégant :

plots(p1, p2, p3,
  n_columns = 2,
  tags = paste("Fig. ", 1:3)
) 
Tag des plots assemblés avec le package see

On peut aussi le faire avec cowplot, mais les étiquettes sont moins bien placées (en tout cas par défaut)

library(cowplot)
plot_grid(p1, p2,p3,
          ncol=2, 
          labels=paste("Fig. ", 1:3)) 
Assemblage de plots avec le package cowplot

Le half violin, half dot plot

Ce type de plot, comme son nom l’indique, consiste à combiner, dans un même graph, un violin plot avec un dot plot :

Le half violin, half dot plot avec le package see
ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) +
  geom_violindot(fill_dots = "black") +
  theme_modern() +
  scale_fill_material_d() 

Ce type de représentation permet de bien appréhender la distribution des données, même si la crème de la crème aurait été de pouvoir réaliser un raincloud plot (violin, dot et boxplot)…

Vous trouverez des exemples de raincloud ici, et là.

Pour aller plus loin

Si vous souhaitez avoir une vision plus complète des possibilités du package  see, n’hésitez pas à consulter sa page github : https://easystats.github.io/see/, ansi que sa documentation. Pour la voir apparaître dans la page d’aide, il vous suffit de cliquer sur le nom du package dans l’onglet “package”

obtenir la documentation d'un package
Documentation du package see

Conclusion

Au final, je trouve ce package see assez intéressant, parce qu’il est facile à employer, compatible avec ggplot2, et qu’il permet en pratique courante d’accéder à des fonctionnalités qui me manquaient (la palette de couleurs agréable, et un thème dark).

Il me donne aussi clairement envie d’aller explorer les fonctionnalités des autres packages de easystats.

Mais pour en revenir à ce package see  (🤦‍♀️énorme jeu de mot!)  à la question “est ce que vous devez l’adopter“, ma réponse est :  plutôt oui !!

Et vous, qu’est-ce que vous en pensez ?

Vous souhaitez soutenir mon travail ?​​

Si vous souhaitez soutenir mon travail, vous pouvez faire un don libre sur la page tipeee du blog :

Poursuivez votre lecture

3 réponses

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Bonjour !

vous venez souvent ?

Identifiez-vous pour avoir accès à toutes les fontionnalités !

Aide mémoire off'R ;)

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.