Cet article décrit comment faire un test t apparié dans R (ou dans Rstudio). Il convient de noter que le test t apparié est également appelé test t dépendant, test t pour échantillons reliés, test t de paires appariées ou test t pour échantillons appariés.
Vous apprendrez à:
- Exécuter le test t apparié dans R en utilisant les fonctions suivantes :
t_test()
[paquet rstatix] : le résultat est une data frame pour une visualisation graphique facile en utilisant le paquetggpubr
.t.test()
[paquet stats] : fonction R de base.
- Interpréter et rapporter le test t apparié
- Ajouter des p-values et des niveaux de significativité à un graphe
- Calculez et rapportez la taille de l’effet du test t apparié en utilisant le d de Cohen. La statistique “d” redéfinit la différence de moyennes comme le nombre d’écarts-types qui sépare ces moyennes. Les tailles d’effet conventionnelles des tests T, proposées par Cohen, sont : 0,2 (petit effet), 0,5 (effet modéré) et 0,8 (effet important) (Cohen 1998).
Sommaire:
Livre Apparenté
Pratique des Statistiques dans R II - Comparaison de Groupes: Variables NumériquesPrérequis
Assurez-vous d’avoir installé les paquets R suivants:
tidyverse
pour la manipulation et la visualisation des donnéesggpubr
pour créer facilement des graphiques prêts à la publicationrstatix
contient des fonctions R facilitant les analyses statistiques.datarium
: contient les jeux de données requis pour ce chapitre.
Commencez par charger les packages requis suivants:
library(tidyverse)
library(ggpubr)
library(rstatix)
Données de démonstration
Ici, nous utiliserons un jeu de données de démonstration mice2
[package datarium], qui contient le poids de 10 souris avant et après le traitement.
# Format large
data("mice2", package = "datarium")
head(mice2, 3)
## id before after
## 1 1 187 430
## 2 2 194 404
## 3 3 232 406
# Transformez en données longues :
# rassembler les valeurs de `before` (avant) et `after` (après) dans la même colonne
mice2.long <- mice2 %>%
gather(key = "group", value = "weight", before, after)
head(mice2.long, 3)
## id group weight
## 1 1 before 187
## 2 2 before 194
## 3 3 before 232
Nous voulons savoir s’il y a une différence significative dans les poids moyens après le traitement ?
Statistiques descriptives
Calculer quelques statistiques descriptives (moyenne et sd) par groupe:
mice2.long %>%
group_by(group) %>%
get_summary_stats(weight, type = "mean_sd")
## # A tibble: 2 x 5
## group variable n mean sd
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 after weight 10 400. 30.1
## 2 before weight 10 201. 20.0
Calculs
Utilisation de la fonction de base R
Il existe deux options pour calculer le test t indépendant selon que les données des deux groupes soient enregistrées soit dans deux vecteurs différents, soit dans une data frame.
Option 1. Les données sont enregistrées dans deux vecteurs numériques différents:
# Enregistrer les données dans deux vecteurs différents
before <- mice2$before
after <- mice2$after
# Calculer le test t
res <- t.test(before, after, paired = TRUE)
res
##
## Paired t-test
##
## data: before and after
## t = -30, df = 9, p-value = 1e-09
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -217 -182
## sample estimates:
## mean of the differences
## -199
Option 2. Les données sont enregistrées dans une data frame.
# Calculer le test t
res <- t.test(weight ~ group, data = mice2.long, paired = TRUE)
res
Comme vous pouvez le voir, les deux méthodes donnent les mêmes résultats.
Dans le résultat ci-dessus :
t
est la valeur de la statistique du test t (t = -25.55),df
est le degré de liberté (df= 9),p-value
est le niveau de significativité du test t (p-value = 1.03910^{-9}).conf.int
est l’intervalle de confiance de la moyenne des différences à 95% (conf.int = [-217.1442, -181.8158]);sample estimates
est la moyenne des différences (moyenne = -199.48).
Utilisation du paquet rstatix
Nous utiliserons le système pipe-compatible t_test()
function [rstatix package], a wrapper around the R base function t.test()
. Les résultats peuvent être facilement ajoutés à un graphique en utilisant le paquet Rggpubr
.
stat.test <- mice2.long %>%
t_test(weight ~ group, paired = TRUE) %>%
add_significance()
stat.test
## # A tibble: 1 x 9
## .y. group1 group2 n1 n2 statistic df p p.signif
## <chr> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <chr>
## 1 weight after before 10 10 25.5 9 0.00000000104 ****
Les résultats ci-dessus montrent les composantes suivantes:
.y.
: la variable y utilisée dans le test.group1,group2
: les groupes comparés dans les tests par paires.statistic
: Statistique de test utilisée pour calculer la p-value.df
: degrés de liberté.p
: p-value.
Notez que, vous pouvez obtenir un résultat détaillé en spécifiant l’option detailed = TRUE
.
mice2.long %>%
t_test(weight ~ group, paired = TRUE, detailed = TRUE) %>%
add_significance()
## # A tibble: 1 x 14
## estimate .y. group1 group2 n1 n2 statistic p df conf.low conf.high method alternative p.signif
## <dbl> <chr> <chr> <chr> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <chr> <chr>
## 1 199. weight after before 10 10 25.5 0.00000000104 9 182. 217. T-test two.sided ****
Interprétation
La p-value du test est 1.0410^{-9}, ce qui est inférieur au seuil de significativité alpha = 0,05. Nous pouvons alors rejeter l’hypothèse nulle et conclure que le poids moyen des souris avant traitement est significativement différent du poids moyen après traitement avec une p-value = 1.0410^{-9}.
Taille de l’effet
La taille de l’effet d’un test t pour échantillons appariés peut être calculée en divisant la différence moyenne par l’écart-type de la différence, comme indiqué ci-dessous.
La formule du d de Cohen:
\[
d = \frac{mean_D}{SD_D}
\]
Où D
est la différence entre les valeurs des échantillons appariés.
Calculs:
mice2.long %>% cohens_d(weight ~ group, paired = TRUE)
## # A tibble: 1 x 7
## .y. group1 group2 effsize n1 n2 magnitude
## * <chr> <chr> <chr> <dbl> <int> <int> <ord>
## 1 weight after before 8.08 10 10 large
La taille de l’effet est importante, d de Cohen = 8,07.
Rapporter
Nous pourrions rapporter les résultats comme suit : Le poids moyen des souris a augmenté de façon significative après le traitement, t(9) = 25,5, p < 0,0001, d = 8,07.
Visualiser les résultats:
# Créer un box plot
bxp <- ggpaired(mice2.long, x = "group", y = "weight",
order = c("before", "after"),
ylab = "Weight", xlab = "Groups")
# Ajouter la p-value et les niveaux de significativité
stat.test <- stat.test %>% add_xy_position(x = "group")
bxp +
stat_pvalue_manual(stat.test, tip.length = 0) +
labs(subtitle = get_test_label(stat.test, detailed= TRUE))
Résumé
Cet article montre comment effectuer le t-test apparié dans R/Rstudio en utilisant deux manières différentes : la fonction de base R t.test()
et la fonction t_test()
dans le paquet rstatix. Nous décrivons également comment interpréter et communiquer les résultats du test t.
References
Cohen, J. 1998. Statistical Power Analysis for the Behavioral Sciences. 2nd ed. Hillsdale, NJ: Lawrence Erlbaum Associates.
Version: English
No Comments