Skip to content

Analyse de variance à deux facteur (two-way ANOVA)

Introduction

L'analyse de variance (ANOVA) à deux facteurs est un test paramétrique permettant de déterminer l'effet de plusieurs facteurs sur une variable dépendante.

2 VI inter-sujet

Conditions d'application

Conditions d'application

Pour pouvoir être appliqué, ce test nécessite que les échantillons soient issus de distributions normales et que leurs variances soient homogènes.

Exécution du test

Syntaxe R
# Soit y la variable dépendante et w et x les facteurs
m <- aov(data$y ~ data$x*data$w)
summary(m)
Syntaxe R
# Soit y la variable dépendante et w et x les facteurs
m <- aov(data$y ~ data$x+data$w)
summary(m)
Syntaxe R
# Soit y la variable dépendante et w et x les facteurs
m <- aov(data$y ~ data$x:data$w)
summary(m)

Cependant, ce résultat ne nous donne pas d'informations suffisantes. En effet, il nous informe uniquement qu'il existe une différence statistiquement significative entre certaines modalités de notre facteur, alors que nous cherchons à savoir pour quelles modalités il y a un effet. Pour cela, nous devons réaliser un test post-hoc, dans ce cas le test HSD de Tukey:

Syntaxe R
TukeyHSD(m)

Taille d'effet

Pour calculer la taille d'effet, nous utilisons le coefficient η2 (êta carré):

Syntaxe R
library(lsr)
etaSquared(m)

Exemple

Voici nos données et notre fichier d'analyse:

Fichiers
two-way-anova.csv
two-way-anova.R

Commençons par activer les librairies nécessaires dans R:

Activation des librairies
library(lsr)
library(RcmdrMisc)

Puis, importons nos données:

Importation des données
df <- read.csv("two-way-anova.csv")
df$groupe <- as.factor(df$groupe)
df$age <- as.factor(df$age)

Nous pouvons maintenant visualiser nos données dans un diagramme:

Diagramme des moyennes
plotMeans(
  df$score, 
  df$groupe, 
  df$age,
  ylab="Score", 
  xlab="Groupe", 
  legend.lab="Âge"
)

Représentation graphique de nos données

Réalisons maintenant notre ANOVA à deux facteurs avec interaction:

ANOVA à deux facteur avec interaction
m <- aov(score ~ groupe*age, data=df)
summary(m)
Df Sum Sq Mean Sq F value Pr(>F)
groupe 1 2476 2476 2338.73 <2e-16 ***
age 1 10199 10199 9632.68 <2e-16 ***
groupe:age 1 2 2 1.61 0.205
Residuals 396 419 1

Nous pouvons donc conclure que les facteurs age et groupe ont tous deux un effet sur la variable dépendante score, mais que l'interaction de ces deux facteurs n'a elle aucun effet.

Pour connaître entre quelles modalités des facteurs cet effet s'exprime, nous réalisons un test post-hoc:

Test HSD de Tukey
TukeyHSD(m)
$groupe diff p adj
experimental-controle 4.976227 0
$age diff p adj
child-adult -10.09913 0
$groupe:age diff p adj
experimental:adult-controle:adult 5.106776 0
controle:child-controle:adult -9.968578 0
experimental:child-controle:adult -5.122900 0
controle:child-experimental:adult -15.075354 0
experimental:child-experimental:adult -10.229677 0
experimental:child-controle:child 4.845677 0

Grâce à ces résultats, nous pouvons conclure qu'il existe une différence significative entre toutes les modalités des différents facteurs.

Il ne reste maintenant plus qu'à calculer la taille d'effet:

Coefficient êta carré
etaSquared(m)
eta.sq eta.sq.part
groupe 0.189079550 0.8551959
age 0.778774850 0.9605133
groupe:age 0.000130135 0.0040483

La taille d'effet est grande à la fois pour le facteur groupe, ainsi que pour le facteur age. Puisque nous savons que l'interaction n'a aucun effet, nous n'avons même pas besoin de regarder la taille d'effet pour cette dernière.

Nous pouvons donc conclure qu'il existe une grande différence significative entre les différents groupes (F(1,396) = 2338.73, p<.001, η2p = 0.85) ainsi qu'entre les différents âges (F(1,396) = 9632.68, p<.001, η2p = 0.96), mais il n'y a cependant pas d'effet d'interaction entre les deux (F(1,396) = 1.61, p = .205).