Modelo de efectos mixtos con anidamiento

34

Tengo datos recopilados de un experimento organizado de la siguiente manera:

Dos sitios, cada uno con 30 árboles. 15 son tratados, 15 son control en cada sitio. De cada árbol, tomamos muestras de tres piezas del tallo y tres piezas de las raíces, por lo que 6 muestras de nivel 1 por árbol, que está representado por uno de los dos niveles de factores (raíz, tallo). Luego, de esas muestras de tallo / raíz, tomamos dos muestras diseccionando diferentes tejidos dentro de la muestra, que está representado por uno de los dos niveles de factores para el tipo de tejido (tipo de tejido A, tipo de tejido B). Estas muestras se miden como una variable continua. El número total de observaciones es 720; 2 sitios * 30 árboles * (tres muestras de tallo + tres muestras de raíz) * (una muestra de tejido A + una muestra de tejido B). Los datos se ven así ...

        ï..Site Tree Treatment Organ Sample Tissue Total_Length
    1        L  LT1         T     R      1 Phloem           30
    2        L  LT1         T     R      1  Xylem           28
    3        L  LT1         T     R      2 Phloem           46
    4        L  LT1         T     R      2  Xylem           38
    5        L  LT1         T     R      3 Phloem          103
    6        L  LT1         T     R      3  Xylem           53
    7        L  LT1         T     S      1 Phloem           29
    8        L  LT1         T     S      1  Xylem           21
    9        L  LT1         T     S      2 Phloem           56
    10       L  LT1         T     S      2  Xylem           49
    11       L  LT1         T     S      3 Phloem           41
    12       L  LT1         T     S      3  Xylem           30

Estoy intentando ajustar un modelo de efectos mixtos usando R y lme4, pero soy nuevo en los modelos mixtos. Me gustaría modelar la respuesta como el Tratamiento + Factor de Nivel 1 (tallo, raíz) + Factor de Nivel 2 (tejido A, tejido B), con efectos aleatorios para las muestras específicas anidadas dentro de los dos niveles.

En R, estoy haciendo esto usando lmer, de la siguiente manera

fit <- lmer(Response ~ Treatment + Organ + Tissue + (1|Tree/Organ/Sample)) 

Según tengo entendido (... lo cual no es seguro, y por qué estoy publicando) el término:

(1|Tree/Organ/Sample)

Especifica que 'Muestra' está anidada dentro de las muestras de órganos, que está anidada dentro del árbol. ¿Es este tipo de anidamiento relevante / válido? Lo siento si esta pregunta no está clara, si es así, especifique dónde puedo dar más detalles.

Erik
fuente

Respuestas:

33

Creo que esto es correcto.

  • (1|Tree/Organ/Sample)se expande a / es equivalente a (1|Tree)+(1|Tree:Organ)+(1|Tree:Organ:Sample)(donde :denota una interacción).
  • Los factores fijos Treatment, Organy Tissueautomáticamente se manejan en el nivel correcto.
  • Probablemente debería incluir Sitecomo un efecto fijo (conceptualmente es un efecto aleatorio, pero no es práctico tratar de estimar la varianza entre sitios con solo dos sitios); Esto reducirá ligeramente la varianza entre árboles.
  • Probablemente debería incluir todos los datos dentro de un marco de datos y pasarlos explícitamente a lmertravés de un data=my.data.frameargumento.

Puede encontrar útiles las preguntas frecuentes de glmm (se centra en GLMM pero también tiene cosas relevantes para los modelos lineales mixtos).

Ben Bolker
fuente
¿Qué pasaría si Erik quisiera especificar una estructura de covarianza para estas intersecciones? Es decir, se podría esperar que una muestra con una intercepción de árbol positiva también tenga una intercepción de órgano positiva. ¿La anidación se ocupa de este problema automáticamente? Si no es así, ¿cómo podría uno especificar tal estructura?
Sheridan Grant
Creo que si intentas escribir las ecuaciones para ese caso, verás que se ha solucionado.
Ben Bolker, el
13

He leído esta pregunta y la respuesta del Dr. Bolker, y trató de replicar los datos (no preocuparse mucho, la verdad, acerca de lo que "longitud" representa en términos biológicos o unidades, y luego ajustar el modelo que el anterior. Estoy publicar los resultados aquí para compartir y buscar retroalimentación en cuanto a la probable presencia de malos entendidos.

El código que se utiliza para generar estos datos ficticios se puede encontrar aquí , y el conjunto de datos tiene la estructura interna de la OP:

     site     tree treatment organ sample tissue    length
1    L       LT01         T  root      1  phloem  108.21230
2    L       LT01         T  root      1  xylem   138.54267
3    L       LT01         T  root      2  phloem   68.88804
4    L       LT01         T  root      2  xylem   107.91239
5    L       LT01         T  root      3  phloem   96.78523
6    L       LT01         T  root      3  xylem    88.93194
7    L       LT01         T  stem      1  phloem  101.84103
8    L       LT01         T  stem      1  xylem   118.30319

La estructura es la siguiente:

 'data.frame':  360 obs. of  7 variables:
     $ site     : Factor w/ 2 levels "L","R": 1 1 1 1 1 1 1 1 1 1 ...
 $ tree     : Factor w/ 30 levels "LT01","LT02",..: 1 1 1 1 1 1 1 1 1 1 ...
     $ treatment: Factor w/ 2 levels "C","T": 2 2 2 2 2 2 2 2 2 2 ...
 $ organ    : Factor w/ 2 levels "root","stem": 1 1 1 1 1 1 2 2 2 2 ...
     $ sample   : num  1 1 2 2 3 3 1 1 2 2 ...
 $ tissue   : Factor w/ 2 levels "phloem","xylem": 1 2 1 2 1 2 1 2 1 2 ...
     $ length   : num  108.2 138.5 68.9 107.9 96.8 ...

El conjunto de datos fue "manipulada" (comentarios aquí sería bienvenido) de la siguiente manera:

  1. Para treatment, hay un efecto fijo con dos intercepta distintos para el tratamiento frente a los controles ( 100frente 70), y no hay efectos aleatorios.
  2. Establecí los valores para tissuecon efectos fijos prominentes con intersecciones muy diferentes para phloemversus xylem( 3versus 6) y efectos aleatorios con a sd = 3.
  3. organnorte(0 0,3)sd = 36rootstem
  4. Porque treesolo tenemos efectos aleatorios con a sd = 7.
  5. Porque sampletraté de configurar solo efectos aleatorios con sd = 5.
  6. Para sitetambién solo ef de al azar con sd = 3.

No se establecieron pendientes, debido a la naturaleza categórica de las variables.

Los resultados del modelo de efectos mixtos:

fit <- lmer(length ~ treatment + organ + tissue + (1|tree/organ/sample), data = trees) 

fueron:

 Random effects:
 Groups              Name        Variance  Std.Dev. 
 sample:(organ:tree) (Intercept) 9.534e-14 3.088e-07
 organ:tree          (Intercept) 0.000e+00 0.000e+00
 tree                (Intercept) 4.939e+01 7.027e+00
 Residual                        3.603e+02 1.898e+01
Number of obs: 360, groups:  sample:(organ:tree), 180; organ:tree, 60; tree, 30

Fixed effects:
            Estimate Std. Error       df t value Pr(>|t|)    
(Intercept)  79.8623     2.7011  52.5000  29.567  < 2e-16 ***
treatmentT   21.4368     3.2539  28.0000   6.588 3.82e-07 ***
organstem     0.1856     2.0008 328.0000   0.093    0.926    
tissuexylem   3.1820     2.0008 328.0000   1.590    0.113    
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Como resulto:

  1. Para treatmentla intercepción sin tratamiento fue 79.8623(establecí una media de 70), y con tratamiento fue 79.8623 + 21.4368 = 101.2991(establecimos una media de 100.
  2. Porque tissuehabía una 3.1820contribución a la intercepción cortesía de xylem, y había establecido una diferencia entre phloemy xylemde 3. Los efectos aleatorios no fueron parte del modelo.
  3. Para organ, las muestras del stemaumento de la intercepción por 0.1856: no había establecido ninguna diferencia en los efectos fijos entre stemy root. La desviación estándar de lo que quería que actuara como efectos aleatorios no se reflejó.
  4. Los treeefectos aleatorios con un SD de 7surgieron muy bien como 7.027.
  5. En cuanto a sample, la inicial sdde 5fue subestimada como 3.088.
  6. site No era parte del modelo.

Entonces, en general, parece que el modelo coincide con la estructura de los datos.

Antoni Parellada
fuente