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

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).


Enjoyed this article? I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Twitter, Facebook or Linked In.

Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Avez vous aimé cet article? Je vous serais très reconnaissant si vous aidiez à sa diffusion en l'envoyant par courriel à un ami ou en le partageant sur Twitter, Facebook ou Linked In.

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!





Cette page a été vue 89890 fois