3 votos

GLM en datos no enteros

Estoy buscando una recomendación sobre qué GLM podría hacer con datos no enteros.

Breves antecedentes de lo que estoy haciendo:

Quiero combinar las tasas de herbivoría calculadas con los datos de abundancia, para comparar la presión total de la herbivoría en diferentes sitios. Para mis tasas de herbivoría, hice un MLG en el que utilicé los recuentos de mordeduras, con los sitios como factor y la duración de la observación (es decir, el tiempo que se observó a cada individuo cuando se contaron las mordeduras) como compensación. Esto fue para comparar las tasas de mordedura entre las diferentes especies.

  • Esto funcionó perfectamente, ya que utilicé un modelo de cuasipoisson y datos de recuento.

A continuación, quiero cuantificar la presión de la herbivoría en cada sitio, pero hay un par de advertencias. En primer lugar, las distintas especies tienen una masa diferente. Así que, en lugar de mirar sólo la abundancia de cada especie, calculé su biomasa total por repetición de cada sitio (3 repeticiones, 7 sitios). A continuación, multipliqué la biomasa total de cada especie por su tasa media de herbivoría para obtener un valor de presión de herbivoría. Por último, sumé todos los valores de presión de herbivoría de cada repetición para obtener un total de herbivoría (ejercida por todas las especies combinadas).

Ahora, tengo los valores totales de herbivoría, 3 repeticiones para 7 sitios (total 21 valores). El plan inicial era hacer un ANOVA, sin embargo mis datos violan los supuestos de homogeneidad de los residuos y distribución normal. He intentado transformar los datos, SQRT lo hace un poco mejor (no mucho) y log+1 (tengo 2 x 0 valores) sesga los datos a la derecha.

Con estos datos consistentes en números no enteros, entiendo que no puedo hacer un GLM de Poisson/cuasi-Poisson... He estado mirando diferentes familias de GLMs y he considerado Gamma pero estoy leyendo cosas contradictorias.

¿Qué análisis estadístico (GLM?) recomendaría para esto? Podría hacer un Kruskall Wallis pero esperaba que hubiera algo más apropiado.

Muchas gracias.

EDITAR: Aquí hay un conjunto de datos de ejemplo (valores ligeramente diferentes a mis datos)

Example<- structure(list(Example_Site = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 
3L, 4L, 4L, 4L, 5L, 5L, 5L, 6L, 6L, 6L, 7L, 7L, 7L), TotalPressure = c(90000L, 
80000L, 35000L, 0L, 5000L, 42500L, 0L, 600L, 1900L, 10600L, 18966L, 
200000L, 77000L, 12342L, 50000L, 3000L, 2000L, 2000L, 70L, 100L, 
0L), Transect = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 
10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 21L, 20L), .Label = c("H1", 
"H2", "H3", "HP1", "HP2", "HP3", "K1", "K2", "K3", "KB1", "KB2", 
"KB3", "MC1", "MC2", "MC3", "N1.1", "N1.2", "N1.3", "N2.1", "N2.2", 
"N2.3"), class = "factor"), Region = structure(c(1L, 1L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 
2L, 2L), .Label = c("A", "B"), class = "factor")), class = "data.frame", row.names = c(NA, 
-21L))

este es el código que he utilizado para generar el lm básico

model<-lm(TotalPressure~Site, data = example)
autoplot(model)

cuando intento aplicar la transformación boxcox al lm esto es lo que obtengo

> boxcox_lm<-boxcox(model)
Error in boxcox.default(model) : response variable must be positive
> boxcox_lm1<-boxcox(1+(model))
Error in 1 + (model) : non-numeric argument to binary operator

Este es el autoplot de los datos SQRT: enter image description here

1voto

dokun1 Puntos 141

Como es probable que haya correlación entre las observaciones (es decir, los valores dentro de los sitios son más similares que los valores entre los sitios), puede considerar un modelo lineal mixto generalizado. En lugar de modelar el sitio como un factor, modélelo como un efecto aleatorio. Esto le ahorrará grados de libertad. Una excelente referencia es Zuur et al. (2009).

Zuur, A.F., E.N. Ieno, N.J. Walker, A.A. Saveliev y G.M. Smith. 2009. Mixed effects models and extension in ecology with R. Springer.

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