Un fichier de données
Travaillons sur une enquête de satisfactions dans un hôpital, récupéré lors d’un cours de FUN (France Unité Numérique). Les fichiers sont disponibles ici.
Par la suite, ces données seront stockées dans la variable satis .
Dans ces données comme souvent, les observations sont en lignes et les variables en colonnes.
Un exemple
On cherche à savoir s’il y a une différence d’âge entre les patients recommandant l’hôpital et les autres.
Préparons les données.
satis$recommander.b<-ifelse(satis$recommander==2,1,0)
Le test de Student
Ce test sert à comparer les moyennes d’une variable quantitative pour deux groupes d’une population (déterminer par une variable binaire).
Pour pouvoir l’utiliser, il faut respecter les conditions suivantes :
– les effectifs doivent être raisonnables (n>30) ;
– la variable quantitative doit suivre une loi normale ;
– les variances des deux groupes doivent être voisines.
On utilise l’instruction t.test.
Vérifions les conditions
– La loi normale de l’âge
hist(satis$age)
On voit que l’âge suit environ une loi normale.
– Les effectifs dans les sous-groupes
library(prettyR) tapply(satis$age,satis$recommander.b,valid.n)
0 1
136 269
– Les écart-types dans les sous-groupes
tapply(satis$age,satis$recommander.b,sd)
0 1
18.38549 16.10392
Les écart-types ne sont pas trop éloignés.
Toutes les conditions sont respectées
Application du test de Student
NB : attention au ~
qui remplace la virgule habituelle !
t.test(satis$age~satis$recommander.b,var.equal=TRUE)
Two Sample t-test
data: satis$age by satis$recommander.b
t = -1.2159, df = 403, p-value = 0.2247
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-5.658504 1.333772
sample estimates:
mean in group 0 mean in group 1
53.55882 55.72119
La moyenne d’âge est supérieure dans le groupe qui recommande l’établissement, mais la valeur de $p$ est supérieure à $5~\%$.
Le test de Wilcoxon
Si le test de Student n’est pas applicable, on peut utiliser le test de Wilcoxon.
Celui-ci ne donne pas les moyennes. Commençons par les calculer :
tapply(satis$age,satis$recommander.b,mean)
0 1
53.55882 55.72119
Appliquons le test.
NB : attention au ~
qui remplace la virgule habituelle !
wilcox.test(satis$age~satis$recommander.b)
Wilcoxon rank sum test with continuity correction
data: satis$age by satis$recommander.b
W = 17023.5, p-value = 0.2543
alternative hypothesis: true location shift is not equal to 0
La valeur de $p$ est aussi supérieure à $5~\%$.