Prérequis
# Charger les packages R requis
library(tidyverse)
library(rstatix)
library(ggpubr)
# Préparer les données et inspecter un échantillon aléatoire des données
mydata <- iris %>%
filter(Species != "setosa") %>%
as_tibble()
mydata %>% sample_n(6)
## # A tibble: 6 x 5
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## <dbl> <dbl> <dbl> <dbl> <fct>
## 1 6 2.9 4.5 1.5 versicolor
## 2 6.4 2.8 5.6 2.1 virginica
## 3 5.5 2.6 4.4 1.2 versicolor
## 4 7.7 3 6.1 2.3 virginica
## 5 6.7 3.1 5.6 2.4 virginica
## 6 6.5 2.8 4.6 1.5 versicolor
# Transformer les données en format long
# Mettez toutes les variables dans la même colonne sauf `Species`, la variable de regroupement
mydata.long <- mydata %>%
pivot_longer(-Species, names_to = "variables", values_to = "value")
mydata.long %>% sample_n(6)
## # A tibble: 6 x 3
## Species variables value
## <fct> <chr> <dbl>
## 1 virginica Petal.Width 2.1
## 2 virginica Sepal.Length 6.9
## 3 virginica Petal.Width 2.2
## 4 versicolor Sepal.Width 3
## 5 virginica Petal.Length 5.7
## 6 versicolor Petal.Width 1.3
Effectuer plusieurs tests T
- Regrouper les données par variables et comparer les groupes d’espèces
- Ajuster les p-values et ajouter les niveaux de signification
stat.test <- mydata.long %>%
group_by(variables) %>%
t_test(value ~ Species) %>%
adjust_pvalue(method = "BH") %>%
add_significance()
stat.test
## # A tibble: 4 x 11
## variables .y. group1 group2 n1 n2 statistic df p p.adj p.adj.signif
## <chr> <chr> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 Petal.Length value versicolor virginica 50 50 -12.6 95.6 4.90e-22 9.80e-22 ****
## 2 Petal.Width value versicolor virginica 50 50 -14.6 89.0 2.11e-25 8.44e-25 ****
## 3 Sepal.Length value versicolor virginica 50 50 -5.63 94.0 1.87e- 7 2.49e- 7 ****
## 4 Sepal.Width value versicolor virginica 50 50 -3.21 97.9 1.82e- 3 1.82e- 3 **
Créer des Boxplots multi-panneaux avec des p-values du test t
# Créer le graphique
myplot <- ggboxplot(
mydata.long, x = "Species", y = "value",
fill = "Species", palette = "npg", legend = "none",
ggtheme = theme_pubr(border = TRUE)
) +
facet_wrap(~variables)
# Ajouter les p-values des tests statistiques
stat.test <- stat.test %>% add_xy_position(x = "Species")
myplot + stat_pvalue_manual(stat.test, label = "p.adj.signif")
Créer des box-plots individuels avec des p-values du t-test
# Regroupez les données par variables et faites un graphique pour chaque variable
graphs <- mydata.long %>%
group_by(variables) %>%
doo(
~ggboxplot(
data =., x = "Species", y = "value",
fill = "Species", palette = "npg", legend = "none",
ggtheme = theme_pubr()
),
result = "plots"
)
graphs
## # A tibble: 4 x 2
## variables plots
## <chr> <list>
## 1 Petal.Length <gg>
## 2 Petal.Width <gg>
## 3 Sepal.Length <gg>
## 4 Sepal.Width <gg>
# Ajouter des tests statistiques à chaque graphique correspondant
variables <- graphs$variables
for(i in 1:length(variables)){
graph.i <- graphs$plots[[i]] +
labs(title = variables[i]) +
stat_pvalue_manual(stat.test[i, ], label = "p.adj.signif")
print(graph.i)
}
Version: English
No Comments