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.

La fonction t.test est d?crite en d?tails ici.

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.


Dans le r?sultat ci-dessus : t est la statistique de student (t = -3.5638), df est le degr? de libert? (df= 17.9917), p-value est le degr? de significativit? du test (p-value = 0.0022). L?intervalle de confiance de la diff?rence des moyennes ? 95% est ?galement montr?e (intervalle de confiance= [-40.8668, -10.5532]); et enfin, on a la valeur moyenne des deux groupes (poids moyen des femmes = 45.99, poids moyen des hommes =71.7).


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


Noter qu?un logiciel web est disponible ici pour faire le test de Student non-appari? en ligne sans aucune installation.


Infos

Cette analyse a ?t? faite avec R (ver. 3.1.0).