4 votos

Cómo es la intersección calculado en un modelo lineal generalizado y por qué es diferente de un modelo lineal?

Tengo un conjunto de datos de recuento, que me han instalado tanto en un modelo lineal y de Poisson modelo lineal generalizado. La media de los datos en bruto es 233.375 y la desviación estándar 279.983. Me ha sorprendido cuando me ajuste a una distribución de Poisson glm en R que el intercepto = 5.53865. Un negativo bionomial glm en R da una intercepción de 5.4526.

Es esto debido a que los datos son escasos y/o dispersa?

Los datos y el código R son:

data <-c(2, 25,1121,361,251,123,123,81,25,215,4,196,0,353,968,336,179,229,92,204,35,299,8,371)
lm(data ~ 1)
glm(data ~ 1, family = poisson)
glm.nb(data ~1, link = log)

1voto

La diferencia en la estimación de la intercepta no es a causa de la sobredispersión en los datos. Pedro Flom comentario es la respuesta correcta. Para ver esto, cambiar el lm() modelo en un glm() modelo con una gaussiana de la familia:

glm(data ~ 1, family = gaussian)
glm(data ~ 1, family = gaussian(link="log"),start=c(20))

El enlace canónico de la gaussiana de la familia es la identidad de vínculo, de modo que se obtiene exactamente el mismo presupuesto como para lm(). El cambio en el vínculo para el registro de la función de enlace le da la misma estimación de la intersección de que usted está recibiendo de la distribución de Poisson y NB modelos. El modelo gaussiano con registro de enlace es $log(E(Y|X))=θ^′X$, mientras que el glm con identidad enlace es $E(Y|X)=θ^′X$. Es por eso que exponentiating la estimación de intercepción para el vínculo de registro de modelos de $e^{5.453} = 233$ le da la estimación de la intersección de la identidad de enlace de los modelos usted está utilizando la inversa de la función de enlace. Llegar el esperado # de árboles por parcela para este modelo simple es muy fácil con sólo el valor del coeficiente, pero una vez que usted agregue los efectos del tratamiento y otras variables que va a ser más difícil. Usted debe utilizar el predict() función como esta:

data = data.frame(saplings=data,
                  treat=gl(2,6,24,label=c("control","treat")),
                  year=gl(2,12,label=c("2004","2011")))

test.glm = glm.nb(saplings~treat*year,link=log,data=data)
nd = data.frame(treat=gl(2,1,4,label=c("control","treat")),
            year=gl(2,2,label=c("2004","2011")))
predict(test.glm,newdata=nd,type="response")

También ver a esta pregunta, y lea el Capítulo 6 de Zuur et al (2007),"el Análisis de Datos Ecológicos"

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