Tengo algunas preguntas con respecto a la especificación e interpretación de GLMM. 3 preguntas son definitivamente estadísticas y 2 son más específicamente sobre R. Estoy publicando aquí porque, en última instancia, creo que el problema es la interpretación de los resultados de GLMM.
Actualmente estoy tratando de ajustar un GLMM. Estoy usando datos del censo de EE. UU . De la Base de datos del tracto longitudinal . Mis observaciones son secciones censales. Mi variable dependiente es el número de unidades de vivienda vacantes y estoy interesado en la relación entre la vacante y las variables socioeconómicas. El ejemplo aquí es simple, solo usando dos efectos fijos: porcentaje de población no blanca (raza) e ingreso familiar promedio (clase), más su interacción. Me gustaría incluir dos efectos aleatorios anidados: tratados dentro de décadas y décadas, es decir (década / tratado). Los estoy considerando al azar en un esfuerzo por controlar la autocorrelación espacial (es decir, entre tractos) y temporal (es decir, entre décadas). Sin embargo, estoy interesado en la década como un efecto fijo también, así que también lo estoy incluyendo como un factor fijo.
Como mi variable independiente es una variable de recuento de enteros no negativa, he estado tratando de ajustar poisson y GLMM binomiales negativos. Estoy usando el registro del total de unidades de vivienda como compensación. Esto significa que los coeficientes se interpretan como el efecto sobre la tasa de vacantes, no el número total de casas vacantes.
Actualmente tengo resultados para un Poisson y un GLMM binomial negativo estimado usando glmer y glmer.nb de lme4 . La interpretación de los coeficientes tiene sentido para mí según mi conocimiento de los datos y el área de estudio.
Si quieres los datos y el script , están en mi Github . El guión incluye más de las investigaciones descriptivas que hice antes de construir los modelos.
Aquí están mis resultados:
Modelo de Poisson
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: poisson ( log )
Formula: R_VAC ~ decade + P_NONWHT + a_hinc + P_NONWHT * a_hinc + offset(HU_ln) + (1 | decade/TRTID10)
Data: scaled.mydata
AIC BIC logLik deviance df.resid
34520.1 34580.6 -17250.1 34500.1 3132
Scaled residuals:
Min 1Q Median 3Q Max
-2.24211 -0.10799 -0.00722 0.06898 0.68129
Random effects:
Groups Name Variance Std.Dev.
TRTID10:decade (Intercept) 0.4635 0.6808
decade (Intercept) 0.0000 0.0000
Number of obs: 3142, groups: TRTID10:decade, 3142; decade, 5
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.612242 0.028904 -124.98 < 2e-16 ***
decade1980 0.302868 0.040351 7.51 6.1e-14 ***
decade1990 1.088176 0.039931 27.25 < 2e-16 ***
decade2000 1.036382 0.039846 26.01 < 2e-16 ***
decade2010 1.345184 0.039485 34.07 < 2e-16 ***
P_NONWHT 0.175207 0.012982 13.50 < 2e-16 ***
a_hinc -0.235266 0.013291 -17.70 < 2e-16 ***
P_NONWHT:a_hinc 0.093417 0.009876 9.46 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) dc1980 dc1990 dc2000 dc2010 P_NONWHT a_hinc
decade1980 -0.693
decade1990 -0.727 0.501
decade2000 -0.728 0.502 0.530
decade2010 -0.714 0.511 0.517 0.518
P_NONWHT 0.016 0.007 -0.016 -0.015 0.006
a_hinc -0.023 -0.011 0.023 0.022 -0.009 0.221
P_NONWHT:_h 0.155 0.035 -0.134 -0.129 0.003 0.155 -0.233
convergence code: 0
Model failed to converge with max|grad| = 0.00181132 (tol = 0.001, component 1)
Modelo binomial negativo
Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
Family: Negative Binomial(25181.5) ( log )
Formula: R_VAC ~ decade + P_NONWHT + a_hinc + P_NONWHT * a_hinc + offset(HU_ln) + (1 | decade/TRTID10)
Data: scaled.mydata
AIC BIC logLik deviance df.resid
34522.1 34588.7 -17250.1 34500.1 3131
Scaled residuals:
Min 1Q Median 3Q Max
-2.24213 -0.10816 -0.00724 0.06928 0.68145
Random effects:
Groups Name Variance Std.Dev.
TRTID10:decade (Intercept) 4.635e-01 6.808e-01
decade (Intercept) 1.532e-11 3.914e-06
Number of obs: 3142, groups: TRTID10:decade, 3142; decade, 5
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.612279 0.028946 -124.79 < 2e-16 ***
decade1980 0.302897 0.040392 7.50 6.43e-14 ***
decade1990 1.088211 0.039963 27.23 < 2e-16 ***
decade2000 1.036437 0.039884 25.99 < 2e-16 ***
decade2010 1.345227 0.039518 34.04 < 2e-16 ***
P_NONWHT 0.175216 0.012985 13.49 < 2e-16 ***
a_hinc -0.235274 0.013298 -17.69 < 2e-16 ***
P_NONWHT:a_hinc 0.093417 0.009879 9.46 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation of Fixed Effects:
(Intr) dc1980 dc1990 dc2000 dc2010 P_NONWHT a_hinc
decade1980 -0.693
decade1990 -0.728 0.501
decade2000 -0.728 0.502 0.530
decade2010 -0.715 0.512 0.517 0.518
P_NONWHT 0.016 0.007 -0.016 -0.015 0.006
a_hinc -0.023 -0.011 0.023 0.022 -0.009 0.221
P_NONWHT:_h 0.154 0.035 -0.134 -0.129 0.003 0.155 -0.233
Pruebas de Poisson DHARMa
One-sample Kolmogorov-Smirnov test
data: simulationOutput$scaledResiduals
D = 0.044451, p-value = 8.104e-06
alternative hypothesis: two-sided
DHARMa zero-inflation test via comparison to expected zeros with simulation under H0 = fitted model
data: simulationOutput
ratioObsExp = 1.3666, p-value = 0.159
alternative hypothesis: more
Pruebas binomiales negativas de DHARMa
One-sample Kolmogorov-Smirnov test
data: simulationOutput$scaledResiduals
D = 0.04263, p-value = 2.195e-05
alternative hypothesis: two-sided
DHARMa zero-inflation test via comparison to expected zeros with simulation under H0 = fitted model
data: simulationOutput2
ratioObsExp = 1.376, p-value = 0.174
alternative hypothesis: more
Parcelas DHARMa
Poisson
Binomio negativo
Preguntas estadísticas
Como todavía estoy descubriendo GLMMs, me siento inseguro sobre las especificaciones y la interpretación. Tengo algunas preguntas:
Parece que mis datos no admiten el uso de un modelo de Poisson y, por lo tanto, estoy mejor con binomio negativo. Sin embargo, constantemente recibo advertencias de que mis modelos binomiales negativos alcanzan su límite de iteración, incluso cuando aumento el límite máximo. "En theta.ml (Y, mu, pesos = objeto @ resp $ pesos, límite = límite,: se alcanzó el límite de iteración". Esto ocurre usando bastantes especificaciones diferentes (es decir, modelos mínimos y máximos para efectos fijos y aleatorios). También he intentado eliminar valores atípicos en mi dependiente (¡bruto, lo sé!), Ya que el 1% superior de los valores son muy atípicos (rango inferior del 99% de 0-1012, superior 1% de 1013-5213). No tiene ningún efecto en las iteraciones y muy poco efecto en los coeficientes tampoco. No incluyo esos detalles aquí. Los coeficientes entre Poisson y el binomio negativo también son bastante similares. ¿Es esta falta de convergencia un problema? ¿Es el modelo binomial negativo un buen ajuste? También ejecuté el modelo binomial negativo usandoAllFit y no todos los optimizadores lanzan esta advertencia (bobyqa, Nelder Mead y nlminbw no lo hicieron).
La variación para mi efecto fijo de la década es consistentemente muy baja o 0. Entiendo que esto podría significar que el modelo está sobreajustado. Eliminar la década de los efectos fijos aumenta la varianza de efectos aleatorios de la década a 0.2620 y no tiene mucho efecto sobre los coeficientes de efectos fijos. ¿Hay algo malo en dejarlo? Estoy bien interpretándolo como simplemente no es necesario explicar entre la varianza de observación.
¿Estos resultados indican que debería probar modelos con inflación cero? DHARMa parece sugerir que la inflación cero puede no ser el problema. Si crees que debería intentarlo de todos modos, mira a continuación.
Preguntas R
Estaría dispuesto a probar modelos inflados a cero, pero no estoy seguro de qué paquete implica efectos aleatorios anidados para Poisson inflado a cero y GLMM binomiales negativos. Usaría glmmADMB para comparar AIC con modelos inflados a cero, pero está restringido a un solo efecto aleatorio, por lo que no funciona para este modelo. Podría probar MCMCglmm, pero no conozco las estadísticas bayesianas, por lo que tampoco es atractivo. ¿Alguna otra opción?
¿Puedo mostrar coeficientes exponenciados dentro del resumen (modelo), o tengo que hacerlo fuera del resumen como lo hice aquí?
bobyqa
optimizador y que no produjo ninguna advertencia. ¿Cuál es el problema entonces? Solo úsalo bobyqa
.
bobyqa
converge mejor que el optimizador predeterminado (y creo que leí en alguna parte que se convertirá en predeterminado en las versiones futuras de lme4
). No creo que deba preocuparse por la no convergencia con el optimizador predeterminado si converge bobyqa
.
decade
tanto fijo como aleatorio no tiene sentido. Puede tenerlo como fijo e incluirlo solo(1 | decade:TRTID10)
al azar (lo que equivale a(1 | TRTID10)
suponer queTRTID10
no tiene los mismos niveles durante diferentes décadas), o eliminarlo de los efectos fijos. Con solo 4 niveles, es mejor que lo arregles: la recomendación habitual es ajustar los efectos aleatorios si uno tiene 5 niveles o más.