Le test de Student apparié

Lorsqu’on évoque le test de Student, il s’agit généralement du test de Student pour échantillons indépendants. Ce test est alors employé pour comparer deux séries de données quantitatives indépendantes, résumées par une moyenne.

Néanmoins, il existe également un test de Student apparié, pour échantillons appariés (paired en anglais), issus de protocoles expérimentaux dans lequel le sujet est sont propre témoin. Par exemple, lors d’expérimentations de type avant / après, ou encore lorsque des mesures sont faites sur différentes régions (bras droit / bras gauche) d’un même sujet. Dans ces situations, il y a, en réalité un seul échantillon, mais deux séries de données.

Deux principaux tests statistiques permettent de prendre en compte cette situation d’échantillons appariés :

  • le test de student apparié, pour comparer deux séries de  données numériques résumées par des moyennes (il existe également une version appariée du test de Wilcoxon qui est utilisée lorsque les conditions de validité du test de Student apparié ne sont pas satisfaites),
  • le  test de Mac Nemar, pour comparer des proportions observées sur des mêmes sujets identiques.

Dans cet article, nous allons nous intéresser aux tests de Student et de Wilcoxon appariés.

Exemple de données appariées

Imaginons que l’on souhaite évaluer l’effet d’un nouveau régime alimentaire sur la perte de poids chez 20 sujets. Pour cela, on pèse ces 20 sujets avant de débuter le régime alimentaire, puis une seconde fois, à la fin de celui-ci (2 mois plus tard, par exemple).

Les données pourraient être celles-ci :

J’ai généré ces données avec le code suivant :

library(knitr)
set.seed(1)
p1 <- round(rnorm(20,95,10),2)
p2 <- round(p1*0.95+rnorm(20,0,5),2)

id= paste("patient_",1:20)
mydf <- data.frame(Num_P=id,Avant=p1,Apres=p2)
mydf 
Dans cette situation, chaque couple de valeur appartenant à un même sujet, constitue une paire. De ce fait, les données appariées de type numérique peuvent être représentées graphiquement, comme ceci, après un passage de données en format long.
library(tidyverse)
    mydf_long <- mydf %>% 
    gather(time, value,-Num_P)
    mydf_long$time <- fct_relevel(mydf_long$time, c("Avant", "Apres"))

 
library(ggplot2)
ggplot(mydf_long,aes(y=value, x=time, group=Num_P))+
    geom_point(show.legend = FALSE, size=3, colour="blue")+
    geom_line(show.legend = FALSE, size=1, colour="blue")+
    theme_bw() 

Statistique du test de Student apparié

Le test de Student apparié, va permettre de comparer ces deux séries de données, dont les moyennes sont 96.91 kg avant le régime et 92.03 kg après celui-ci.

 

mean(mydf$Avant) 
## [1] 96.906
mean(mydf$Apres) 
## [1] 92.029 

Et ainsi de répondre à la question, est-ce que le poids moyen des sujets après le régime est différent du poids moyen de ces même sujets avant le régime ?

La statistique de ce test repose sur le calcul de :

  • la moyenne des différences,
  • l’écart type de la moyenne des différences.

Sa statistique est :

\[t_{n-1} =\frac{\bar{d}}{s_{\bar{d}}}\]

Hypothèses

Compte tenu de la statistique, les hypothèses nulles et alternatives peuvent s’écrire :\[H_0 :\bar{d}=0\]\[H_1 :\bar{d}\neq 0\]ou \[H_1 :\bar{d} > 0\] ou encore \[H_1 :\bar{d} < 0\]

Principe du test de Student apparié

Pour calculer la statistique de ce test, les étapes suivantes doivent être conduites:

Calcul de la différence entre paire

\[d_i = x_i – y_i\]

Calcul de la moyenne des différences

\[ \bar{d} =\frac{ \sum d_i}{n} \]
moy_d = mean(mydf$d)
moy_d

## [1] 4.877 

Calcul de la variance des différences

\[s^2_d= \frac{\sum(d_i-\bar{d})^2}{n-1}\]
var_d = var(mydf$d)
var_d

## [1] 20.05169 

Calcul de l'écart type de la moyenne des différences

sd_moy_d = sd(mydf$d)/sqrt(20)
sd_moy_d

## [1] 1.001291 
D’où, ici:\[t_{19} = \frac{4.877}{1}=4.877\]

Les conditions d'application

Le test de Student apparié peut être employé si  les différences suivent une loi Normale :\[d_i\sim\mathcal{N}\]Cette condition peut être évaluée à l’aide du test de Shapiro-Wilk :
shapiro.test(mydf$d)

##
## Shapiro-Wilk normality test
##
## data: mydf$d
## W = 0.92696, p-value = 0.1349 
Ici, la pvalue du test est >0.05. De ce fait, l’hypothèse nulle supposant une distribution normale ne peut être rejetée; la normalité des différences est alors acceptée.Si cette condition n’est pas remplie, le test de Wilcoxon apparié devra être employé. Il s’agit de l’homologue non paramétrique du test de Student apparié.Sa statistique est :\[z=\frac{\mid{W_p – W_{att}}\mid}{\sqrt{s_{wp}^2}}\]
test de wilcoxon apparié

Réalisation du test de Student apparié avec R

Pour réaliser un test de Student apparié, il suffit de rajouter l’argument paired=TRUE dans la fonction t.test()

t.test(mydf$Avant, mydf$Apres, paired=TRUE)
 
##
## Paired t-test
##
## data: mydf$Avant and mydf$Apres
## t = 4.8707, df = 19, p-value = 0.0001062
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## 2.781273 6.972727
## sample estimates:
## mean of the differences
## 4.877 

La p value du test est <0.05, l’hypothèse nulle d’égalité des moyennes est rejetée. Le test de Student apparié met en évidence une différence significative entre les deux moyennes, dans le sens d’une moyenne de poids plus faible après la mise en place du régime.

Réalisation du test de Wilcoxon apparié avec R

Comme précédemment, il suffit de rajouter l’argument `paired=TRUE` dans la fonction `wilcox.test()`:

wilcox.test(mydf$Avant, mydf$Apres, paired=TRUE)
 
##
## Wilcoxon signed rank test
##
## data: mydf$Avant and mydf$Apres
## V = 202, p-value = 4.768e-05
## alternative hypothesis: true location shift is not equal to 0

 

Les résultats sont identiques.

Comme vous avez pu le voir, il est vraiment très facile de réaliser un test de Student, ou de Wilcocon apparié sous R. Dans un prochain article, je vous parlerai du test de Mac Nemar, qui permet de comparer deux proportions mesurées sur des séries appariées.

Si cet article vous a plu, ou vous a été utile, et si vous le souhaitez, vous pouvez soutenir ce blog en faisant un don sur sa page Tipeee 🙏

mage par Screamenteagle de Pixabay

11 réponses

  1. Merci Claire,
    j’ai une petite commentaire concernant les condition d’application.
    il y a des articles scientifiques publiés dans des journaux de haute valeur scientifique et qui utilise le “t.test” pour comparer des groupes de faible effectif (n=4).
    est ce que l’effectif n’est pas exigé pour faire un test paramétrique?
    merci encore une fois.

  2. Merci beaucoup claire , seulement j’ai du mal à calculer la valeur de “d” c’est a dire y’ a t’il un code pour l’avoir sous R ? Merci

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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.