Comment Réaliser De Multiples Tests-T Appariés dans R

plot of chunk multiple-paired-t-test-in-r-boxplots


Comment Réaliser De Multiples Tests-T Appariés dans R

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
  )

plot of chunk multiple-paired-t-test-in-r-boxplots

# Cacher les ns
bxp + stat_pvalue_manual(
  stat.test, label = "p.adj.signif", 
  step.increase = 0.08, hide.ns = TRUE, tip.length = 0
  )

plot of chunk multiple-paired-t-test-in-r-boxplots



Version: English





No Comments

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments