¿Cómo implementar un modelo mixto usando la función betareg en R?

12

Tengo un conjunto de datos compuesto de proporciones que miden el "nivel de actividad" de renacuajos individuales, por lo tanto, los valores se unen entre 0 y 1. Estos datos se recopilaron contando el número de veces que el individuo se movió dentro de un cierto intervalo de tiempo (1 para el movimiento, 0 para ningún movimiento), y luego promediado para crear un valor por individuo. Mi principal efecto fijo sería "nivel de densidad".

El problema al que me enfrento es que tengo una variable de factor, "estanque" que me gustaría incluir como un efecto aleatorio: no me importan las diferencias entre los estanques, pero me gustaría tenerlas en cuenta estadísticamente. Un punto importante sobre los estanques es que solo tengo 3 de ellos, y entiendo que es ideal tener más niveles de factores (5+) cuando se trata de efectos aleatorios.

Si es posible hacerlo, me gustaría obtener algunos consejos sobre cómo implementar un modelo mixto usando betareg()o betamix()en R. He leído los archivos de ayuda de R, pero generalmente me resulta difícil de entender (lo que cada parámetro de argumento realmente significa en el contexto de mis propios datos y lo que significan los valores de salida en términos ecológicos), por lo que tiendo a trabajar mejor a través de ejemplos.

En una nota relacionada, me preguntaba si en su lugar puedo usar un glm()enlace debajo de una familia binomial y logit para lograr la contabilidad de los efectos aleatorios con este tipo de datos.

Kat Y
fuente
no, no puede incluir términos de error en glm (). ¿Qué pasa con logit transforma tu respuesta y considerando un modelo mixto lineal?
utobi
@utobi Gracias, intentaré esto. Entonces, ¿no te preocupa tener un efecto aleatorio con solo 3 niveles?
Kat Y
No sé el significado de su variable "estanque", pero si tiene medidas repetidas, los efectos aleatorios son casi imprescindibles. En caso de que no tenga medidas repetidas, aquí aleatorio vs fijo es un debate abierto. Tres niveles de efectos aleatorios pueden estar bien, en principio su varianza es estimable. Le sugiero que revise la literatura en su campo. Un buen libro que trata sobre los efectos aleatorios versus los fijos es stat.columbia.edu/~gelman/arm .
utobi
1
@utobi gracias por tu consejo. Fue útil. ¡Miraré ese libro! Terminé haciendo transformaciones logit y usé lmer ().
Kat Y
Mira esta respuesta stats.stackexchange.com/questions/167340/…
Diogo B Provete

Respuestas:

11

Las capacidades actuales de betaregno incluyen efectos aleatorios / mixtos. En betareg()sólo se puede incluir efectos fijos, por ejemplo, para la variable de estanque de tres niveles. La betamix()función implementa una regresión beta de mezcla finita , no una regresión beta de efectos mixtos .

En su caso, primero trataría de ver qué efecto tiene un efecto de factor de estanque fijo. Esto "le cuesta" dos grados de libertad, mientras que un efecto aleatorio sería un poco más barato con solo un grado adicional de libertad. Pero me sorprendería si los dos enfoques conducen a ideas cualitativas muy diferentes.

Finalmente, mientras que glm()no es compatible con la regresión beta, pero en el mgcvpaquete está la betar()familia que se puede usar con la gam()función.

Achim Zeileis
fuente
Gracias por su aporte. Aclaró algunos aspectos de las funciones betareg. En este punto, tomé el consejo de @utobi e hice transformaciones logit para poder usar lmer (). Examinaré gam () ya que mi próximo conjunto de datos también está entre 0 y 1, y no puedo normalizar las distribuciones a través de transformaciones :)
Kat Y
1
Esperaría que los enfoques arrojen resultados similares, pero también algunas diferencias de las que podría aprender algo. Por lo tanto, recomendaría probar los tres, es decir, betaregcon efectos fijos, transformados logit lmercon efectos aleatorios y gamcon betar. (Y también: si la respuesta fue útil, considere votar o aceptarla).
Achim Zeileis
15

El paquete glmmTMB puede ser útil para cualquier persona con una pregunta similar. Por ejemplo, si desea incluir el estanque de la pregunta anterior como un efecto aleatorio, el siguiente código sería suficiente:

glmmTMB(y ~ 1 + (1|pond), df, family=list(family="beta",link="logit"))
Kori K
fuente
Bienvenido a CV. Gracias por tu contribución. Esto es más bien un comentario que una respuesta. ¿Puedes extender tu respuesta por favor?
Ferdi
Perdón por el retraso, no vi el comentario de inmediato. Espero que ayude.
Kori K
3

Esto comenzó como un comentario, pero fue largo. No creo que un modelo de efectos aleatorios sea apropiado aquí. Solo hay 3 estanques. ¿Desea estimar una variación de 3 números? Eso es lo que está pasando con un modelo de efectos aleatorios. Supongo que los estanques fueron elegidos por su conveniencia para el investigador, y no como una muestra aleatoria de "Estanques de las Américas".

La ventaja de un modelo de efectos aleatorios es que le permite construir un intervalo de confianza en la respuesta (nivel de actividad) que tiene en cuenta la variación de estanque a estanque. Un modelo de efectos fijos, en otras palabras, tratar el estanque como un bloque, ajusta la respuesta para el efecto del estanque. Si hubo algún efecto de tratamiento adicional, digamos dos especies de ranas en cada estanque, el bloqueo reduce el error cuadrado medio (denominador de la prueba F) y permite que brille el efecto del tratamiento.

En este ejemplo, no hay efecto del tratamiento y el número de estanques es demasiado pequeño para un modelo de efectos aleatorios (y probablemente demasiado "no aleatorio"), por lo que no estoy seguro de qué conclusiones se pueden sacar de este estudio. Se podría obtener una buena estimación de la diferencia entre los estanques, pero eso es todo. No veo inferencias a la población más amplia de ranas en otros entornos de estanques. Uno podría enmarcarlo como un estudio piloto, supongo.

Tenga en cuenta que cualquier uso de un modelo de efectos aleatorios aquí dará una estimación muy poco confiable para la varianza del estanque y debe usarse con precaución.

Pero en cuanto a su pregunta original, ¿no es más un problema de tarifas? La distribución de inicio para eventos por unidad de tiempo es el Poisson. Entonces podría hacer una regresión de Poisson usando los recuentos con el intervalo de tiempo como un desplazamiento.

Placidia
fuente