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