(Questa è una risposta abbastanza lunga, c'è un riassunto alla fine)
Non ti sbagli nel comprendere quali sono gli effetti casuali nidificati e incrociati nello scenario che descrivi. Tuttavia, la tua definizione di effetti casuali incrociati è un po 'stretta. Una definizione più generale di effetti casuali incrociati è semplicemente: non nidificata . Vedremo questo alla fine di questa risposta, ma la maggior parte della risposta si concentrerà sullo scenario che hai presentato, delle aule all'interno delle scuole.
Prima nota che:
L'annidamento è una proprietà dei dati, o meglio del disegno sperimentale, non del modello.
Anche,
I dati nidificati possono essere codificati in almeno 2 modi diversi e questo è al centro del problema riscontrato.
Il set di dati nel tuo esempio è piuttosto grande, quindi userò un altro esempio di scuole da Internet per spiegare i problemi. Ma prima, considera il seguente esempio troppo semplificato:
Qui abbiamo classi nidificate nelle scuole, che è uno scenario familiare. Il punto importante qui è che, tra ogni scuola, le classi hanno lo stesso identificatore, anche se sono distinte se nidificate . Class1
appare in School1
, School2
e School3
. Tuttavia, se i dati sono nidificati, allora Class1
in nonSchool1
è la stessa unità di misura di in e . Se fossero uguali, avremmo questa situazione:Class1
School2
School3
il che significa che ogni classe appartiene a ogni scuola. Il primo è un disegno nidificato e il secondo è un disegno incrociato (alcuni potrebbero anche chiamarlo appartenenza multipla), e noi li formuleremmo lme4
usando:
(1|School/Class)
o equivalentemente (1|School) + (1|Class:School)
e
(1|School) + (1|Class)
rispettivamente. A causa dell'ambiguità del fatto che ci siano annidamenti o incroci di effetti casuali, è molto importante specificare correttamente il modello poiché questi modelli produrranno risultati diversi, come mostreremo di seguito. Inoltre, non è possibile sapere, semplicemente ispezionando i dati, se abbiamo annidato o incrociato effetti casuali. Questo può essere determinato solo con la conoscenza dei dati e il disegno sperimentale.
Ma prima consideriamo un caso in cui la variabile Class è codificata in modo univoco tra le scuole:
Non c'è più alcuna ambiguità riguardo al nidificazione o all'attraversamento. L'annidamento è esplicito. Vediamo ora questo con un esempio in R, dove abbiamo 6 scuole (etichettate I
- VI
) e 4 classi all'interno di ogni scuola (etichettate a
come 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
Da questa tabulazione incrociata possiamo vedere che ogni ID di classe appare in ogni scuola, il che soddisfa la tua definizione di effetti casuali incrociati (in questo caso abbiamo effetti casuali incrociati completamente , piuttosto che parzialmente , perché ogni classe si verifica in ogni scuola). Quindi questa è la stessa situazione che abbiamo avuto nella prima figura sopra. Tuttavia, se i dati sono realmente nidificati e non incrociati, è necessario indicare esplicitamente 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
Come previsto, i risultati differiscono perché m0
è un modello nidificato mentre m1
è un modello incrociato.
Ora, se introduciamo una nuova variabile per l'identificatore di 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 tabulazione incrociata mostra che ogni livello di classe si verifica solo in un livello di scuola, secondo la tua definizione di annidamento. Questo è anche il caso dei tuoi dati, tuttavia è difficile dimostrarlo con i tuoi dati perché è molto scarso. Entrambe le formulazioni del modello produrranno ora lo stesso output (quello del modello nidificato m0
sopra):
> 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
Vale la pena notare che gli effetti casuali incrociati non devono verificarsi all'interno dello stesso fattore - in quanto sopra la traversata era completamente all'interno della scuola. Tuttavia, questo non deve essere il caso, e molto spesso non lo è. Ad esempio, rimanendo fedeli allo scenario scolastico, se invece delle lezioni all'interno delle scuole abbiamo alunni all'interno delle scuole e fossimo interessati anche ai dottori con cui erano registrati gli alunni, allora avremmo anche nidificazione degli alunni all'interno dei dottori. Non c'è nidificazione delle scuole all'interno dei medici o viceversa, quindi questo è anche un esempio di effetti casuali incrociati e diciamo che scuole e dottori sono incrociati. Uno scenario simile in cui si verificano effetti casuali incrociati è quando le singole osservazioni sono nidificate contemporaneamente in due fattori, il che si verifica comunemente con le cosiddette misure ripetutedati oggetto . In genere ogni soggetto viene misurato / testato più volte con / su articoli diversi e questi stessi articoli vengono misurati / testati da soggetti diversi. Pertanto, le osservazioni sono raggruppate all'interno di soggetti e all'interno di oggetti, ma gli oggetti non sono nidificati all'interno di soggetti o viceversa. Ancora una volta, diciamo che i soggetti e gli oggetti sono incrociati .
Sommario: TL; DR
La differenza tra effetti casuali incrociati e nidificati è che si verificano effetti casuali nidificati quando un fattore (variabile di raggruppamento) appare solo all'interno di un determinato livello di un altro fattore (variabile di raggruppamento). Questo è specificato in lme4
con:
(1|group1/group2)
dove group2
è nidificato all'interno group1
.
Gli effetti casuali incrociati sono semplicemente: non nidificati . Ciò può verificarsi con tre o più variabili di raggruppamento (fattori) in cui un fattore è nidificato separatamente in entrambi gli altri o con due o più fattori in cui le singole osservazioni sono nidificate separatamente all'interno dei due fattori. Questi sono specificati lme4
con:
(1|group1) + (1|group2)