195 votos

Cruzó vs anidada de los efectos aleatorios: ¿en qué se diferencian y en qué se ha especificado correctamente en lme4?

Aquí es cómo he comprendido anidada vs cruzado de efectos aleatorios:

Anidado de efectos aleatorios ocurren cuando un menor nivel de factor sólo aparece dentro de un nivel particular de un nivel superior al factor.

  • Por ejemplo, los alumnos dentro de las clases en un punto fijo en el tiempo.
  • En lme4 pensé que representamos el de efectos aleatorios para anidada de los datos en cualquiera de las dos formas equivalentes:

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

Cruzó los efectos aleatorios significa que un determinado factor aparece en más de un nivel de la parte superior del nivel de factor.

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

    (1|class) + (1|pupil)
    

Sin embargo, cuando yo estaba buscando en un determinado conjunto de datos anidados, me di cuenta de que tanto en el modelo dieron resultados idénticos (código de salida y la de abajo). Sin embargo he visto a otros conjuntos de datos donde las dos fórmulas producen resultados diferentes. Entonces, ¿qué está pasando aquí?

mydata <- read.csv("www-personal.umich.edu/~bwest/classroom.csv")
# 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

373voto

Bruce ONeel Puntos 391

(Esta es bastante larga respuesta, hay un resumen en la final)

No está mal en su comprensión de lo que anidados y cruzó los efectos aleatorios son en la situación que usted describe. Sin embargo, su definición de cruzado de efectos aleatorios es un poco estrecho. Una definición más general de cruzado de efectos aleatorios es simplemente: no anidados. Vamos a ver esto en el final de esta respuesta, pero la mayor parte de la respuesta se centrará en la situación que se presenta, de aulas en las escuelas.

En primer lugar observamos que:

La anidación es una propiedad de los datos, o bien, el diseño experimental, no el modelo.

También,

De datos anidadas pueden ser codificados en al menos 2 diferentes maneras, y esto está en el corazón de la cuestión.

El conjunto de datos en el ejemplo es bastante grande, así que voy a usar otro ejemplo las escuelas de la internet para explicar los problemas. Pero primero, considere lo siguiente sobre-simplificado ejemplo:

enter image description here

Aquí tenemos clases anidadas en las escuelas, que es un escenario familiar. El punto importante aquí es que, entre cada escuela, las clases tienen el mismo identificador, aunque son distintas si están anidadas. Class1 aparece en School1, School2 y School3. Sin embargo, si los datos están anidados, a continuación, Class1 en School1 es no la misma unidad de medida Class1 en School2 y School3. Si fueran lo mismo, entonces tendríamos esta situación:

enter image description here

lo que significa que cada clase pertenece cada escuela. El primero es un diseño anidado, y el último es un diseño cruzado (algunos podrían llamar también varios miembros), y nos gustaría formular estas en lme4 el uso de:

(1|School/Class)

y

(1|School) + (1|Class)

respectivamente. Debido a la ambigüedad de si hay anidación o cruce de efectos aleatorios, es muy importante especificar correctamente el modelo ya que estos modelos se producen diferentes resultados, como se muestra a continuación. Por otra parte, no es posible saber, por la inspección de los datos, si hemos anidado o cruzado de efectos aleatorios. Esto sólo puede ser determinado con conocimiento de los datos y el diseño experimental.

Pero primero vamos a considerar un caso en el que la variable de Clase es codificado de forma exclusiva a través de las escuelas:

enter image description here

Ya no hay ninguna ambigüedad sobre la anidación o de cruce. La anidación es explícita. Ahora vamos a ver esto con un ejemplo en R, donde tenemos 6 escuelas (etiquetados I-VI) y 4 clases dentro de cada escuela (etiquetados a a d):

> dt <- read.csv("http://www.personal.leeds.ac.uk/~medwrl/SE/school-class-lmm.txt")
> # 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 toda clase de IDENTIFICACIÓN que aparece en cada escuela, que satisface la definición de la cruzó de efectos aleatorios (en este caso tenemos plenamente, como contraposición a parcialmente, cruzado de efectos aleatorios, debido a que cada clase se produce en cada escuela). Así que esta es la misma situación que teníamos en la primera figura de arriba. Sin embargo, si los datos son realmente anidados y no se cruzan, entonces tenemos que decirle 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 era de esperar, los resultados difieren, m0 es un modelo anidado mientras m1 es un cruzado modelo.

Ahora, si introducimos 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 de la cruz muestra que cada nivel de clase sólo se produce en un nivel de la escuela, como por su definición de anidación. Este es también el caso con sus datos, sin embargo es difícil mostrar que con sus datos, ya que es muy escasa. Tanto en el modelo formulaciones ahora producen la misma salida (la de la 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 cruzó los efectos aleatorios no tienen que ocurren dentro del mismo factor en el sobre el cruce estaba completamente dentro de la escuela. Sin embargo, esto no tiene que ser el caso, y muy a menudo no lo es. Por ejemplo, la pervivencia de un escenario escolar, si en lugar de clases dentro de las escuelas que tienen alumnos dentro de las escuelas, y también estábamos interesados en los médicos que los alumnos estaban registrados, entonces tendríamos también de anidación de los alumnos dentro de los médicos. No hay anidación de las escuelas dentro de los médicos, o viceversa, por lo que este también es un ejemplo del cruce de efectos aleatorios, y decimos que las escuelas y los médicos están cruzados. Un escenario similar donde cruzó de efectos aleatorios ocurrir es cuando las observaciones individuales están anidados dentro de dos factores al mismo tiempo, que comúnmente ocurre con los llamados de medidas repetidas sujeto-objeto de datos. Normalmente cada uno de los sujetos es medido/probado varias veces con/de los distintos elementos y estos mismos elementos se miden/probado por diferentes sujetos. Por lo tanto las observaciones se agrupan dentro de los temas y dentro de los artículos, sino que los elementos no están anidados dentro de los temas o vice-versa. De nuevo, podemos decir que los sujetos y elementos que se cruzan.

Resumen:

La diferencia entre cruzados y anidados de efectos aleatorios es que anidaba de efectos aleatorios ocurren cuando un factor (variable de agrupación) sólo aparece dentro de un determinado nivel de otro factor (variable de agrupación). Esto se especifica en lme4 con:

(1|group1/group2)

donde group2 está anidada dentro de group1.

Cruzó los efectos aleatorios son simplemente: no anidados. Esto puede ocurrir con tres o más de las variables de agrupación (factores) donde uno de los factores es por separado anidado en ambos de los demás, o con dos o más factores que las observaciones están anidados por separado dentro de los dos factores. Estos se especifican en lme4 con:

(1|group1) + (1|group2)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X