(Ceci est une réponse assez longue, il y a un résumé à la fin)
Vous n'avez pas tort de comprendre ce que sont les effets aléatoires imbriqués et croisés dans le scénario que vous décrivez. Cependant, votre définition des effets aléatoires croisés est un peu étroite. Une définition plus générale des effets aléatoires croisés est simplement: non imbriquée . Nous examinerons cela à la fin de cette réponse, mais l'essentiel de la réponse portera sur le scénario que vous avez présenté, celui des salles de classe dans les écoles.
D'abord notez que:
L'imbrication est une propriété des données, ou plutôt du modèle expérimental, pas du modèle.
Aussi,
Les données imbriquées peuvent être codées d'au moins deux manières différentes, ce qui est au cœur du problème que vous avez détecté.
Le jeu de données dans votre exemple est plutôt volumineux. Je vais donc utiliser un autre exemple d’écoles d’Internet pour expliquer les problèmes. Mais prenons d'abord l'exemple suivant simplifié:
Ici, nous avons des classes imbriquées dans des écoles, ce qui est un scénario familier. Le point important ici est que, entre chaque école, les classes ont le même identifiant, même si elles sont distinctes si elles sont imbriquées . Class1
apparaît dans School1
, School2
et School3
. Toutefois, si les données sont imbriquées, Class1
in School1
n'est pas la même unité de mesure que Class1
dans School2
et School3
. S'ils étaient identiques, alors nous aurions cette situation:
ce qui signifie que chaque classe appartient à chaque école. La première est une conception imbriquée, et la dernière est une conception croisée (certains l'appelleraient également une adhésion multiple), et nous les formulerions en lme4
utilisant:
(1|School/Class)
ou équivalent (1|School) + (1|Class:School)
et
(1|School) + (1|Class)
respectivement. En raison de l'ambiguïté de savoir s'il existe une imbrication ou un croisement d'effets aléatoires, il est très important de spécifier correctement le modèle car ces modèles produiront des résultats différents, comme nous le montrerons ci-dessous. De plus, il n’est pas possible de savoir, simplement en inspectant les données, si nous avons des effets aléatoires imbriqués ou croisés. Ceci ne peut être déterminé qu'avec la connaissance des données et du plan expérimental.
Mais prenons d’abord un cas où la variable de classe est codée de manière unique d’une école à l’autre:
Il n'y a plus aucune ambiguïté concernant la nidification ou le croisement. La nidification est explicite. Voyons maintenant ceci avec un exemple dans R, où nous avons 6 écoles (étiquetées I
- VI
) et 4 classes dans chaque école (étiquetées a
à d
):
> dt <- read.table("http://bayes.acs.unt.edu:8083/BayesContent/class/Jon/R_SC/Module9/lmm.data.txt",
header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
> # data was previously publicly available from
> # http://researchsupport.unt.edu/class/Jon/R_SC/Module9/lmm.data.txt
> # but the link is now broken
> xtabs(~ school + class, dt)
class
school a b c d
I 50 50 50 50
II 50 50 50 50
III 50 50 50 50
IV 50 50 50 50
V 50 50 50 50
VI 50 50 50 50
Cette tabulation croisée montre que chaque identifiant de classe apparaît dans chaque école, ce qui correspond à votre définition des effets aléatoires croisés (dans ce cas, nous avons des effets aléatoires totalement croisés , par opposition à partiellement croisés, car chaque classe a lieu dans chaque école). C'est donc la même situation que dans le premier chiffre ci-dessus. Cependant, si les données sont vraiment imbriquées et non croisées, nous devons indiquer explicitement lme4
:
> m0 <- lmer(extro ~ open + agree + social + (1 | school/class), data = dt)
> summary(m0)
Random effects:
Groups Name Variance Std.Dev.
class:school (Intercept) 8.2043 2.8643
school (Intercept) 93.8421 9.6872
Residual 0.9684 0.9841
Number of obs: 1200, groups: class:school, 24; school, 6
Fixed effects:
Estimate Std. Error t value
(Intercept) 60.2378227 4.0117909 15.015
open 0.0061065 0.0049636 1.230
agree -0.0076659 0.0056986 -1.345
social 0.0005404 0.0018524 0.292
> m1 <- lmer(extro ~ open + agree + social + (1 | school) + (1 |class), data = dt)
summary(m1)
Random effects:
Groups Name Variance Std.Dev.
school (Intercept) 95.887 9.792
class (Intercept) 5.790 2.406
Residual 2.787 1.669
Number of obs: 1200, groups: school, 6; class, 4
Fixed effects:
Estimate Std. Error t value
(Intercept) 60.198841 4.212974 14.289
open 0.010834 0.008349 1.298
agree -0.005420 0.009605 -0.564
social -0.001762 0.003107 -0.567
Comme prévu, les résultats diffèrent car il m0
s'agit d'un modèle imbriqué et m1
croisé.
Maintenant, si nous introduisons une nouvelle variable pour l'identifiant de classe:
> dt$classID <- paste(dt$school, dt$class, sep=".")
> xtabs(~ school + classID, dt)
classID
school I.a I.b I.c I.d II.a II.b II.c II.d III.a III.b III.c III.d IV.a IV.b
I 50 50 50 50 0 0 0 0 0 0 0 0 0 0
II 0 0 0 0 50 50 50 50 0 0 0 0 0 0
III 0 0 0 0 0 0 0 0 50 50 50 50 0 0
IV 0 0 0 0 0 0 0 0 0 0 0 0 50 50
V 0 0 0 0 0 0 0 0 0 0 0 0 0 0
VI 0 0 0 0 0 0 0 0 0 0 0 0 0 0
classID
school IV.c IV.d V.a V.b V.c V.d VI.a VI.b VI.c VI.d
I 0 0 0 0 0 0 0 0 0 0
II 0 0 0 0 0 0 0 0 0 0
III 0 0 0 0 0 0 0 0 0 0
IV 50 50 0 0 0 0 0 0 0 0
V 0 0 50 50 50 50 0 0 0 0
VI 0 0 0 0 0 0 50 50 50 50
La tabulation croisée montre que chaque niveau de classe ne se produit que dans un seul niveau d'école, selon votre définition de la nidification. C'est également le cas de vos données, mais il est difficile de montrer cela avec vos données car elles sont très rares. Les deux formulations de modèle produiront désormais le même résultat (celui du modèle imbriqué m0
ci-dessus):
> m2 <- lmer(extro ~ open + agree + social + (1 | school/classID), data = dt)
> summary(m2)
Random effects:
Groups Name Variance Std.Dev.
classID:school (Intercept) 8.2043 2.8643
school (Intercept) 93.8419 9.6872
Residual 0.9684 0.9841
Number of obs: 1200, groups: classID:school, 24; school, 6
Fixed effects:
Estimate Std. Error t value
(Intercept) 60.2378227 4.0117882 15.015
open 0.0061065 0.0049636 1.230
agree -0.0076659 0.0056986 -1.345
social 0.0005404 0.0018524 0.292
> m3 <- lmer(extro ~ open + agree + social + (1 | school) + (1 |classID), data = dt)
> summary(m3)
Random effects:
Groups Name Variance Std.Dev.
classID (Intercept) 8.2043 2.8643
school (Intercept) 93.8419 9.6872
Residual 0.9684 0.9841
Number of obs: 1200, groups: classID, 24; school, 6
Fixed effects:
Estimate Std. Error t value
(Intercept) 60.2378227 4.0117882 15.015
open 0.0061065 0.0049636 1.230
agree -0.0076659 0.0056986 -1.345
social 0.0005404 0.0018524 0.292
Il est à noter que les effets aléatoires croisés ne doivent pas nécessairement se produire dans le même facteur - dans ce qui précède, le croisement était complètement à l'intérieur de l'école. Cependant, cela ne doit pas forcément être le cas, et très souvent ce n’est pas le cas. Par exemple, restons dans un scénario scolaire: si au lieu des classes dans les écoles, nous avions des élèves dans les écoles et si nous nous intéressions également aux médecins auprès desquels les élèves étaient inscrits, nous aurions également des enfants imbriqués dans des médecins. Il n'y a pas de nidification d'écoles chez les médecins, ou vice versa, c'est donc aussi un exemple d'effets aléatoires croisés, et nous disons que les écoles et les médecins sont croisés. Un scénario similaire dans lequel des effets aléatoires croisés se produisent est lorsque des observations individuelles sont imbriquées simultanément dans deux facteurs, ce qui se produit généralement avec des mesures dites répétées.sous-point de données. En règle générale, chaque sujet est mesuré / testé plusieurs fois avec / sur différents éléments et ces mêmes éléments sont mesurés / testés par différents sujets. Ainsi, les observations sont regroupées dans les sujets et dans les éléments, mais les éléments ne sont pas imbriqués dans les sujets ou inversement. Encore une fois, on dit que les sujets et les objets sont croisés .
Résumé: TL; DR
La différence entre les effets aléatoires croisés et imbriqués réside dans le fait que des effets aléatoires imbriqués se produisent lorsqu'un facteur (variable de regroupement) apparaît uniquement dans un niveau particulier d'un autre facteur (variable de regroupement). Ceci est spécifié dans lme4
avec:
(1|group1/group2)
où group2
est niché à l'intérieur group1
.
Les effets aléatoires croisés sont simplement: non imbriqués . Cela peut se produire avec trois variables de regroupement (facteurs) ou un facteur est imbriqué séparément dans les deux autres, ou avec deux facteurs ou plus où des observations individuelles sont imbriquées séparément dans les deux facteurs. Ceux-ci sont spécifiés dans lme4
avec:
(1|group1) + (1|group2)
interaction(city, dealer)
?