11.3 Modèle croisé complet

Le modèle ANOVA que nous venons de faire s’appelle un modèle croisé parce que les mesures sont effectuées pour chaque combinaison des niveaux des deux variables facteurs explicatives, et ce, de manière indépendante (les observations d’un niveau ne sont pas dépendantes de celles d’un autre niveau)48.

crabs2 %>.%
  count(., species, sex) %>.%
  collect_dtx(.) # Nécessaire car count() est une fonction tidy
# # A data.table: 4 x 3
#   species sex       n
#   <fct>   <fct> <int>
# 1 B       F        50
# 2 B       M        50
# 3 O       F        50
# 4 O       M        50

Le modèle croisé sans interactions que nous avions utilisés est cependant incomplet puisque, pour considérer tous les cas possibles, il faut aussi considérer que ces interactions puissent exister et les inclure directement dans le modèle. Le modèle complet s’écrit comme ceci :

\[y_{ijk} = \mu + \tau1_j + \tau2_k + \tau1\tau2_{jk} + \epsilon_i \mathrm{\ avec\ } \epsilon \sim N(0, \sigma)\]

avec le nouveau terme \(\tau1\tau2_{jk}\) qui correspond à la distance entre la kème moyenne générale (la moyenne quel que soit j) et la moyenne particulière pour les observations des populations particulières à k et j simultanément. Ce modèle permet ainsi que chaque moyenne \(\bar{y}_{jk}\) puisse différer librement, et donc, autorise les interactions. Toujours considérant les trois variables y, fact1 et fact2, ce modèle s’écrit dans R comme suit :

\[y \sim fact1 + fact2 + fact1:fact2\]

Avec \(fact1:fact2\) étant le terme d’interactions. On peut aussi le simplifier en utilisant * à la place de + entre les deux variables facteurs, ce qui signifie implicitement de tenir également compte des interactions :

\[y \sim fact1 * fact2\]

Cette fois-ci, la décomposition de la variable se fait en quatre étapes : (1) depuis la moyenne générale µ vers les jèmes moyennes pour fact1, ensuite (2) de ces moyennes vers les kèmes moyennes pour fact2, puis (3) de ces dernières vers la moyenne particulière pour le sous-groupe jk, et enfin (4) les résidus \(\epsilon_i\) pour chaque observation. Voyons ce que donne ce modèle complet sur nos données crabs2.

anova(crabs2_anova2comp <- lm(data = crabs2, aspect5 ~ species * sex))
# Analysis of Variance Table
# 
# Response: aspect5
#              Df     Sum Sq    Mean Sq  F value    Pr(>F)    
# species       1 0.00002753 0.00002753  17.0913 5.279e-05 ***
# sex           1 0.00069935 0.00069935 434.1610 < 2.2e-16 ***
# species:sex   1 0.00000052 0.00000052   0.3236    0.5701    
# Residuals   196 0.00031572 0.00000161                       
# ---
# Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Le tableau de l’ANOVA se présente de manière similaire au modèle sans interactions, mais avec une ligne supplémentaire indiquée species:sex qui représente les interactions. Un troisième test est réalisé selon le même principe, c’est-à-dire que les carrés moyens (Mean Sq) en ligne 3 sont divisés par les carrés moyens des résidus en ligne 4 pour donner comme valeur F 0.00000052 / 0.00000161 = 0.323. Ensuite la comparaison à la distribution F théorique nous donne une valeur P de 0.57. Notez que les degrés de liberté (1 et 196) ont changé de même que les nombres dans les deux lignes du dessus.

Notre analyse confirme qu’il n’y a pas d’interactions. La valeur P (0,57) en regard du terme species:sex correspondant est très largement supérieure à \(\alpha\) de 5%. Les tests relatifs à species et sex donnent des valeurs légèrement différentes de notre modèle sans interactions. Les différences entre les deux seront d’autant plus importantes que les interactions sont fortes. Les conclusions restent les mêmes que précédemment, et ici, nous démontrons par un test d’hypothèse que les interactions ne sont pas significatives. Naturellement, la description des données, les vérifications (homoscédasticité, distribution Normale ou quasi-Normale des résidus) et les analyses “post-hoc” en cas de rejet de \(H_0\) sont à réaliser ici aussi. Nous les avons déjà faites plus haut à peu de choses près (les résultats sont ici très proches de ceux du modèle sans interactions, puisque ces dernières sont négligeables).

Faites attention à un piège fréquent lorsque vous avez des mesures multiples sur les mêmes individus. Par exemple, si vous étudiez trois populations avec disons, cinq réplicas par population et que vous dénombrez des cellules marquées sur dix coupes histologiques réalisées chaque fois dans un organe du même individu, vous aurez 3x5x10 = 150 mesures, mais vous ne pouvez pas utiliser une ANOVA à deux facteurs croisés car les 150 observations ne sont pas indépendantes les unes des autres. Vous n’avez jamais mesuré que 15 individus au total. Si vous analysez ces données comme si vous en aviez mesuré 150, votre analyse sera incorrecte. Il s’agit ici d’une erreur qui s’appelle la pseudo-réplication. Vous devrez utiliser d’autres modèles comme le modèle à facteurs hiérarchisés (voir section suivante) ou le modèle à mesures répétées (voir encore après).

Conditions d’application

Les conditions d’application sont les mêmes que pour l’ANOVA à deux facteurs sans interactions, sauf qu’ici, les interactions sont bien évidemment permises.

À vous de jouer !
h5p

Effectuez maintenant les exercices du tutoriel A11La_anova2 (ANOVA à 2 facteurs).

BioDataScience1::run("A11La_anova2")
Pour en savoir plus
  • Une page en français qui explique l’ANOVA à deux facteurs. Suivez les liens pour la suite et pour l’application dans R.
À vous de jouer !

Réalisez le travail A11Ia_anova2, partie I.

Travail individuel pour les étudiants inscrits au cours de Science des Données Biologiques I : inférence à l’UMONS à terminer avant le 2023-05-02 23:59:59.

Initiez votre projet GitHub Classroom

Voyez les explications dans le fichier README.md, partie I.


  1. De plus, nous avons ici un plan balancé puisque le nombre de réplicas pour chaque niveau est le même. C’est une situation optimale qu’il faut toujours chercher à atteindre pour une ANOVA, même si un nombre différent d’observations par niveau est également accepté.↩︎