¿Debo usar un desplazamiento para mi Poisson GLM?

11

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?

Vivienne
fuente
1
No se trata realmente de cómo usar R. Esta es una pregunta estadística básica disfrazada como una pregunta R. Debería estar en el tema aquí.
gung - Restablece a Monica

Respuestas:

11

Hay varios problemas aqui:

  1. Debe usar los recuentos observados como su variable de respuesta. No debe usar las densidades ( g_den).
  2. Si los recuentos observados provienen de áreas diferentes, debe tomar el registro de esas áreas como una nueva variable:

    larea = log(area)
  3. Puede controlar las diferentes áreas para las observaciones de dos maneras diferentes:

    • Al usar lareacomo 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 ).
    • Al usar lareacomo 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 aumentos lareatienen 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:

gung - Restablece a Monica
fuente
6

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).

JDL
fuente
2
Usted menciona que debe usar la transformación de área de registro (como el modelo de Poisson usa el enlace de registro) en su respuesta, pero su código no realiza la transformación. No creo que offsetaplique la transformación por defecto, pero ha pasado un tiempo desde que la usé offset.
iacobus
3
Tenga en cuenta que offset() no aplica la transformación por defecto; simplemente obliga al coeficiente a ser 1. Ver, por ejemplo, aquí .
gung - Restablece a Monica
1
Gracias por los comentarios. Entonces, ¿debería cambiar mis datos nuevamente a conteos en lugar de densidades e incluir el área como una variable separada? También me han aconsejado en otro foro que haga un modelo gaussiano gamma o inverso y cambie mis valores cero a 0.00001 si tuviera que mantener los datos como densidades, ¿cree que eso también sería apropiado?
Vivienne
44
E(count)=exp(βTx)area=exp(βTx+log(area))E(count/area)=E(count)/area=exp(βTx)
55
No puede usar las densidades como respuesta. Debe utilizar los recuentos originales como respuesta. Incluir el desplazamiento automáticamente hará que la respuesta de conteo sea equivalente a las densidades de la manera correcta.
gung - Restablecer Monica
5

Si va a modelar usando el Poisson, debe tener valores enteros para su variable de respuesta. Entonces tienes dos opciones

  • Use el área o algún otro denominador adecuado como compensación. Por lo general, esto debería registrarse primero
  • Incluya área o etc. como una variable predictiva. Nuevamente, esto generalmente se incluiría como un registro porque está modelando los recuentos de registros.

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.

mdewey
fuente