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 |
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
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
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]"
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