4 votos

Datos de recuento con efectos mixtos

EDIT: Gracias por la ayuda hasta ahora. He actualizado la pregunta basándome en el trabajo posterior.

Estoy interesado en encontrar cualquier diferencia en la respuesta de los recuentos de dos especies competidoras a la sequedad y la elevación. Ambas se capturan en el mismo tipo de trampa, pero la colocación de la trampa (arbustos frente a edificios) probablemente sesga hacia una especie o la otra, por lo que cada colocación de la trampa se clasifica según el interior/exterior en una escala de 1-3. Una trampa no se mueve una vez colocada. Las trampas están anidadas en sitios, la sequedad se mide en cada combinación de sitio/visita, y la elevación es, por supuesto, constante en cada sitio.

Mis datos incluyen el número de cada especie capturada en 4-12 trampas, en 8-12 sitios durante 6-8 visitas a cada sitio. Las visitas y los sitios están lo suficientemente espaciados como para suponer que son independientes. La mayoría de los datos son ceros, especialmente para Sp_A, que es poco frecuente. A continuación se muestra la estructura de los datos.

R> str(mydata)
'data.frame':   300 obs. of  8 variables:
     $ count    : num  0 5 1 0 1 1 0 0 0 0 ...
     $ species  : Factor w/ 2 levels "a","b": 1 1 1 1 1 1 1 1 1 1 ...
     $ elevation: int  1 1 1 1 1 1 1 1 1 1 ...
     $ dryness  : num  0.179 0.179 0.179 0.179 0.179 ...
     $ site     : Factor w/ 5 levels "a","b","c","d",..: 1 1 1 1 1 1 1 1 1 1 ...
     $ trap     : Factor w/ 50 levels "MT10a","MT10b",..: 6 11 16 21 26 31 36 41 46 1 ...
     $ visit    : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
     $ in_out   : num  1 1 1 1 1 1 1 1 1 1 ...

Como intento inicial, no tuve problemas en utilizar la función de R lmer para modelar la presencia/ausencia de Sp_A con Sp_B como covariable: (SpA>0) ~ Sp_B + elevation + (1|site/trap) + (1|visit)

Sin embargo, por sugerencia de la lista de R-sig-mixed-models, y también de "ils" de este sitio, he remodelado los datos como se ve arriba, y he intentado modelar el recuento con las especies como un factor en el modelo. He utilizado dos paquetes diferentes (lme4 y glmmADMB). Las funciones manejan bien los datos en modelos simples, hasta que añado el factor "especies". Abajo está el código de R y los mensajes de error. Estos mismos errores también ocurren cuando uso datos ficticios más simples. ¿Alguna idea sobre la sintaxis u otros paquetes?

require(lme4)
glmera1 <- glmer(count~elevation*species*in_out 
                 + (1|visit) + (1|site/trap), 
                 data=mydata, family="poisson")
Error in asMethod(object) : matrix is not symmetric [1,2]
In addition: Warning messages:
1: In mer_finalize(ans) :
  Cholmod warning 'not positive definite' at file:../Cholesky/t_cholmod_rowfac.c, line 432
2: In mer_finalize(ans) :
  Cholmod warning 'not positive definite' at file:../Cholesky/t_cholmod_rowfac.c, line 432
3: In mer_finalize(ans) : singular convergence (7)

require(glmmADMB)
admba1 <- glmm.admb(count~elevation*species*in_out, random=~visit, 
                    group="site", data=mydata, family="nbinom")
Error in glmm.admb(count ~ elevation * species * in_out, random = ~visit,  : 
  The function maximizer failed
In addition: Warning message:
running command './nbmm -maxfn 500 ' had status 1

3voto

ESRogs Puntos 1381

Mira esta pregunta: Valores negativos para el AICc (Criterio de Información de Akaike corregido)

La misma explicación es válida para el BIC.

1voto

jgauffin Puntos 54

Pruebe los siguientes paquetes en cran: Rcapture y mra. El método más fácil de usar en R para un modelo lineal logarítmico, abierto cerrado o robusto, M0, Mh, Mt o Mth está bien detallado aquí: http://www.jstor.org/pss/3695557 y en eso se basa Rcapture. Has olvidado especificar en tu llamada a lmer que debe ser una respuesta de recuento (familia = poisson) y tu Y debe ser la abundancia asociada a un historial de captura concreto. La extracción de las abundancias estimadas, las probabilidades de supervivencia, etc., está bien detallada en el enlace de jstor.

Sin embargo, la principal herramienta que la gente utiliza para esto es MARK (http://www.phidot.org/software/mark/docs/book/), y hay un paquete puente que no está en cran llamado RMark (http://www.phidot.org/software/mark/rmark/RMarkWorkshopNotes.pdf). RMark es la principal herramienta para este tipo de cosas y la que ciertamente cuenta con la mayor comunidad. Tiene su propio foro de soporte en phidot.org.

Además, busque en Google el código BUGS del Dr. Schofield para este problema; está en línea en algún lugar, creo que en la disertación.

Por cierto, si te interesa un trabajo en ecología de poblaciones y programación en R, estamos contratando: https://performancemanager4.successfactors.com/career?company=comScore&career_job_req_id=721&career_ns=job_listing&navBarLevel=JOB_SEARCH

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