25 votos

¿Cómo especificar una distribución lognormal en el argumento de la familia glm en R?

Una pregunta sencilla: ¿Cómo especificar una distribución lognormal en el argumento de la familia GLM en R? No he podido encontrar cómo se puede lograr esto. Por qué no es lognormal (o exponencial) una opción en el argumento de la familia?

En algún lugar de los R-Archives leí que uno simplemente tiene que usar el enlace logarítmico para la familia ajustada a gaussiana en el GLM, con el fin de especificar una lognormal. Sin embargo, esto no tiene sentido porque esto ajustará una regresión no lineal y R empieza a pedir valores de partida.

¿Sabe alguien cómo establecer una distribución lognormal (o exponencial) para un MLG?

15voto

Joe H. Puntos 1577

El ajuste de un GLM logarítmico-normal no tiene nada que ver con la distribución ni con la opción de enlace del glm() función. El término "log-normal" es bastante confuso en este sentido, pero significa que la variable de respuesta se distribuye normalmente (familia=gaussiana), y se aplica una transformación a esta variable de la siguiente manera:

log.glm <- glm(log(y)~x, family=gaussian, data=my.dat)

Sin embargo, al comparar este glm logarítmico-normal con otros glms que utilizan una distribución diferente (por ejemplo, gamma), la función AIC() debería corregirse. ¿Alguien conoce una alternativa a estas AIC() erróneas, en este caso?

15voto

bheklilr Puntos 113

El gamlss permite ajustar modelos aditivos generalizados con distribuciones lognormal y exponencial, y un montón de otras, con cierta variedad en las funciones de enlace y utilizando, si se desea, modelos semiparamétricos o no paramétricos basados en splines penalizados. Tiene algunos trabajos publicados sobre los algoritmos utilizados y documentación y ejemplos vinculados al sitio que he enlazado.

14voto

Berek Bryan Puntos 349

Lognormal no es una opción porque la distribución log-normal no está en el familia exponencial de las distribuciones. Los modelos lineales generalizados sólo pueden ajustarse a distribuciones de la familia exponencial.

No tengo tan claro por qué la exponencial no es una opción, ya que la distribución exponencial es en la familia exponencial (como es de esperar). Otro software estadístico con el que estoy familiarizado permite ajustar la distribución exponencial como un GLM tratándola como un caso especial de la distribución Gamma con el parámetro de forma (también conocido como escala o dispersión) fijado en 1 en lugar de estimado. No veo la manera de fijar este parámetro utilizando el programa R glm() Sin embargo, la función Una alternativa sería utilizar la función survreg() de la función survival paquete con dist="exponential" .

Si tiene datos de respuesta $y$ que crees que sigue una distribución lognormal, la forma habitual de ajustarle un modelo de regresión sería transformarlo en logaritmo, como $\log(y)$ tendrá una distribución normal. El caso más sencillo es entonces ajustar un modelo lineal ordinario (es decir, no generalizado). Sin embargo, el modelo resultante no es exactamente el mismo que se obtendría si se ajustara un MLG con un enlace logarítmico, ya que $\operatorname{E}(\log(Y)) \ne \log(\operatorname{E}(Y)).$

10voto

aron Puntos 174

En cuanto al ajuste del modelo exponencial con glm : Cuando se utiliza el glm con family=Gamma hay que utilizar también las facilidades de apoyo de summary.glm para fijar el parámetro de dispersión en 1:

?summary.glm
fit <- glm(formula =..., family = Gamma)
summary(fit,dispersion=1) 

Y como iba a señalar pero jbowman se me adelantó, el paquete(s) "gamlss" permite el ajuste log-normal:

help(dLOGNO, package=gamlss.dist)

-1voto

Dardarin Puntos 1

Pruebe a utilizar el siguiente comando:

log.glm = glm(y ~ x, family=gaussian(link="log"), data=my.dat)

Aquí funciona y el AIC parece ser correcto.

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