Test t de Student sur deux groupes indépendants - Plan S<A2>

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 les commandes :

> 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 les deux groupes, dans la situation de référence, avec un test bilatéral et en supposant l'égalité des variances dans les populations parentes :

> t.test(IB[,1], IB[,2],var.equal=TRUE)

Two Sample t-test

data: IB[, 1] and IB[, 2]
t = -0.3633, df = 58, p-value = 0.7177
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-6.596057 4.569361
sample estimates:
mean of x mean of y
17.79310 18.80645

Variantes :

Pour un test unilatéral :

> t.test(IB[,1], IB[,2],alternative="less",var.equal=TRUE)

Two Sample t-test

data: IB[, 1] and IB[, 2]
t = -0.3633, df = 58, p-value = 0.3588
alternative hypothesis: true difference in means is less than 0

Pour un test ne supposant pas l'égalité des variances :

> t.test(IB[,1], IB[,2],var.equal=FALSE)

Welch Two Sample t-test

data: IB[, 1] and IB[, 2]
t = -0.368, df = 52.857, p-value = 0.7143
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-6.536931 4.510234
sample estimates:
mean of x mean of y
17.79310 18.80645

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

> qt(.95,58)
[1] 1.671553
> qt(.05,58,lower.tail = FALSE)
[1] 1.671553

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

> t.test(IB[,1], IB[,2],var.equal=TRUE,conf.level=0.98)

Two Sample t-test

data: IB[, 1] and IB[, 2]
t = -0.3633, df = 58, p-value = 0.7177
alternative hypothesis: true difference in means is not equal to 0
98 percent confidence interval:
-7.685592 5.658896
sample estimates:
mean of x mean of y
17.79310 18.80645

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 peut alors être réalisé à l'aide des commandes suivantes :

> IB2 <- read.csv2("Interv-breve-par-groupe.csv")
> t.test(IB2[,2] ~ IB2[,1],var.equal=TRUE)

Two Sample t-test

data: IB2[, 2] by IB2[, 1]
t = 0.3633, df = 58, p-value = 0.7177
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-4.569361 6.596057
sample estimates:
mean in group Controle mean in group IB
18.80645 17.79310

Liste des résultats fournis par t.test :

> unlist(t.test(IB2[,2] ~ IB2[,1],var.equal=TRUE))
statistic.t parameter.df p.value
"0.363342742421930" "58" "0.717669843478805"
conf.int1 conf.int2 estimate.mean in group Controle
"-4.5693606714984" "6.59605700075312" "18.8064516129032"
estimate.mean in group IB null.value.difference in means alternative
"17.7931034482759" "0" "two.sided"
method data.name
" Two Sample t-test" "IB2[, 2] by IB2[, 1]"

Calcul de la statistique à partir des paramètres (moyennes, écarts types corrigés et tailles d'échantillons)

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])
[1] 17.79310
> sqrt(var(IB2[1:29,2]))
[1] 8.478457
> mean(IB2[30:60,2])
[1] 18.80645
> sqrt(var(IB2[30:60,2]))
[1] 12.57887
> tsum.test(mean.x=17.79310,s.x=8.478457,n.x=29,mean.y=18.80645,s.y=12.57887,n.y=31,var.equal=TRUE)

Standard Two-Sample t-Test

data: Summarized x and y
t = -0.3633, df = 58, p-value = 0.7177
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-6.596059 4.569359
sample estimates:
mean of x mean of y
17.79310 18.80645