(Esta es una respuesta bastante larga, hay un resumen al final)
No está equivocado en su comprensión de los efectos aleatorios cruzados y anidados en el escenario que describe. Sin embargo, su definición de efectos aleatorios cruzados es un poco limitada. Una definición más general de los efectos aleatorios cruzados es simplemente: no anidada . Lo veremos al final de esta respuesta, pero la mayor parte de la respuesta se centrará en el escenario que usted presentó, de las aulas dentro de las escuelas.
Primera nota que:
La anidación es una propiedad de los datos, o más bien del diseño experimental, no del modelo.
También,
Los datos anidados se pueden codificar en al menos 2 formas diferentes, y esto es el núcleo del problema que encontró.
El conjunto de datos en su ejemplo es bastante grande, por lo que utilizaré otro ejemplo de escuelas de Internet para explicar los problemas. Pero primero, considere el siguiente ejemplo demasiado simplificado:
Aquí tenemos clases anidadas en las escuelas, lo cual es un escenario familiar. El punto importante aquí es que, entre cada escuela, las clases tienen el mismo identificador, aunque sean distintas si están anidadas . Class1
aparece en School1
, School2
y School3
. Sin embargo, si los datos se anidan entonces Class1
en School1
es no la misma unidad de medida como Class1
en School2
y School3
. Si fueran lo mismo, entonces tendríamos esta situación:
lo que significa que cada clase pertenece a cada escuela. El primero es un diseño anidado, y el segundo es un diseño cruzado (algunos también podrían llamarlo membresía múltiple), y los formularíamos al lme4
usar:
(1|School/Class)
o equivalente (1|School) + (1|Class:School)
y
(1|School) + (1|Class)
respectivamente. Debido a la ambigüedad de si hay anidamiento o cruce de efectos aleatorios, es muy importante especificar el modelo correctamente ya que estos modelos producirán resultados diferentes, como mostraremos a continuación. Además, no es posible saber, simplemente inspeccionando los datos, si tenemos efectos aleatorios anidados o cruzados. Esto solo se puede determinar con el conocimiento de los datos y el diseño experimental.
Pero primero consideremos un caso en el que la variable Clase se codifica de manera única en todas las escuelas:
Ya no hay ambigüedad con respecto a la anidación o el cruce. El anidamiento es explícito. Veamos ahora esto con un ejemplo en R, donde tenemos 6 escuelas (etiquetadas I
- VI
) y 4 clases dentro de cada escuela (etiquetadas a
para 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
Podemos ver en esta tabulación cruzada que cada ID de clase aparece en cada escuela, lo que satisface su definición de efectos aleatorios cruzados (en este caso, tenemos efectos aleatorios cruzados completos , en lugar de parcialmente , porque cada clase ocurre en todas las escuelas). Entonces, esta es la misma situación que tuvimos en la primera figura anterior. Sin embargo, si los datos están realmente anidados y no se cruzan, entonces debemos decir explícitamente 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
Como se esperaba, los resultados difieren porque m0
es un modelo anidado mientras que m1
es un modelo cruzado.
Ahora, si presentamos una nueva variable para el identificador de clase:
> 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 tabulación cruzada muestra que cada nivel de clase ocurre solo en un nivel de la escuela, según su definición de anidamiento. Este también es el caso con sus datos, sin embargo, es difícil mostrarlo con sus datos porque es muy escaso. Ambas formulaciones de modelo ahora producirán la misma salida (la del modelo anidado m0
anterior):
> 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 señalar que los efectos aleatorios cruzados no tienen que ocurrir dentro del mismo factor: en lo anterior, el cruce fue completamente dentro de la escuela. Sin embargo, este no tiene que ser el caso, y muy a menudo no lo es. Por ejemplo, si seguimos con el escenario de una escuela, si en lugar de clases dentro de las escuelas tenemos alumnos dentro de las escuelas, y también nos interesan los médicos con los que los alumnos estaban registrados, entonces también tendríamos la anidación de alumnos dentro de los médicos. No hay anidamiento de escuelas dentro de los médicos, o viceversa, por lo que este también es un ejemplo de efectos aleatorios cruzados, y decimos que las escuelas y los médicos están cruzados. Un escenario similar donde ocurren efectos aleatorios cruzados es cuando las observaciones individuales se anidan en dos factores simultáneamente, lo que comúnmente ocurre con las llamadas medidas repetidasdatos del tema-tema . Por lo general, cada sujeto se mide / prueba varias veces con / en diferentes artículos y estos mismos artículos son medidos / probados por diferentes sujetos. Por lo tanto, las observaciones se agrupan dentro de los sujetos y dentro de los ítems, pero los ítems no están anidados dentro de los sujetos o viceversa. Una vez más, decimos que se cruzan temas y elementos .
Resumen: TL; DR
La diferencia entre los efectos aleatorios cruzados y anidados es que los efectos aleatorios anidados ocurren cuando un factor (variable de agrupación) aparece solo dentro de un nivel particular de otro factor (variable de agrupación). Esto se especifica lme4
con:
(1|group1/group2)
donde group2
está anidado dentro group1
.
Los efectos aleatorios cruzados son simplemente: no anidados . Esto puede ocurrir con tres o más variables de agrupación (factores) donde un factor está anidado por separado en los otros, o con dos o más factores donde las observaciones individuales están anidadas por separado dentro de los dos factores. Estos se especifican lme4
con:
(1|group1) + (1|group2)