Efectos aleatorios cruzados vs anidados: ¿en qué se diferencian y cómo se especifican correctamente en lme4?


88

Así es como he entendido los efectos aleatorios anidados versus cruzados:

Los efectos aleatorios anidados ocurren cuando un factor de nivel inferior aparece solo dentro de un nivel particular de un factor de nivel superior.

  • Por ejemplo, alumnos dentro de las clases en un punto fijo en el tiempo.
  • En lme4pensé que representamos los efectos aleatorios para los datos anidadas en una de dos maneras equivalentes:

    (1|class/pupil)  # or  
    (1|class) + (1|class:pupil)
    

Los efectos aleatorios cruzados significan que un factor dado aparece en más de un nivel del factor de nivel superior.

  • Por ejemplo, hay alumnos dentro de las clases medidos durante varios años.
  • En lme4, escribiríamos:

    (1|class) + (1|pupil)

Sin embargo, cuando estaba mirando un conjunto de datos anidado en particular, noté que ambas fórmulas del modelo daban resultados idénticos (código y salida a continuación). Sin embargo, he visto otros conjuntos de datos donde las dos fórmulas produjeron resultados diferentes. Entonces, ¿qué está pasando aquí?

mydata <- read.csv("https://web.archive.org/web/20160624172041if_/http://www-personal.umich.edu/~bwest/classroom.csv")
# (the data is no longer at `http://www-personal.umich.edu/~bwest/classroom.csv`
# hence the link to web.archive.org)
# Crossed version: 
Linear mixed model fit by REML ['lmerMod']
Formula: mathgain ~ (1 | schoolid) + (1 | classid)
   Data: mydata

REML criterion at convergence: 11768.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.6441 -0.5984 -0.0336  0.5334  5.6335 

Random effects:
 Groups   Name        Variance Std.Dev.
 classid  (Intercept)   99.23   9.961  
 schoolid (Intercept)   77.49   8.803  
 Residual             1028.23  32.066  
Number of obs: 1190, groups:  classid, 312; schoolid, 107


# Nested version:
Formula: mathgain ~ (1 | schoolid/classid)

REML criterion at convergence: 11768.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.6441 -0.5984 -0.0336  0.5334  5.6335 

Random effects:
 Groups           Name        Variance Std.Dev.
 classid:schoolid (Intercept)   99.23   9.961  
 schoolid         (Intercept)   77.49   8.803  
 Residual                     1028.23  32.066  
Number of obs: 1190, groups:  classid:schoolid, 312; schoolid, 107

Respuestas:


148

(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:

ingrese la descripción de la imagen aquí

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 . Class1aparece en School1, School2y School3. Sin embargo, si los datos se anidan entonces Class1en School1es no la misma unidad de medida como Class1en School2y School3. Si fueran lo mismo, entonces tendríamos esta situación:

ingrese la descripción de la imagen aquí

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 lme4usar:

(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:

ingrese la descripción de la imagen aquí

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 apara 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 m0es un modelo anidado mientras que m1es 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 m0anterior):

> 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 lme4con:

(1|group1/group2)

donde group2está 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 lme4con:

(1|group1) + (1|group2)


16
+6, esta es una muy buena respuesta. Recuérdame en un par de días y te recompensaré.
gung - Restablece a Monica

2
Excelente explicación ¿Existe un nombre para un posiblemente tercer tipo de diseño experimental en el que cree niveles únicos para dos factores (posiblemente anidados), por lo que si siguiera cohortes comprando motocicletas de diferentes distribuidores en diferentes ciudades, ¿cómo me comunicaría a los lectores que básicamente he creado un factor de nivel único interaction(city, dealer)?
AdamO

2
+6, esta es una respuesta tan buena que sentí que podría completar la recompensa de @gung con otra. Por cierto, estoy luchando con lo que probablemente sea una confusión muy básica ( aquí está mi Q ) y agradecería mucho su ayuda.
ameba

1
@RobertLong Parece que los diseños de parcelas divididas (medidas repetidas) a menudo se denominan "anidados", aunque en realidad no están anidados de acuerdo con esta respuesta suya. Esta inconsistencia terminológica probablemente ha contribuido a mi confusión en la pregunta vinculada. Sería genial si pudieras aclararlo, aquí o allá. Incluso estoy pensando si debería publicar una pregunta terminológica separada (no orientada a R) sobre lo que está anidado en parcelas divididas.
ameba

2
Actualización a mi comentario anterior. He revisado dos libros antiguos y autorizados sobre diseño experimental: Maxwell y Delaney, 1990, Diseñando experimentos y analizando datos, y Montgomery, 1976, Diseño y análisis de experimentos. Ambos hablan de diseños anidados y ambos hablan de medidas repetidas, también conocidas como parcelas divididas; ambos usan la palabra "anidado" solo en el sentido en que lo está usando y nunca se refieren a medidas repetidas como anidadas. Así que no creo que haya una diferencia terminológica después de todo.
ameba
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.