Estoy llevando a cabo una investigación para observar las diferencias en la densidad de peces y la riqueza de especies de peces cuando utilizo dos métodos diferentes de censo visual subacuático. Mis datos originalmente eran datos de conteo, pero luego esto normalmente se cambia a la densidad de peces, pero aún así he decidido usar un Poisson GLM, que espero sea correcto.
model1 <- glm(g_den ~ method + site + depth, poisson)
Mis 3 variables predictoras son método, sitio y profundidad que ordené como factores cuando las ingresé.
Mis variables de respuesta son la riqueza de especies de mero, la densidad de mero y lo mismo para otros grupos de peces. Soy consciente de que la densidad no es un número entero y son datos numéricos, por ejemplo, 1.34849. Sin embargo, ahora recibo este error:
In dpois(y, mu, log = TRUE) : non-integer x = 0.037500
He estado leyendo y muchas personas sugieren usar un desplazamiento, ¿es esto lo más recomendable?
Respuestas:
Hay varios problemas aqui:
g_den
).Si los recuentos observados provienen de áreas diferentes, debe tomar el registro de esas áreas como una nueva variable:
Puede controlar las diferentes áreas para las observaciones de dos maneras diferentes:
larea
como un desplazamiento. Esto hará que su respuesta sea realmente una tasa (aunque lo que aparece en el lado izquierdo de su modelo es un recuento ).larea
como una covariable. Esto controlará las diferentes áreas, pero no hará que su respuesta sea equivalente a una tasa. Este es un enfoque más flexible que le permitirá evaluar si los aumentoslarea
tienen un efecto creciente o decreciente en el conteo (es decir, si la pendiente es menor o mayor que 1).Hay más información sobre estos problemas en los siguientes hilos de CV:
fuente
Parece que dividió los recuentos de peces por el volumen (o quizás el área) del agua estudiada. En ese caso, un desplazamiento es apropiado, debe usar el registro de lo que sea que haya dividido. Quizás
model1 <- glm(g_den ~ method + site + depth + offset(log(area)), poisson)
(editado de una versión incorrecta anterior, falta el registro)
La razón del mensaje de error es que la distribución de Poisson normalmente tiene un valor entero, pero la respuesta no fue un número entero. Esto cambia una vez que está presente un desplazamiento; (respuesta / desplazamiento) debe ser un entero (que por supuesto lo es, suponiendo que los recuentos originales fueran enteros).
fuente
offset
aplique la transformación por defecto, pero ha pasado un tiempo desde que la uséoffset
.offset()
no aplica la transformación por defecto; simplemente obliga al coeficiente a ser 1. Ver, por ejemplo, aquí .Si va a modelar usando el Poisson, debe tener valores enteros para su variable de respuesta. Entonces tienes dos opciones
Si usa el enfoque de compensación, está diciendo que si doblo el área, esperaría obtener el doble de conteo. Si usa el enfoque predictivo, está diciendo que sabe que si multiplica el área, multiplica los conteos, pero no necesariamente por el mismo factor.
Es tu llamada.
fuente