Prérequis
# Charger les packages R requis
library(tidyverse)
library(rstatix)
library(ggpubr)
Préparation des données
Nous utiliserons le jeu de données anxiety
[package datarium], qui contient le score d’anxiété, mesuré à trois moments (t1, t2 et t3), de trois groupes d’individus pratiquant des exercices physiques à différents niveaux (grp1 : basal, grp2 : moyen et grp3 : élevé).
Charger et afficher une ligne aléatoire par groupe:
# Format large
set.seed(123)
data("anxiety", package = "datarium")
anxiety %>% sample_n_by(group, size = 1)
## # A tibble: 3 x 5
## id group t1 t2 t3
## <fct> <fct> <dbl> <dbl> <dbl>
## 1 5 grp1 16.5 15.8 15.7
## 2 27 grp2 17.8 17.7 16.9
## 3 37 grp3 17.1 15.6 14.3
# Rassemblez les colonnes t1, t2 et t3 en format long.
# Convertir l'identifiant et le temps en facteurs
anxiety <- anxiety %>%
gather(key = "time", value = "score", t1, t2, t3) %>%
convert_as_factor(id, time)
# Inspecter quelques lignes aléatoires des données par groupes
set.seed(123)
anxiety %>% sample_n_by(group, time, size = 1)
## # A tibble: 9 x 4
## id group time score
## <fct> <fct> <fct> <dbl>
## 1 5 grp1 t1 16.5
## 2 12 grp1 t2 17.7
## 3 7 grp1 t3 16.5
## 4 29 grp2 t1 18.4
## 5 30 grp2 t2 18.9
## 6 16 grp2 t3 12.7
## 7 38 grp3 t1 17.3
## 8 44 grp3 t2 16.4
## 9 39 grp3 t3 14.4
Effectuer de multiples comparaisons par paires en utilisant des tests-t appariés
Les p-values sont ajustées à l’aide de la méthode de correction des tests multiples de Bonferroni.
# Comparaisons par paires entre les points de temps (`time`) à chaque niveau de groupe (`group`)
# Le test t apparié est utilisé parce que nous avons répété les mesures en fonction du temps
stat.test <- anxiety %>%
group_by(group) %>%
pairwise_t_test(
score ~ time, paired = TRUE,
p.adjust.method = "bonferroni"
) %>%
select(-df, -statistic, -p) # Supprimer les détails
stat.test
## # A tibble: 9 x 8
## group .y. group1 group2 n1 n2 p.adj p.adj.signif
## * <fct> <chr> <chr> <chr> <int> <int> <dbl> <chr>
## 1 grp1 score t1 t2 15 15 1.94e- 1 ns
## 2 grp1 score t1 t3 15 15 2.00e- 3 **
## 3 grp1 score t2 t3 15 15 6.00e- 3 **
## 4 grp2 score t1 t2 15 15 2.68e- 1 ns
## 5 grp2 score t1 t3 15 15 1.51e- 7 ****
## 6 grp2 score t2 t3 15 15 6.12e- 8 ****
## 7 grp3 score t1 t2 15 15 5.97e-11 ****
## 8 grp3 score t1 t3 15 15 5.16e-13 ****
## 9 grp3 score t2 t3 15 15 1.78e- 9 ****
Les comparaisons par paires t1 vs t3 et t2 vs t3 étaient statistiquement significativement différentes pour tous les groupes.
Visualisation : Boxplots avec p-values
# Créer le graphique
bxp <- ggboxplot(
anxiety, x = "group", y = "score",
color = "time", palette = "jco"
)
# Ajouter les p-values des tests statistiques
stat.test <- stat.test %>% add_xy_position(x = "group")
bxp + stat_pvalue_manual(
stat.test, label = "p.adj.signif",
step.increase = 0.08
)
# Cacher les ns
bxp + stat_pvalue_manual(
stat.test, label = "p.adj.signif",
step.increase = 0.08, hide.ns = TRUE, tip.length = 0
)
Version: English
No Comments