Test de Student non-apparié avec R : Comparaison de moyennes de deux groupes d’échantillons indépendants
Introduction
Le test de student non-apparié permet de comparer deux groupes d’échantillons qui n’ont aucun lien (donc indépendants).
Un format simplifié de la fonction R à utiliser est :
t.test(x, y)
x et y correspondent, respectivement, aux deux séries de valeurs à comparer. Ce sont des vecteurs de type numéric.
Exemple de données
Pour illustrer l’utilisation du test de student non-apparié, on s’intéresse à savoir si le poids moyen des femmes est différents de celui des hommes. Pour cela, à titre d’exemple, on a pesé 10 femmes et 10 hommes pris au hasard dans la population. Leurs poids en kilogramme (kg) est montré dans le tableau ci-dessous. Le nombre d’individus considérés ici est bien évidemment faible. C’est juste pour illustrer le test de student.
Group | Poids (kg) | |
---|---|---|
1 | Femme | 42.10 |
2 | Femme | 53.80 |
3 | Femme | 30.00 |
4 | Femme | 45.80 |
5 | Femme | 57.70 |
6 | Femme | 59.20 |
7 | Femme | 82.40 |
8 | Femme | 66.20 |
9 | Femme | 66.90 |
10 | Femme | 51.20 |
11 | Homme | 80.70 |
12 | Homme | 85.10 |
13 | Homme | 88.60 |
14 | Homme | 81.70 |
15 | Homme | 69.80 |
16 | Homme | 79.50 |
17 | Homme | 107.20 |
18 | Homme | 69.30 |
19 | Homme | 80.90 |
20 | Homme | 63.00 |
Question : Le poids moyen des femmes est-il significativement différent de celui des hommes?
Pour répondre à cette question un test de Student non-apparié (ou indépendant) peut être utilisé.
A partir de la table de données ci-dessus vous avez deux méthodes pour faire le test de student en fonction de la structure des données.
Calcul du test de Student non-apparié avec R
1) Méthode 1 - Les données sont stockées dans deux vecteurs différents (x et y) :
# poids des femmes
x<- round(rnorm(10, mean=57, sd=15), 1)
x
[1] 53.9 24.0 55.9 27.8 37.5 56.8 47.0 31.7 76.2 49.1
# Poids des hommes
y <- round(rnorm(10, mean=75, sd=15), 1)
y
[1] 49.6 56.1 63.4 91.5 85.7 79.7 94.0 79.2 53.5 64.3
Dans ce cas le test de student peut être effectué avec le code R suivant :
res<-t.test(x,y)
res
Welch Two Sample t-test
data: x and y
t = -3.564, df = 17.99, p-value = 0.00222
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-40.87 -10.55
sample estimates:
mean of x mean of y
45.99 71.70
2) Méthode 2 - Les données sont stockées dans une table de type data.frame:
d<-as.data.frame(list(
group=c(rep("Femme", 10), rep("Homme", 10)),
poids=c(x, y)
))
head(d)
group poids
1 Femme 53.9
2 Femme 24.0
3 Femme 55.9
4 Femme 27.8
5 Femme 37.5
6 Femme 56.8
Dans cette configuration, le test de student peut être effectué en utilisant le code R suivant:
#res<-t.test(d$poids ~ d$group)
res<-t.test(poids ~ group, data=d)
res
Welch Two Sample t-test
data: poids by group
t = -3.564, df = 17.99, p-value = 0.00222
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-40.87 -10.55
sample estimates:
mean in group Femme mean in group Homme
45.99 71.70
Comme vous pouvez le constater, les deux méthodes donnent les mêmes résultats.
La p-value du test est de 0.0022. Ce qui est largement inférieur à 0.05. On conclut que le poids moyen des femmes est significativement différent de celui des hommes avec une p-value = 0.0022.
Pour rappel, le test de student n’est applicable que lorsque les deux groupes d’échantillons suivent des lois normales de variances égales.
Par défaut, la fonction t.test() de R suppose que les variances des deux groupes d’échantillons sont inégales et elle applique la correction de Welch. Le test t de Welch est une adaptation du test de student qui permet de comparer deux groupes d’échantillons de variances différentes.
Vous pouvez utiliser l’argument var.equal=TRUE pour indiquer l’égalité des variances des deux groupes d’échantillons. Cependant c’est à vous de vérifier cette hypothèse avant de l’utiliser.
Nous allons donc utiliser le test F de comparaison de variances pour évaluer l’égalité des variances des 2 groupes d’échantillons.
Le code R suivant peut être utilisé:
var.test(x,y)
F test to compare two variances
data: x and y
F = 0.958, num df = 9, denom df = 9, p-value = 0.95
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.2379 3.8568
sample estimates:
ratio of variances
0.958
La p-value du test F de comparaison de variance est de p-value = 0.95. Elle est largement supérieure à 0.05. Il n’y a donc aucune différence significative entre les variances des deux groupes d’échantillons. Par conséquent nous pouvons utiliser le t-test classique qui suppose l’égalité des variances.
Le code R suivant peut être utilisé :
res<-t.test(x, y, var.equal=TRUE)
res
Two Sample t-test
data: x and y
t = -3.564, df = 18, p-value = 0.002219
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-40.87 -10.55
sample estimates:
mean of x mean of y
45.99 71.70
Notez que la formule du test t de Welch est décrite ici et celle du test de Student là
Acceder aux valeurs retournées par la fonction t.test
Comme indiquer ici, on peut facilement accéder aux valeurs retournées par la fonction t.test():
# Affichage de la p-value
res$p.value
[1] 0.002219
# Affichage de la moyenne
res$estimate
mean of x mean of y
45.99 71.70
# Affichage de l'intervalle de confiance
res$conf.int
[1] -40.87 -10.55
attr(,"conf.level")
[1] 0.95
Test de Student non-apparié en ligne
Infos
Cette analyse a été faite avec R (ver. 3.1.0).
Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Montrez-moi un peu d'amour avec les like ci-dessous ... Merci et n'oubliez pas, s'il vous plaît, de partager et de commenter ci-dessous!