Beruflich Dokumente
Kultur Dokumente
Luis Cayuela
Diciembre de 2018
1
Modelos lineales mixtos (LMM) y modelos lineales genera-
lizados mixtos (GLMM) en R (versión 3.1)
2
Índice
1. Introducción 5
1.1. Modelos lineales mixtos en R: Los paquetes nlme y lme4 . . . . . 5
1.1.1. La función lme() . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2. La función lmer() . . . . . . . . . . . . . . . . . . . . . . . 7
1.2. Entendiendo los modelos mixtos . . . . . . . . . . . . . . . . . . 9
1.2.1. Un ejemplo con bentos marino . . . . . . . . . . . . . . . 9
1.2.2. Una aproximación al análisis de los datos con modelos
lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.3. Re-analizando los datos con modelos lineales mixtos: El
paquete nlme . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.4. Re-analizando los datos con modelos lineales mixtos: El
paquete lme4 . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2.5. Otros efectos aleatorios en modelos lineales mixtos . . . . 18
1.3. Inferencia o el arte de elegir el mejor modelo . . . . . . . . . . . 20
1.3.1. Test de hipótesis para modelos anidados (likelihood ratio
test) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3.2. Comparación de modelos con AIC . . . . . . . . . . . . . 22
1.4. Análisis de los residuos . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5. Modelos lineales mixtos generalizados (GLMM) . . . . . . . . . . 25
1.5.1. Otras funciones para ajustar GLMM en R . . . . . . . . . 27
3
ÍNDICE ÍNDICE
6. Referencias 69
4
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
1. Introducción
Los modelos mixtos son usados cuando los datos tienen algún tipo de
estructura jerárquica o de agrupación como los diseños de medidas repetidas,
las series temporales, los diseños anidados o por bloques aleatorizados. Los
modelos mixtos permiten tener coeficientes fijos (aquellos cuyos niveles son de
interés para el experimentador) y aleatorios (aquellos cuyos niveles son sólo
una realización de todos los posibles niveles procedentes de una población) y
varios términos de error. Pueden ser una herramienta muy útil, pero son
potencialmente difı́ciles de comprender y aplicar. En esta sesión intentaremos
dar una visión aplicada de los modelos lineales mixtos con especial referencia a
los distintos tipos de diseños vistos en la sesión anterior.
Podéis encontrar una buena introducción al tema de los modelos mixtos en el
capı́tulo 8 de Zuur et al. (2007) y en el capı́tulo 19 de Crawley (2002). El libro
de Zuur et al. (2009) es también una buena referencia para profundizar más en
el tema de los modelos mixtos sin mucho aditamento matemático. Otras
referencias con un fondo más matemático y, en mi opinión, bastante más
difı́ciles de entender, son Pinheiro & Bates (2000) o Faraway (2006).
> citation("nlme")
@Manual{,
title = {{nlme}: Linear and Nonlinear Mixed Effects Models},
author = {Jose Pinheiro and Douglas Bates and Saikat DebRoy and Deepayan Sarkar and {R
year = {2018},
note = {R package version 3.1-137},
url = {https://CRAN.R-project.org/package=nlme},
}
5
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> citation("lme4")
@Article{,
title = {Fitting Linear Mixed-Effects Models Using {lme4}},
author = {Douglas Bates and Martin M{\"a}chler and Ben Bolker and Steve Walker},
journal = {Journal of Statistical Software},
year = {2015},
volume = {67},
number = {1},
pages = {1--48},
doi = {10.18637/jss.v067.i01},
}
6
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
7
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
lmer(y ˜ x + (x|a))
Y esto serı́a equivalente a:
lmer(y ˜ x + (1+x|a))
Si hay más de un factor aleatorio, estos se identifican individualmente entre
paréntesis.
lmer(y ˜ x + (x|a) + (1|b) + (1 | c))
La especificación de factores anidados se puede hacer, al igual que con la
función lme(), con la barra ’/’.
lmer(y ˜ 1 + (1 | a/b/c))
Alternativamente se puede especificar la anidación de factores aleatorios con
los dos puntos (’:’). Pero... ¡cuidado! Al especificar la anidación de unos
factores dentro de otros no se está asumiendo los efectos aleatorios de todos los
factores incluidos en la fórmula como en el caso de la función lme(). Por tanto,
si escribiéramos:
lmer(y ˜ 1 + (1 | a:b:c))
solo estarı́amos considerando el efecto aleatorio de ’c’ (anidado dentro de ’b’ y
este a su vez anidado dentro de ’a’), pero no los efectos aleatorios de ’b’
(anidado dentro de ’c’) ni de ’c’.
Para el ejemplo anterior el modelo con los tres efectos aleatorios quedarı́a
especificado de la siguiente forma:
lmer(y ˜ 1 + (1|a) + (1|a:b) + (1 | a:b:c))
A lo largo de las próximas secciones se verán formulaciones más complejas
para la componente aleatoria del modelo mixto.
8
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Zuur et al. (2007) utilizan datos de bentos marino procedente de nueve zonas
intermareales de la costa holandesa para presentar los modelos mixtos. Los
datos fueron recogidos por el instituto holandés RIKZ en el verano de 2002. En
cada zona intermareal (playa) se tomaron cinco muestras de la macro-fauna y
variables abióticas siguiendo el siguiente esquema de muestreo.
> library(ADER)
> data(RIKZ)
9
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Sin saber de la existencia de los modelos mixtos, tal vez nuestra primera
aproximación serı́a ajustar un modelo lineal asumiendo independencia de las
muestras, de acuerdo al siguiente modelo:
●
20
●
15
●
Richness
●● ●
10
● ●
●
● ●
● ●
●● ● ●
● ● ●
5
● ● ● ● ●
● ●●● ● ● ● ●
●
●
● ● ●
● ●
● ● ●
0
NAP
10
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
●
20
●
15
●
Richness
●● ●
10
● ●
●
● ●
● ●
●● ● ●
● ● ●
5
● ● ● ● ●
● ●●● ● ● ● ●
●
●
● ● ●
● ●
● ● ●
0
NAP
11
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
●
20
●
15
●
Richness
●● ●
10
● ●
●
● ●
● ●
●● ● ●
● ● ●
5
● ● ● ● ●
● ●●● ● ● ● ●
●
●
● ● ●
● ●
● ● ●
0
NAP
12
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
●
20
●
15
●
Richness
●● ●
10
● ●
●
● ●
● ●
●● ● ●
● ● ●
5
● ● ● ● ●
● ●●● ● ● ● ●
●
●
● ● ●
● ●
● ● ●
0
NAP
El modelo con una única recta de regresión es sin duda el más sencillo, y el
modelo con nueve rectas de regresión con diferentes constantes y pendientes
para cada una de las nueve playas el más complejo. El número de parámetros
en el primer modelo es de 3, en los dos modelos intermedios de 1 + 9 + 1 =
11, y en el último modelo, el más complejo, de 9 + 9 + 1 = 19.
Comparemos ahora los distintos modelos utilizando el estadı́stico F con la
función anova().
13
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
1 43 744.12
2 35 327.74 8 416.37 5.5581 0.0001441 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
14
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
p-valores de los efectos fijos. Esto podrı́a producir como resultado, por
ejemplo, la no detección de una relación significativa entre la riqueza y el NAP.
Por tanto hace falta incorporar el efecto de la playa en el modelo. ¡Pero esto
implica incorporar 16 parámetros más en el modelo, lo que conlleva la pérdida
de 16 grados de libertad! Una alternativa posible para evitar ésto es utilizar los
modelos mixtos. Pero el uso de los modelos mixtos ofrece, además, otras
ventajas. Como vimos en la sesión anterior, si consideramos la playa como un
factor fijo, nuestras conclusiones sólo pueden referirse a esas playas concretas.
Sin embargo, si tratamos la playa como un factor aleatorio, entonces nuestras
conclusiones se referirán a todas las playas, de las cuáles, estas nueve son sólo
una muestra del total de la población de playas. Por tanto los resultados del
análisis al considerar la playa como un factor aleatorio permitirı́a predecir la
relación entre la riqueza y el NAP en un sentido más general, sin tener que
limitarnos a estas nueve playas en concreto.
15
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> library(nlme)
> lme5 <- lme(Richness ~ NAP, data = RIKZ, random = ~ 1|Beach)
> summary(lme5)
Random effects:
Formula: ~1 | Beach
(Intercept) Residual
StdDev: 2.944065 3.05977
Number of Observations: 45
Number of Groups: 9
> anova(lme5)
La parte de los resultados que se refiere a los efectos aleatorios nos muestra
que la varianza residual es σ 2 = 3,062 y la varianza de la constante
σa2 = 2,9442 . Para la parte de los efectos fijos del modelo, α + β · N APij , la
constante se estima en α = 6,582 y la pendiente en β = −2,568. Ambos
parámetros son significativamente distintos de 0. La correlación entre la
constante y la pendiente es pequeña. La tabla ANOVA también muestra la
significación de la pendiente β.
En resumen, el modelo estima una respuesta general de la forma
6,582 − 2,568 · N APij . Estos parámetros estimados por el modelo son
significativamente distintos de 0. Para cada playa, la constante aumenta o
disminuye por un valor aleatorio. Este valor aleatorio sigue una distribución
normal con media esperada 0 y varianza σa2 = 2,9442 . La varianza residual, es
decir, el error que podemos añadir a cada una de nuestras predicciones, viene
dada por σ 2 = 3,06.
16
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
El ajuste del modelo con la función lmer() del paquete lme4 es prácticamente
idéntico a cómo lo hemos hecho utilizando la función lme() del paquete nlme.
La principal diferencia es que no hace falta especificar el argumento random y
los efectos aleatorios se especifican como parte de la fórmula, de la siguiente
forma:
> library(lme4)
> lmer5 <- lmer(Richness ~ NAP + (1|Beach), data = RIKZ)
> summary(lmer5)
Scaled residuals:
Min 1Q Median 3Q Max
-1.4227 -0.4848 -0.1576 0.2519 3.9794
Random effects:
Groups Name Variance Std.Dev.
Beach (Intercept) 8.668 2.944
Residual 9.362 3.060
Number of obs: 45, groups: Beach, 9
Fixed effects:
Estimate Std. Error t value
(Intercept) 6.5819 1.0958 6.007
NAP -2.5684 0.4947 -5.192
> anova(lmer5)
Como vemos, los valores de los parámetros aleatorios y fijos estimados por el
modelo son exactamente iguales utilizando cualquiera de las dos funciones. En
el caso de la función lmer(), y al contrario de lo que ocurre con la función
lme(), no se dan los valores de significación de los coeficientes fijos estimados
por el modelo. ¿Cómo se sabe entonces qué variables son importantes y cuáles
no lo son? En la sección 1.3 se darán más detalles de las distintas alternativas
para hacer inferencia en modelos mixtos.
17
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> library(nlme)
> lme6 <- lme(Richness ~ NAP, data = RIKZ, random = ~ NAP|Beach)
> lme6 <- lme(Richness ~ NAP, data = RIKZ, random = ~ 1+NAP|Beach)
> summary(lme6)
Random effects:
Formula: ~1 + NAP | Beach
Structure: General positive-definite, Log-Cholesky parametrization
StdDev Corr
(Intercept) 3.549064 (Intr)
NAP 1.714963 -0.99
Residual 2.702820
18
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Number of Observations: 45
Number of Groups: 9
> anova(lme6)
La parte de los resultados que se refiere a los efectos aleatorios nos muestra que
la varianza residual es σ 2 = 2,702 , la varianza de la constante σa2 = 3,552 y la
varianza de la pendiente σb2 = 1,712 . Vemos que disminuye la varianza residual
(lo que no explica el modelo) con respecto al modelo anterior. Para la parte de
los efectos fijos del modelo, α + β · N APij , la constante estimada es α = 6,588
y la pendiente β = −2,83. Ambos parámetros son significativamente distintos
de 0 y muy similares a los coeficientes estimados en el modelo anterior.
Podemos obtener un gráfico de las predicciones con la función plot.augPred(),
si bien es necesario que reajustemos pare ello el modelo con datos en un
arreglo de datos agrupado (groupedData) que muestre la estructura de
agrupación interna de estos.
19
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
−1 0 1 2 −1 0 1 2
9 1 2 5
●
●
20
●
15
●
● ●●
●●
●
10
●●
●
● ●
5
● ●
●
Richness
● ● 0
4 7 3 6 8
20
15
10
●
● ●
5 ● ● ●
●
● ●
●●
●● ● ● ● ●
●
●● ●● ● ●
0 ●
−1 0 1 2 −1 0 1 2 −1 0 1 2
NAP
20
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
¿Qué alternativas existen? Podemos citar tres, aunque solo mostraremos con
ejemplos las dos primeras: (1) test de hipótesis para comparar modelos
anidados1 dos a dos, utilizando cambios en el AIC (likelihood ratio test); (2)
comparación de toda una baterı́a de modelos, no necesariamente anidados,
utilizando criterios de información (AIC, BIC) y uso de reglas de pulgar para
seleccionar el modelo más parsimonioso o, en ocasiones, los modelos más
parsimoniosos; (3) aproximación Bayesiana, mucho más compleja que las dos
anteriores y que, por tanto, no se verá en este curso.
Como vemos, el modelo con la covariable NAP (lme5.2) produce un AIC que es
inferior al AIC del modelo anidado (que no contempla el efecto de la
covariable), y además el test L.Ratio realizado sobre el parámetro de
verosimilitud (logLik) es significativo, lo que indica que que el modelo completo
es más parsimonioso. Todo ello apunta a que existe un efecto general y
significativo de la variable NAP sobre la riqueza de especies. La comparación
de modelos que difieren sólo en sus efectos fijos ha de hacerse con el método de
máxima verosimilitud y por ello se utiliza el argumento method=”ML”. Aunque
este tipo de test está muy extendido, no es muy fiable para comprobar la
significación de efectos fijos cuando hay tamaños de muestra pequeñas o
moderadas.
El mismo test se puede utilizar para ver la significación de variables aleatorias,
si bien la estimación de los parámetros de estos modelos ha de hacerse con el
estimador de máxima verosimilitud restringida (REML), que es lo que viene
1 Anidado, en este contexto, no significa lo mismo que en el contexto de diseño de expe-
rimentos. Dos modelos están anidados cuando uno (el más complejo) incluye al otro (el más
simple).
21
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
establecido por defecto en las funciones lme() y lmer(). Este estimador lo que
hace es promediar sobre parte de la incertidumbre en los parámetros de efectos
fijos.
Algunos autores critican el uso de test de hipótesis para pares de modelos por
el abuso que se hace de los tests de hipótesis (Burhan & Anderson 2002). Los
22
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
23
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
● ●
3
● ●
2
● ● ●
Residuals
Residuals
● ●
1
● ●
● ● ●
● ●● ● ● ●●
● ●● ●
● ●● ●●● ●● ● ●● ● ● ● ● ● ●
0
● ● ●
● ●
●●● ● ●●● ● ● ● ●● ●
● ● ● ● ●● ●
● ● ● ●
● ● ● ●
−2 −1
−2 −1
● ● ● ● ● ●
● ●
● ●
●
3
20
●
Sample Quantiles
●●
Frequency
15
●
1
●
●●
10
●●●●
●●●
0
●●
●●
●●●
●
●●●
●●●
●●
●●●●
●●●
5
●●
−2 −1
●●●
●
●
0
−2 −1 0 1 2 3 −2 −1 0 1 2
24
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Scaled residuals:
Min 1Q Median 3Q Max
-1.35846 -0.51129 -0.21846 0.09802 2.45384
Random effects:
Groups Name Variance Std.Dev. Corr
Beach (Intercept) 0.2630 0.5128
NAP 0.0891 0.2985 0.18
Number of obs: 45, groups: Beach, 9
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.6942 0.1868 9.071 < 2e-16 ***
NAP -0.6074 0.1374 -4.421 9.81e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Si comparamos los coeficientes de los modelos glmer6 y lme6 vemos que los
coeficientes de los efectos fijos no coinciden, pero esto es en parte porque al
25
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
● ●
● ●
2
● ●
Residuals
Residuals
1
● ● ● ●
● ● ●●
●● ● ●● ●
● ●
● ● ● ●
0
● ● ●● ● ● ●
● ● ●●
●
● ● ●
● ●● ●● ●
●
●
●
● ● ●
● ● ●● ●
● ●
●
● ●
● ● ● ● ● ● ● ● ● ● ●
● ●
−1
−1
● ● ● ●
● ● ● ●
● ●
●
●
2
Sample Quantiles
15
●
Frequency
●●
●●
10
●●●
●
●●
0
●●
●●●
●●●
●●
●●
●●
●●
●
●
5
●●
●●●●●
●●
−1
●●
●●
●
0
−1 0 1 2 −2 −1 0 1 2
26
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
27
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> library(MASS)
> mod.glmmPQL <- glmmPQL(Richness ~ NAP, random = ~ NAP|Beach,
+ data = RIKZ, family=poisson)
> summary(mod.glmmPQL)
Random effects:
Formula: ~NAP | Beach
Structure: General positive-definite, Log-Cholesky parametrization
StdDev Corr
(Intercept) 0.5134282 (Intr)
NAP 0.3162180 0.121
Residual 0.8836732
Variance function:
Structure: fixed weights
Formula: ~invwt
Fixed effects: Richness ~ NAP
Value Std.Error DF t-value p-value
(Intercept) 1.7225784 0.1874622 35 9.188937 0e+00
NAP -0.5996495 0.1359921 35 -4.409443 1e-04
Correlation:
(Intr)
NAP 0.095
Number of Observations: 45
Number of Groups: 9
> library(glmmML)
> mod.glmmML <- glmmML(Richness ~ NAP, cluster = Beach, data = RIKZ,
+ family=poisson)
> summary(mod.glmmML)
28
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Call: glmmML(formula = Richness ~ NAP, family = poisson, data = RIKZ, cluster = Beach
> library(glmmADMB)
> Beach2 <- factor(RIKZ$Beach)
> mod.glmmadmb <- glmmadmb(Richness ~ NAP + (NAP|Beach2), data = RIKZ,
+ family="poisson")
> summary(mod.glmmPQL)
Random effects:
Formula: ~NAP | Beach
Structure: General positive-definite, Log-Cholesky parametrization
StdDev Corr
(Intercept) 0.5134282 (Intr)
NAP 0.3162180 0.121
Residual 0.8836732
Variance function:
Structure: fixed weights
Formula: ~invwt
Fixed effects: Richness ~ NAP
Value Std.Error DF t-value p-value
(Intercept) 1.7225784 0.1874622 35 9.188937 0e+00
NAP -0.5996495 0.1359921 35 -4.409443 1e-04
Correlation:
29
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
(Intr)
NAP 0.095
Number of Observations: 45
Number of Groups: 9
> library(faraway)
> data(rabbit)
> xtabs(gain~treat+block, data=rabbit)
block
treat b1 b10 b2 b3 b4 b5 b6 b7 b8 b9
a 0.0 37.3 40.1 0.0 44.9 0.0 0.0 45.2 44.0 0.0
b 32.6 0.0 38.1 0.0 0.0 0.0 37.3 40.6 0.0 30.6
c 35.2 0.0 40.9 34.6 43.9 40.9 0.0 0.0 0.0 0.0
d 0.0 42.3 0.0 37.5 0.0 37.3 0.0 37.9 0.0 27.5
e 0.0 0.0 0.0 0.0 40.8 32.0 40.5 0.0 38.5 20.6
f 42.2 41.7 0.0 34.3 0.0 0.0 42.8 0.0 51.9 0.0
30
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
a b c d e f
Diet type
31
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Response: gain
Df Sum Sq Mean Sq F value Pr(>F)
block 9 730.39 81.154 8.0738 0.0002454 ***
treat 5 158.73 31.745 3.1583 0.0381655 *
Residuals 15 150.77 10.052
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> library(nlme)
> lme.rabbit1 <- lme(gain~ treat, random=~1|block, data=rabbit)
> anova(lme.rabbit1)
> summary(lme.rabbit1)
Random effects:
Formula: ~1 | block
(Intercept) Residual
StdDev: 4.657853 3.175519
32
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Number of Observations: 30
Number of Groups: 10
df AIC
lme.rabbit0 7 174.2621
lme.rabbit1 8 166.3569
Vemos que el modelo con el efecto aleatorio bloque es más parsimonioso que el
modelo sin el efecto aleatorio.
33
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
df AIC
lme.rabbit2 3 188.8307
lme.rabbit3 8 183.7730
Y, de nuevo, vemos que el modelo con el efecto fijo del tratamiento es más
parsimonioso que el modelo que contiene únicamente el efecto de la constante.
Random effects:
Formula: ~1 | block
(Intercept) Residual
StdDev: 0.1382801 0.09138407
Number of Observations: 30
Number of Groups: 10
34
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
●
1.0
1.0
●
● ●●● ● ● ●
●
Residuals
Residuals
●●
0.0
0.0
● ●
● ●
● ● ●
●
● ●
● ● ●
● ●
−2.0 −1.0
−2.0 −1.0
●
●
● ●
Fitted values
●
8 10
1.0
●
Sample Quantiles
●●●●● ●
●
Frequency
●●
0.0
●
●●●
6
●●●
●●●
●●●
●●●
4
−2.0 −1.0
●
●
2
●
0
−2 −1 0 1 −2 −1 0 1 2
35
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Sabemos que hay un efecto del tratamiento sobre la variable respuesta, pero
podemos estar interesados en saber exáctamente qué tratamiento o
tratamientos tienen el mayor o menor efecto. Para ello tenemos que hacer
comparaciones múltiples entre los niveles del factor fijo dos a dos. Esto es lo
que se conoce tradicionalmente como comparaciones post-hoc. En R podemos
utilizar la función glht() del paquete multcomp para hacer estas comparaciones.
> library(multcomp)
> mmod.t.test <- glht(lme.rabbit, linfct=mcp(treat="Tukey"))
> summary(mmod.t.test)
Linear Hypotheses:
Estimate Std. Error z value Pr(>|z|)
b - a == 0 -0.052502 0.063616 -0.825 0.96295
c - a == 0 -0.002603 0.063616 -0.041 1.00000
d - a == 0 -0.013663 0.063616 -0.215 0.99994
e - a == 0 -0.164101 0.063616 -2.580 0.10237
f - a == 0 0.065764 0.063616 1.034 0.90667
c - b == 0 0.049900 0.063616 0.784 0.97024
d - b == 0 0.038839 0.063616 0.611 0.99032
e - b == 0 -0.111599 0.063616 -1.754 0.49559
f - b == 0 0.118266 0.063616 1.859 0.42777
d - c == 0 -0.011060 0.063616 -0.174 0.99998
e - c == 0 -0.161498 0.063616 -2.539 0.11289
f - c == 0 0.068367 0.063616 1.075 0.89158
e - d == 0 -0.150438 0.063616 -2.365 0.16875
f - d == 0 0.079427 0.063616 1.249 0.81278
f - e == 0 0.229865 0.063616 3.613 0.00415 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
Según estas comparaciones, sólo las dietas E y F serı́an diferentes entre sı́,
aunque paradójicamente ninguna de ellas mostrarı́a diferencias significativas
con el resto. Esto es porque las dietas E y F muestran los extremos de un
gradiente de efecto de ganancia de peso, dónde la dieta E causarı́a la menor
ganancia de peso y la dieta E la máxima ganancia de peso. El resto de dietas
muestran ganancias de peso intermedias entre estas dos y no se diferencian
36
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
df AIC
lme.rabbit3 8 183.77295
lme.rabbit4 5 -33.52477
lme.rabbit5 4 -26.80222
lme.rabbit6 4 -32.31709
Los mejores modelos serı́an aquel que consideran tres grandes grupos de dietas
(A, E, F) y dos grupos de dietas (A, E). Es decir, que parece que las
evidencias apuntan a que no hay una dieta que genera sustancialmente una
mejora de peso, pero sı́ hay una (E) que parece que sistemáticamente provoca
una reducción del peso de los conejos. Gráficamente, estas nuevas agrupaciones
de los tipos de dieta quedarı́an representadas de la siguiente forma:
37
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> par(mfcol=c(1,3))
> mean.treat2 <- tapply(rabbit$gain, rabbit$treat2, mean)
> sd.treat2 <- tapply(rabbit$gain, rabbit$treat2, sd)
> mean.treat3 <- tapply(rabbit$gain, rabbit$treat3, mean)
> sd.treat3 <- tapply(rabbit$gain, rabbit$treat3, sd)
> mean.treat4 <- tapply(rabbit$gain, rabbit$treat4, mean)
> sd.treat4 <- tapply(rabbit$gain, rabbit$treat4, sd)
> x2 <- barplot(mean.treat2, ylab="Weight gain (gr)",
+ xlab="Diet type", ylim=c(0,55), cex=1.5, cex.lab=1.5,
+ cex.axis=1.5)
> arrows(x0=x2, y0=mean.treat2, y1=mean.treat2+1.96*sd.treat2,
+ lwd=2, angle=90, length=0.05)
> x3 <- barplot(mean.treat3, ylab="Weight gain (gr)",
+ xlab="Diet type", ylim=c(0,55), cex=1.5, cex.lab=1.5,
+ cex.axis=1.5)
> arrows(x0=x3, y0=mean.treat3, y1=mean.treat3+1.96*sd.treat3,
+ lwd=2, angle=90, length=0.05)
> x4 <- barplot(mean.treat4, ylab="Weight gain (gr)",
+ xlab="Diet type", ylim=c(0,55), cex=1.5, cex.lab=1.5,
+ cex.axis=1.5)
> arrows(x0=x4, y0=mean.treat4, y1=mean.treat4+1.96*sd.treat4,
+ lwd=2, angle=90, length=0.05)
50
50
50
40
40
40
Weight gain (gr)
30
30
20
20
20
10
10
10
0
a e f a f a e
Diet type Diet type Diet type
Y como podemos observar, los gráficos de los residuos de uno de los mejores
modelos (el que identifica tres tipos de dietas diferentes) mejoran con respecto
al modelo anterior, sobre todo en lo referente a la homogeneidad de varianzas
entre grupos.
38
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
●
1
1
● ●●
● ● ●
Residuals
Residuals
●
● ●
0
●● ● ●
0
●
●
● ●● ● ●
●
●
−1
−1
● ● ●
−2
−2
Fitted values
●
Sample Quantiles
●
1
●
●●●
●●●
Frequency
●
●
●●
0
●●●●
6
●●●
●●●●
●
4
●
−1
● ●●
2
−2
●
0
−2 −1 0 1 2 −2 −1 0 1 2
39
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> library(MuMIn)
> r.squaredGLMM(lme.rabbit)
R2m R2c
0.1481124 0.7774959
40
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> library(ADER)
> data(sn)
, , Habitat = Forest
Scenario
Plot Control Dry Summer Wet Summer
1 1.389 1.084 0.985
2 1.422 1.667 1.793
3 1.189 1.356 1.636
4 1.953 1.371 1.490
5 0.849 1.369 1.143
6 0.950 1.351 1.951
7 1.410 2.913 2.303
8 1.203 1.538 1.853
, , Habitat = Grassland
Scenario
Plot Control Dry Summer Wet Summer
1 0.000 2.331 4.908
2 2.596 3.454 3.611
3 1.534 2.765 3.517
4 6.777 1.143 2.741
5 1.627 2.849 2.860
6 1.662 2.233 2.724
7 0.000 2.005 1.841
8 1.238 1.689 4.084
, , Habitat = Shrubland
Scenario
Plot Control Dry Summer Wet Summer
1 1.991 2.150 2.357
2 2.056 1.845 2.354
3 1.533 2.151 1.781
4 1.881 1.558 2.218
5 1.718 1.655 2.086
5 Matı́as, L., Zamora, R., Castro, J. 2011 Repercussions of simulated climate change on
41
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Finalmente, eliminamos los valores de biomasa que valen 0 porque las semillas
de estas muestras no han germinado y el problema aquı́ serı́a otro.
42
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> par(mfrow=c(2,2))
> par(mar=c(6,4,4,2))
> boxplot(Total.Biomass~Scenario, data=sn, las=2,
+ ylab="Biomass (gr)")
> par(mar=c(6,4,4,2))
> boxplot(Total.Biomass~Habitat, data=sn, las=2,
+ ylab="Biomass (gr)")
> par(mar=c(10,4,1,2))
> boxplot(Total.Biomass~factor(Plot), data=sn, las=1,
+ ylab="Biomass (gr)")
> par(mar=c(10,4,1,2))
> boxplot(Total.Biomass~Scenario*Habitat, data=sn, las=2,
+ ylab="Biomass (gr)")
7 ●
7 ●
6 6
Biomass (gr)
Biomass (gr)
5 ● 5
4 4
3 3 ●
2 2
1 1
Control
Dry Summer
Wet Summer
Forest
Grassland
Shrubland
7 7 ●
6 6
Biomass (gr)
Biomass (gr)
5 5
4 4
3 3 ●
2 2 ●
1 1
Control.Forest
Dry Summer.Forest
Wet Summer.Forest
Control.Grassland
Dry Summer.Grassland
Wet Summer.Grassland
Control.Shrubland
Dry Summer.Shrubland
Wet Summer.Shrubland
1 4 7 10 14 18 22
43
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> par(mfrow=c(2,2))
> par(mar=c(6,4,4,2))
> boxplot(log(Total.Biomass)~Scenario, data=sn, las=2,
+ ylab="log(Biomass [gr])")
> par(mar=c(6,4,4,2))
> boxplot(log(Total.Biomass)~Habitat, data=sn, las=2,
+ ylab="log(Biomass [gr])")
> par(mar=c(10,4,1,2))
> boxplot(log(Total.Biomass)~factor(Plot), data=sn, las=1,
+ ylab="log(Biomass [gr])")
> par(mar=c(10,4,1,2))
> boxplot(log(Total.Biomass)~Scenario*Habitat, data=sn, las=2,
+ ylab="log(Biomass [gr])")
1.5 1.5
log(Biomass [gr])
log(Biomass [gr])
1.0 1.0
0.5 0.5
0.0 0.0
Control
Dry Summer
Wet Summer
Forest
Grassland
Shrubland
●
log(Biomass [gr])
log(Biomass [gr])
1.5 1.5
●
1.0 1.0
0.5 0.5
0.0 0.0
Control.Forest
Dry Summer.Forest
Wet Summer.Forest
Control.Grassland
Dry Summer.Grassland
Wet Summer.Grassland
Control.Shrubland
Dry Summer.Shrubland
Wet Summer.Shrubland
1 4 7 10 14 18 22
44
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> library(lattice)
> bwplot(log(Total.Biomass)~Habitat|Scenario, data=sn)
> bwplot(log(Total.Biomass)~Scenario|Plot, data=sn)
Response: log(Total.Biomass)
Df Sum Sq Mean Sq F value Pr(>F)
factor(Plot) 23 5.5275 0.24033 2.4415 0.006484 **
Scenario 2 0.8448 0.42242 4.2915 0.020489 *
Scenario:Habitat 4 0.3121 0.07803 0.7927 0.536893
Residuals 40 3.9373 0.09843
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> library(nlme)
> lme.sn <- lme(log(Total.Biomass) ~ Scenario*Habitat,
+ random=~1|Plot, data=sn)
> anova(lme.sn)
45
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
df AIC
lme.sn0 10 70.71740
lme.sn1 11 72.71740
lme.sn2 16 72.64425
Vemos que el modelo lme.sn0, que no incluye ningún factor aleatorio, es el más
parsimonioso. Con exactamente dos puntos de diferencia en AIC le sigue el
modelo lme.sn1. Aunque aquı́ la lógica dictarı́a seguir con el modelo sin efectos
aleatorios, utilizando para ello modelos lineales, vamos a seleccionar el modelo
lme.sn1, que en un sentido estricto es muy parecido al lme.sn0, para ilustrar el
uso de modelos mixtos.
46
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
vez es mejor opción comparar modelos anidados como en el caso de los efectos
aleatorios. Recordemos que, para hacer esto, debemos estimar los parámetros
de los modelos utilizando un estimador de ML.
df AIC
lme.sn3 3 68.48027
lme.sn4 5 63.31922
lme.sn5 7 44.91361
lme.sn6 11 49.42073
Random effects:
Formula: ~1 | Plot
(Intercept) Residual
StdDev: 0.02188738 0.3124299
47
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Correlation:
(Intr) ScnrDS ScnrWS HbttGr
ScenarioDry Summer -0.560
ScenarioWet Summer -0.560 0.523
HabitatGrassland -0.496 -0.046 -0.046
HabitatShrubland -0.542 0.000 0.000 0.488
Number of Observations: 70
Number of Groups: 24
> library(MuMIn)
> r.squaredGLMM(lme.sn)
R2m R2c
0.3855828 0.3885835
48
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
● ●
3
3
● ●
2
2
Residuals
Residuals
●
● ●
● ● ●
1
●
● ●
●
● ● ● ● ● ● ●
●
●
● ● ● ● ●
●
● ●
●
●
●
0
● ● ● ●
● ● ● ● ●
● ●
●
● ●
● ●
● ● ●
● ● ● ●
● ● ●
●
● ●
−2
−2
● ●
Fitted values
● ●
3
3
Sample Quantiles
● ●
2
2
Residuals
●
● ●
●●●
1
●●
●●
●●●●
●●
●
●●
●●
●●
●
●●
●●
●
●●
●●
●
0
●
●●
●●
●
●●
●
●●
●
●
●●
●●
●●
●●
●●
●
●●●●
●
●●●●
● ●●
−2
−2
Forest Shrubland −2 −1 0 1 2
Theoretical Quantiles
49
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> library(ADER)
> data(fruit)
factor(YEAR)
factor(TAG) 1 2 3
86 45 662 0
101 6 7 0
155 700 225 96
160 67 0 43
192 61 164 12
203 631 306 156
352 3 0 0
415 17 0 0
486 118 3266 319
487 113 322 30
786 495 534 11
787 86 73 0
836 30 301 15
889 80 0 0
906 10 111 0
50
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
●
8000
6000
Número de frutos
●
4000
● ●
2000
● ● ●
● ●
●
● ● ● ●● ●
● ● ● ●
● ● ● ● ● ● ● ●●
●● ●● ● ● ●●● ●●●● ● ●● ● ● ● ● ●
● ●● ●● ●● ● ● ●●
●●●● ●
●● ●●●
●●●●●●
●
● ●●
●● ●
●●●
●
● ●●●
● ●●●
●●
●
●
●●●
●●●●●●●
●●
●●●● ●● ●
● ●
●●●
● ●
●●●● ●
●●●●● ● ●● ● ● ●
● ● ●
0
DBH
51
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
●
8
● ●
● ● ●
● ●
●
●
log(Número de frutos)
● ● ● ●
● ●
● ● ● ●●
● ●● ●
6
● ● ●
● ● ● ●
● ● ● ● ●
● ●● ●● ●● ● ●
● ● ● ● ●
● ●
● ●
● ● ● ● ● ● ●
●● ● ●
● ● ●
● ● ● ●● ● ●● ●
● ● ● ●● ● ● ● ● ●
● ●
● ● ●●
●● ●
4
●
● ● ●●●● ● ●●
● ● ● ● ●
●● ●
● ● ● ●
● ● ● ● ●
● ●● ●
●● ● ●● ● ●
●●
● ● ● ●● ●
●●
2
● ● ● ●
● ●
●● ●
● ● ● ●
●
DBH
Vamos a analizar los datos con un modelo de medidas repetidas. Por tanto el
modelo que plantearemos será el siguiente:
Response 1 :
Call:
lm(formula = `1` ~ log(DBHtabs))
Residuals:
Min 1Q Median 3Q Max
52
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -14.2145 2.3554 -6.035 9.09e-09 ***
log(DBHtabs) 2.9513 0.3825 7.717 8.40e-13 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Response 2 :
Call:
lm(formula = `2` ~ log(DBHtabs))
Residuals:
Min 1Q Median 3Q Max
-5.3252 -1.9091 0.6068 1.5728 4.2727
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -16.7853 3.2057 -5.236 4.62e-07 ***
log(DBHtabs) 3.3177 0.5205 6.374 1.55e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Response 3 :
Call:
lm(formula = `3` ~ log(DBHtabs))
Residuals:
Min 1Q Median 3Q Max
-3.8295 -1.9507 0.1452 1.8765 5.2238
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -9.954 2.882 -3.453 0.000693 ***
log(DBHtabs) 2.099 0.468 4.485 1.31e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
53
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> library(nlme)
> lme.fruit <- lme(LOGFRUIT~factor(YEAR)*DBH, random=~1|factor(TAG),
+ data=fruit)
> anova(lme.fruit)
> summary(lme.fruit)
Random effects:
Formula: ~1 | factor(TAG)
(Intercept) Residual
StdDev: 0.910442 1.190307
54
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Correlation:
(Intr) fc(YEAR)2 fc(YEAR)3 DBH f(YEAR)2:
factor(YEAR)2 -0.535
factor(YEAR)3 -0.590 0.457
DBH -0.957 0.509 0.559
factor(YEAR)2:DBH 0.519 -0.959 -0.443 -0.538
factor(YEAR)3:DBH 0.567 -0.441 -0.956 -0.583 0.466
Aunque este no es todavı́a el modelo definitivo, este modelo parece indicar que
realmente no hay una interacción entre DBH y año. Es decir, que las diferentes
pendientes estimadas para cada año no son realmente diferentes, por lo que
podemos asumir una única pendiente que resume la relación entre la
producción de frutos y el DBH.
df AIC
lme.fruit0 7 1609.605
lme.fruit1 8 1571.561
lme.fruit2 13 1575.523
55
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
df AIC
lme.fruit3 3 1608.961
lme.fruit4 5 1566.002
lme.fruit5 6 1523.951
lme.fruit6 8 1526.595
Random effects:
Formula: ~1 | factor(TAG)
(Intercept) Residual
StdDev: 0.9081268 1.190028
56
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> library(MuMIn)
> r.squaredGLMM(lme.fruit)
R2m R2c
0.2072428 0.4989978
57
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
● ●
2
2
●
●● ● ● ● ●●
●
●● ● ● ●●●●●●●
●● ●
● ● ●●●●●●
●●
●● ●●
●●●●
● ●
●●●
● ●●●● ●
●●●● ● ● ● ●
1
●●●● ●●
●●
●● ●● ●●
● ●
1
Residuals
Residuals
●●●● ● ● ● ●
●●● ●
●●
●
● ●●●●●
●
●●
●
● ●
●●●●●● ●●●
●
●
● ● ●● ●●
●●
●●●
●
●●
●
●
●
●
●
● ●
●●
●●
●
●
●●
●
●
●
●
●●
●
●
●●●●●
●●●
●
●
●● ●
●
●● ● ●
●● ●●● ●
●●●● ●●●●●●
●
● ● ●
●●● ●●●●●
0
●
0
●
● ● ●
● ●●●●● ●
●●● ●●
● ●●
●●●●●●●●●●●● ● ● ●●●
● ● ●
●● ● ●●
● ●● ● ●●● ●●●●●
●
●●● ●●●●●
●●●
● ●●●●
● ●
● ●
●
●●●●●● ●
●● ● ● ●
●●●●● ●
●●●●●●●●● ● ●●●
●●● ●● ●● ●●● ●●●●●● ● ●●● ●●
● ●●
●● ● ●● ● ●●● ●
●
●●
●
●
●● ●●●
●● ●● ● ●
●●●● ●●●● ●
−2
−2
● ●
●
● ●
2 3 4 5 6 7 8 1 2 3
Fitted values
● ●
2
●●●●
Sample Quantiles
●
●
●●
●●
●
20 40 60 80
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●●
1
●
●
●
Frequency
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●●
●
0
●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●●
●
●●
●●
●●
−2
●●●
●
●
0
−3 −2 −1 0 1 2 −3 −2 −1 0 1 2 3
58
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> library(ADER)
> data(cet)
> str(cet)
59
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Si exploramos más de cerca los datos vemos que hay algunos 0 en la variable
Sex. Esto es, el sexo de algunos individuos no ha podido ser determinado
correctamente. Tenemos que eliminar estos datos antes de continuar con el
análisis.
60
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
> par(mfcol=c(3,3))
> boxplot(Age~Species, data=cet)
> boxplot(Age~DolphinID, data=cet)
> boxplot(Age~Sex, data=cet)
> boxplot(Age~Location, data=cet)
> boxplot(Age~Stain, data=cet)
> interaction.plot(cet$Stain, cet$Species, cet$Age)
> interaction.plot(cet$Stain, cet$DolphinID, cet$Age)
> interaction.plot(cet$Stain, cet$Location, cet$Age)
> interaction.plot(cet$Stain, cet$Sex, cet$Age)
25
25
25
●
●
cet$DolphinID
2
20
20
20
58
mean of cet$Age
61
15
15
15
41
60
51
10
10
10
54
57
5
5
46
49
4
0
0
48
Delphinusdelphis Stenellafrontalis Scotland Spain Elrich Mayer Toluidine 9
3
cet$Stain 23
27
31
47
28
7
10
22
25
25
●
●
29
cet$Location
35
9
Spain
20
20
14
Scotland
mean of cet$Age
30
8
50
15
15
11
7
42
10
10
43
6
37
59
5
6
33
4
21
0
12
1 6 12 20 27 34 41 48 55 Elrich Mayer Toluidine Elrich Mayer Toluidine 34
1
cet$Stain 5
8
25
32
36
38
39
25
●
12
●
cet$Species cet$Sex
44
7.0
45
Stenellacoeruleoalba 1
20
13
Delphinusdelphis 2
mean of cet$Age
mean of cet$Age
10
19
Stenellafrontalis
20
15
6.5
Tursiopstruncatus
26
Lagenorhynchusacutus
8
53
Phocoenaphocoena
10
40
56
6.0
6
15
5
18
24
4
0
17
52
1 2 Elrich Mayer Toluidine Elrich Mayer Toluidine 55
10
cet$Stain cet$Stain
Para explorar mejor las interacciones entre factores (fijos y aleatorios) serı́a
conveniente utilizar las gráficas condicionadas del paquete lattice.
Vamos a analizar los datos con un modelo lineal. En este modelo vamos a
calcular el efecto del método de tinción, la región y el sexo, sin considerar la
especia ni el individuo. También vamos a contemplar todas las posibles
interacciones entre los factores dos a dos y la interacción entre los tres factores.
61
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Response: Age
Df Sum Sq Mean Sq F value Pr(>F)
Sex 1 10.9 10.95 0.3354 0.5633
Stain 2 34.2 17.09 0.5234 0.5935
Location 1 1024.1 1024.15 31.3711 8.741e-08 ***
Sex:Stain 2 1.2 0.58 0.0177 0.9825
Sex:Location 1 31.7 31.75 0.9724 0.3255
Stain:Location 2 17.7 8.85 0.2710 0.7629
Sex:Stain:Location 2 3.5 1.76 0.0539 0.9476
Residuals 165 5386.6 32.65
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> library(nlme)
> lme.cet <- lme(f1, random=~1|Species/DolphinID, data=cet)
> anova(lme.cet)
> summary(lme.cet)
Random effects:
Formula: ~1 | Species
62
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
(Intercept)
StdDev: 0.8980723
63
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Los modelos que podemos plantear en este caso son: (1) un modelo sin efecto
aleatorio (equivalente a un modelo lineal pero utilizando un estimador REML).
Este modelo lo calcularemos con la función gls(); (2) un modelo que incluya la
varianza aleatoria de la constante (gran media) dentro de cada especimen
(anidado dentro de especie) y de cada especie (por tanto serı́an dos coeficientes
de varianza).
En los gráficos de perfil no hemos visto aparentemente ninguna interacción
entre el efecto de la tinción y ninguno de los otros factores sobre la edad. En
un modelo lineal mixto la interacción entre el método de tinción y los factores
aleatorios se estimarı́a por medio de las varianzas aleatorias estimadas para
cada uno de los niveles del factor (método de teñido) menos uno. Pero como a
priori no parece haber una interacción, podrı́amos obviar este modelo más
complejo o, simplemente incluirlo y ver si es mejor o peor que los otros dos
modelos comparándolos mediante el test de verosimilitud.
Vemos que esto da un error para el modelo lme.cet2. Lo que ocurre es que
hacen falta más iteraciones para poder estimar los coeficientes aleatorios por
medio del estimador REML. Para modificar el número de iteraciones en el
proceso de estimación de los coeficientes aleatorios del modelo podemos
utilizar la función lmeControl().
Vemos que el modelo lme.cet1, que contiene dos términos aleatorios para la
constante (uno para el especimen y otro para la especie) es mucho más
adecuado que el modelo sin efectos aleatorios (el AIC disminuye de 1101.45 a
64
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
df AIC
lme.cet3 4 796.8521
lme.cet4 5 798.8503
lme.cet5 6 765.5389
lme.cet6 7 760.8669
lme.cet7 9 743.6632
lme.cet8 12 744.9647
lme.cet9 11 746.6293
lme.cet10 15 745.2448
65
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
Random effects:
Formula: ~1 | Species
(Intercept)
StdDev: 1.287739
66
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
estimación de la edad del cetáceo con respecto a los otros dos métodos.
También la estimación de la edad está condicionada por la región geográfica,
con una edad estimada mayor en España que en Escocia. Si vemos el gráfico
de interacción de estos dos factores podemos observar que el efecto más
destacado del método de teñido Mayer sobre la estimación de la edad se
produce en las muestras de cetáceos tomadas en España mientras que en
Escocia este efecto no es tan marcado y apenas se perciben diferencias entre
los tres métodos. Esto puede ser debido a que en España los individuos
muestreados son, en promedio, más mayores y podrı́a ser que la estimación del
método Mayer se vea afectada por la edad del especimen. El R2 marginal
explica cerca del 15 % de la variabilidad en la producción de frutos (R2m =
0.147) y el condicional alrededor de un 98 % (R2c = 0.981).
> library(MuMIn)
> r.squaredGLMM(lme.cet)
R2m R2c
0.1474904 0.9813358
67
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
● ●
4
4
● ●
2
2
Residuals
Residuals
● ●● ● ● ●
●
●●● ● ● ● ● ●
●
● ● ● ● ●● ● ●
●●●
● ● ●● ● ● ● ● ●
● ●● ● ●
●●●●
●●
●●● ● ●● ● ● ● ●
● ● ●● ● ● ●● ●●● ● ●
0
●
●●
●●
●
●●
●
●
●●
●
●●●
●●● ● ●
● ● ● ●●
● ●●● ● ● ●● ●
●●● ● ●● ●●
● ●● ● ●
●●●
● ● ● ●
●
● ● ●
●
●
● ●● ● ● ●
−2
−2
●
● ●
● ●
Fitted values
● ●
4
4
Sample Quantiles
●
2
2
Residuals
●
●
● ●
●●
●●
●●●●●
●●
●●
● ●
●●
●
●●
●
●
●
●●
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●●
●
●
●●
●
●
●
0
●
●●
●
●●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●●
●
●●
●
●●
●
●●
●
●●
●
●
●
●●
●
● ●●
●●
●
●●
●
●
●
●●●
● ●●●
−2
−2
●
● ●
● ●
Scotland Spain −2 −1 0 1 2
Theoretical Quantiles
68
Luis Cayuela Modelos mixtos (LMM y GLMM) en R
6. Referencias
◦ Bolker, B., Brooks, M.E., Clark, C.J., Geange, S.W., Poulsen, J.R.,
Stevens, M.H.H. & White, J.-S.S. (2009). Generalized linear mixed
models: a practical guide for ecology and evolution. Trends in Ecology
and Evolution 24(3): 127-135.
◦ Burham, K.P. & Anderson, D.R. (2002). Model selection and multimodel
inference: A practical information-theoretic approach. Springer-Verlag.
◦ Crawley, M.J. (2007). The R Book. Wiley.
◦ Zuur, A.F., Ieno, E.N., Walker, N.J., Saveliev, A.A. & Smith, G.M.
(2009). Mixed effects models and extensions in ecology with R. Springer,
New York.
69