Test t de Student sur deux groupes appareillés - Plan S*A2

Exemple 1

Enoncé :

Des chercheurs ont réalisé une expérience visant à mettre en évidence l'effet d'une séance d'intervention motivante brève sur le comportement relatif à la consommation d'alcool.

Soixante sujets, qui ont déclaré avoir bu occasionnellement à 2 reprises ou plus au cours du mois précédant l'expérience ont été affectés au hasard soit dans un groupe contrôle, sans traitement (31 sujets) soit dans un groupe expérimental dit "groupe d'intervention brève" (29 sujets).

Le comportement des sujets est mesuré par la variable "nombre de verres bus par semaine".

Les sujets sont évalués avant l'expérience (condition de référence). Chacun des sujets du groupe d'intervention brève bénéficie d'un entretien personnalisé relatif aux problèmes liés à l'alcool. Six semaines après l'entretien, l'ensemble des sujets est de nouveau évalué.

Les données sont les suivantes :

Ref_IB Ref_Controle Suivi-IB Suivi-Controle
0 2 14 17
22 24 6 24
22 20 22 19
36 41 1 11
18 24 14 1
24 31 1 20
15 30 15 8
18 6 0 14
13 2 7 34
14 9 8 33
31 15 12 16
33 37 13 14
24 34 19 13
8 32 20 22
24 9 10 11
12 31 1 15
22 11 5 15
26 5 9 3
16 36 12 9
1 22 24 9
17 19 15 27
23 19 14 23
5 1 21 6
12 21 3 14
18 26 11 8
18 36 19 15
13 1 23 17
14 22 15 22
17 5 6 17

10
23

2
9

Données structurées "par variable" :

Ces données sont enregistrées au format .csv d'Excel dans le fichier : Intv-breve.csv, avec la structure indiquée ci-dessus.

Comparer les moyennes des deux groupes dans la situation de référence :

On peut charger les données dans R à l'aide de la commande :

> IB <- read.csv2("Interv-breve.csv")

N.B. read.csv2 permet de lire des données au format "table", avec les spécifications par défaut suivantes : séparateur = ";", séparateur décimal = ",".

Les données peuvent aussi être entrées par des commandes telles que :

> X1 <- c(0,22,22,36,18,24,15,18,13,14,31,33,24,8,24,12,22,26,16,1,17,23,5,12,18,18,13,14,17)
> X2 <- c(2,24,20,41,24,31,30,6,2,9,15,37,34,32,9,31,11,5,36,22,19,19,1,21,26,36,1,22,5,10,2)

Pour comparer le score dans la situation de référence et le score lors du suivi, avec un test bilatéral :

> t.test(IB[,1], IB[,3],paired=TRUE)

Paired t-test

data: IB[, 1] and IB[, 3]
t = 2.546, df = 28, p-value = 0.01668
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
1.186147 10.951784
sample estimates:
mean of the differences
6.068966

Variantes :

Pour un test unilatéral :

> t.test(IB[,1], IB[,3],alternative="greater",paired=TRUE)

Paired t-test

data: IB[, 1] and IB[, 3]
t = 2.546, df = 28, p-value = 0.008342
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
2.013955 Inf
sample estimates:
mean of the differences
6.068966

Pour obtenir la valeur critique de la statistique au seuil de 5%, pour un test unilatéral avec 58 ddl:

> qt(.95,28)
[1] 1.701131
> qt(.05,28,lower.tail=FALSE)
[1] 1.701131

Pour modifier le degré de confiance associé à l'intervalle de confiance :

> t.test(IB[,1], IB[,3],paired=TRUE,conf.level=0.98)

Paired t-test

data: IB[, 1] and IB[, 3]
t = 2.546, df = 28, p-value = 0.01668
alternative hypothesis: true difference in means is not equal to 0
98 percent confidence interval:
0.1880072 11.9499238
sample estimates:
mean of the differences
6.068966

Données structurées par groupe

Le test peut également être réalisé sur des données structurées "par groupe".

Un extrait des données :

Groupe Ref Suivi
IB 0 14
IB 22 6
IB 22 22
... ... ...
Controle 2 17
Controle 24 24
Controle 20 19
... ... ...

Ces données ont été enregistrées dans le fichier Interv-breve-par-groupe.csv

Le test, pour les données relatives au groupe "Intervention Brève" (sujets 1 à 29) peut alors être réalisé à l'aide des commandes suivantes :

> t.test(IB2[1:29,2],IB2[1:29,3],paired=TRUE)

Paired t-test

data: IB2[1:29, 2] and IB2[1:29, 3]
t = 2.546, df = 28, p-value = 0.01668
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
1.186147 10.951784
sample estimates:
mean of the differences
6.068966

Liste des résultats fournis par t.test :

> unlist(t.test(IB2[1:29,2],IB2[1:29,3],paired=TRUE))
statistic.t parameter.df p.value
"2.54601161708515" "28" "0.0166841731869606"
conf.int1 conf.int2 estimate.mean of the differences
"1.18614714147174" "10.9517838930110" "6.06896551724138"
null.value.difference in means alternative method
"0" "two.sided" "Paired t-test"
data.name
"IB2[1:29, 2] and IB2[1:29, 3]"

Calcul de la statistique à partir des paramètres (moyenne des différences, écart type corrigé des différences et taille d'échantillon)

Il s'agit de la commande tsum.test, qui se trouve dans le package BSDA, qui dépend lui-même du package e1071.

> library(BSDA)
Loading required package: e1071
Loading required package: class

Attaching package: 'BSDA'

> mean(IB2[1:29,2]-IB2[1:29,3])
[1] 6.068966
> sqrt(var(IB2[1:29,2]-IB2[1:29,3]))
[1] 12.83670
> tsum.test(mean.x=6.068966,s.x=12.83670,n.x=29)

One-sample t-Test

data: Summarized x
t = 2.546, df = 28, p-value = 0.01668
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
1.186146 10.951786
sample estimates:
mean of x
6.068966

Exemple 2

Enoncé :

Dans une recherche de psychologie, on a présenté à chaque sujet des photographies de chiens, de diverses races, pour moitié à poils courts et pour moitié à poils longs. Chaque sujet évalue le chien présenté en cochant l'une des 6 cases d'une échelle d'attirance. Les évaluations ont été codées numériquement de 0 (faible attirance) à 5 (forte attirance). Dans le tableau ci-dessous, on donne pour chacun des 16 sujets les deux valeurs moyennes des évaluations concernant les deux types de chiens.

On utilise le package Rcmdr et on saisit les données à l'aide de l'éditeur :

> PLPC <- edit(as.data.frame(NULL))

> names(PLPC)[c(1,2)] <- c("Poils_Longs","Poils_Courts")

Les données peuvent être visualisées par :

> PLPC
Poils_Longs Poils_Courts
1 3.50 2.50
2 2.75 1.25
3 3.50 2.75
4 2.75 0.50
5 1.50 2.00
6 3.00 3.00
7 4.00 2.00
8 3.00 2.00
9 2.75 2.50
10 3.25 0.75
11 4.00 0.50
12 3.00 1.00
13 3.75 1.50
14 4.00 1.75
15 4.00 2.00
16 3.25 2.00

Le test lui-même :


> t.test(PLPC$Poils_Longs, PLPC$Poils_Courts, alternative='two.sided', conf.level=.95, paired=TRUE)

Paired t-test

data: PLPC$Poils_Longs and PLPC$Poils_Courts
t = 5.7426, df = 15, p-value = 3.890e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.9432502 2.0567498
sample estimates:
mean of the differences
1.5

Lien vers le Workspace correspondant : PLPC.Rdata