r - ¿Por qué aparecen NA en el resultado del resumen del modelo? GLMM inflado a cero con glmmTMB()

CorePress2023-11-30  1

Estoy intentando ejecutar un GLMM binomial negativo inflado a cero con glmmTMB; sin embargo, obtengo NA en los valores z y p del resultado del resumen de mi modelo. No estoy seguro de cuál es la causa; He seguido la viñeta y la ayuda en línea, pero creo que debe haber un problema con mis datos y la técnica que estoy intentando utilizar. Mis datos son similares al ejemplo de Salamanders utilizado en la documentación de respaldo: una distribución binomial negativa, inflada en cero, con la misma estructura de datos.

¿Dónde está el problema? ¿Estos datos son adecuados para usar family = nbinom2?

datos:

> head(abun_data)
    depl_ID          Keyword_1 depl_dur     logging n AmbientTemperature ElNino
1 B1-1-14_1        Bearded Pig       82 pre-logging 3           23.33333 before
2 B1-1-14_1  Malayan Porcupine       82 pre-logging 0           24.33333 before
3 B1-1-14_1 Pig-tailed Macaque       82 pre-logging 3           24.33333 before
4 B1-1-14_1        Sambar Deer       82 pre-logging 0           24.00000 before
5 B1-1-14_1        Red Muntjac       82 pre-logging 2           24.00000 before
6 B1-1-14_1  Lesser Mouse-deer       82 pre-logging 1           23.00000 before

> str(abun_data)
'data.frame':   1860 obs. of  7 variables:
 $ depl_ID           : Factor w/ 315 levels "B1-1-14_1","B1-1-14_2",..: 1 1 1 1 1 1 2 2 2 2 ...
 $ Keyword_1         : Factor w/ 6 levels "Bearded Pig",..: 1 2 3 4 5 6 1 2 3 4 ...
 $ depl_dur          : num  82 82 82 82 82 82 26 26 26 26 ...
 $ logging           : Factor w/ 3 levels "logging","post-logging",..: 3 3 3 3 3 3 3 3 3 3 ...
 $ n                 : int  3 0 3 0 2 1 2 0 0 0 ...
 $ AmbientTemperature: num  23.3 24.3 24.3 24 24 ...
 $ ElNino            : Factor w/ 3 levels "after","before",..: 2 2 2 2 2 2 2 2 2 2 ...

Mi modelo:

> zinb <- glmmTMB(n ~ Keyword_1 * logging + (1|depl_ID), zi = ~ Keyword_1 * logging,
+                 data = abun_data, family = "nbinom2")
Warning message:
In fitTMB(TMBStruc) :
  Model convergence problem; non-positive-definite Hessian matrix. See vignette('troubleshooting')
> summary(zinb)
 Family: nbinom2  ( log )
Formula:          n ~ Keyword_1 * logging + (1 | depl_ID)
Zero inflation:     ~Keyword_1 * logging
Data: abun_data

     AIC      BIC   logLik deviance df.resid 
      NA       NA       NA       NA     1822 

Random effects:

Conditional model:
 Groups  Name        Variance Std.Dev.
 depl_ID (Intercept) 0.5413   0.7358  
Number of obs: 1860, groups:  depl_ID, 310

Overdispersion parameter for nbinom2 family (): 1.29 

Conditional model:
                                                 Estimate Std. Error z value Pr(>|z|)
(Intercept)                                       0.99965         NA      NA       NA
Keyword_1Malayan Porcupine                       -1.30985         NA      NA       NA
Keyword_1Pig-tailed Macaque                      -0.90110         NA      NA       NA
Keyword_1Sambar Deer                             -1.34268         NA      NA       NA
Keyword_1Red Muntjac                             -0.76250         NA      NA       NA
Keyword_1Lesser Mouse-deer                      -16.21798         NA      NA       NA
loggingpost-logging                               0.83935         NA      NA       NA
loggingpre-logging                                0.58252         NA      NA       NA
Keyword_1Malayan Porcupine:loggingpost-logging   -0.53276         NA      NA       NA
Keyword_1Pig-tailed Macaque:loggingpost-logging  -5.52093         NA      NA       NA
Keyword_1Sambar Deer:loggingpost-logging         -0.73450         NA      NA       NA
Keyword_1Red Muntjac:loggingpost-logging          0.04825         NA      NA       NA
Keyword_1Lesser Mouse-deer:loggingpost-logging   -9.74912         NA      NA       NA
Keyword_1Malayan Porcupine:loggingpre-logging    -0.18893         NA      NA       NA
Keyword_1Pig-tailed Macaque:loggingpre-logging   -0.08802         NA      NA       NA
Keyword_1Sambar Deer:loggingpre-logging           0.72087         NA      NA       NA
Keyword_1Red Muntjac:loggingpre-logging           0.51223         NA      NA       NA
Keyword_1Lesser Mouse-deer:loggingpre-logging    15.10588         NA      NA       NA

Zero-inflation model:
                                                Estimate Std. Error z value Pr(>|z|)
(Intercept)                                      -1.3469         NA      NA       NA
Keyword_1Malayan Porcupine                      -11.7164         NA      NA       NA
Keyword_1Pig-tailed Macaque                       1.5618         NA      NA       NA
Keyword_1Sambar Deer                              0.6967         NA      NA       NA
Keyword_1Red Muntjac                            -17.6199         NA      NA       NA
Keyword_1Lesser Mouse-deer                       18.7331         NA      NA       NA
loggingpost-logging                             -19.2344         NA      NA       NA
loggingpre-logging                               -2.1708         NA      NA       NA
Keyword_1Malayan Porcupine:loggingpost-logging   32.6525         NA      NA       NA
Keyword_1Pig-tailed Macaque:loggingpost-logging  -1.2560         NA      NA       NA
Keyword_1Sambar Deer:loggingpost-logging         19.1848         NA      NA       NA
Keyword_1Red Muntjac:loggingpost-logging         -3.4218         NA      NA       NA
Keyword_1Lesser Mouse-deer:loggingpost-logging    7.4168         NA      NA       NA
Keyword_1Malayan Porcupine:loggingpre-logging    14.3338         NA      NA       NA
Keyword_1Pig-tailed Macaque:loggingpre-logging  -22.1736         NA      NA       NA
Keyword_1Sambar Deer:loggingpre-logging           1.6785         NA      NA       NA
Keyword_1Red Muntjac:loggingpre-logging          17.0664         NA      NA       NA
Keyword_1Lesser Mouse-deer:loggingpre-logging   -14.3445         NA      NA       NA
  • esto es casi más apropiado para CrossValidated... - Ben Bolker 7 de junio de 2020 a las 1:27
  • ¡Gracias por los consejos y las ediciones! (nuevo usuario) - Jack123456 8 de junio de 2020 a las 13:21


------------------------

La primera pista es la advertencia

Problema de convergencia de modelos; no-matriz de Hesse positiva-definida. Ver viñeta('solución de problemas')

Esto significa que el modelo no ha convergido, o no cree que lo haya hecho, a una solución donde la superficie de probabilidad logarítmica esté curvada hacia abajo (es decir, un máximo verdadero). Por eso los errores estándar no se pueden calcular (si hicieras el cálculo habitual saldrían negativos o complejos). La probabilidad logarítmica podría calcularse, pero el ajuste del modelo es sospechoso, por lo que glmmTMB devuelve NA en su lugar.

Siguiente pregunta: ¿por qué? A veces esto es misterioso y difícil de diagnosticar, pero en este caso tenemos una buena pista: cuando ves valores de parámetros extremos (por ejemplo, |beta|>10) en un GLM (enlace sin identidad), casi siempre significa que se está produciendo alguna forma de separación completa. Es decir, hay algunas combinaciones.ns de covariables (por ejemplo, Palabra clave_1==Venado ratón menor) donde siempre tienes recuentos cero. En la escala logarítmica, esto significa que la densidad es infinitamente menor que las combinaciones de covariables donde se tiene una media positiva. El parámetro es aproximadamente -16, lo que corresponde a una diferencia de densidad multiplicativa esperada de exp(-16) = 1e-07. Esto no es infinitesimal, pero es lo suficientemente pequeño como para que glmmTMB obtenga diferencias lo suficientemente pequeñas en la probabilidad logarítmica de que el optimizador se detenga. Sin embargo, dado que la superficie de probabilidad es casi plana, no puede calcular la curvatura, etc.

Puedes agrupar o eliminar categorías o hacer algún tipo de regularización (por ejemplo, ver aquí o aquí...); También podría tener sentido tratar la variable Keyword_1 como un efecto aleatorio, que también tendría el efecto de regularizando las estimaciones.

1
  • Muchas gracias por tu ayuda, Ben. Como usted ha señalado, los recuentos de venados ratón menores siempre son cero para las categorías "pre-registro" y "registro". Como mi pregunta de investigación es observar los cambios en la abundancia de los mamíferos antes, durante y después de la tala, observaré las otras especies de mamíferos comúnmente capturadas en mis cámaras trampa. Si no hay otros candidatos adecuados, buscaré abordar la separación completa con los enlaces que tienes.proporcionado, o posiblemente eliminar la especie del análisis. - Jack123456 8 de junio de 2020 a las 13:20
Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare