¿Puedo usar algoritmos glm para hacer una regresión logística multinomial?


14

Estoy usando spotfire (S ++) para el análisis estadístico en mi proyecto y tengo que ejecutar una regresión logística multinomial para un gran conjunto de datos. Sé que el mejor algoritmo habría sido mlogit, pero desafortunadamente eso no está disponible en s ++. Sin embargo, tengo la opción de usar el algoritmo glm para esta regresión. Quiero aclarar dos cosas aquí:

1. ¿Tengo entendido que glm también se puede usar para ejecutar Regresión logística multinomial?

  1. Si la respuesta a la pregunta anterior es sí, ¿qué parámetros se deben usar en glm algo?

Gracias,

Respuestas:


9

Sí, con un Poisson GLM (modelo lineal de registro) puede ajustar modelos multinomiales. Por lo tanto, los modelos multinomiales logísticos o log lineales de Poisson son equivalentes.

ver recuentos aleatorios yij como variables aleatorias de Poisson con medias y especificar lo siguiente en el siguiente modelo log-linealμij

log(μij)=o+pi+cj+xiβj

Para obtener un modelo logit multinomial, los parámetros son:

Un parámetro para cada observación multinomial, por ejemplo, individuos o grupos. Esto asegura la reproducción exacta de los denominadores multinomiales y en realidad establece la equivalencia de Poisson y el modelo multinomial. Se fijan en la probabilidad multinomial, pero al azar en la probabilidad de Poisson.pi

Un parámetro para cada categoría de respuesta. De esta manera, los recuentos pueden ser diferentes para cada categoría de respuesta y los márgenes pueden ser no uniformes.cj

Lo que realmente le interesa son los términos de interacción que representan los efectos de en las probabilidades de registro de la respuesta .xiβjxij

Las probabilidades de log pueden calcularse simplemente mediante . Es el registro de probabilidades de que la observación caiga en la categoría de respuesta j en relación con la categoría de respuesta .log(μij/μik)=(cjck)+xi(βjβk)k

Luego, los parámetros en el modelo logit multinomial (denotado en letras latinas) se pueden obtener como diferencias entre los parámetros en el modelo log-lineal correspondiente, es decir, y .b j = β j - β kaj=αjαkbj=βjβk


Gracias momo Esto es realmente útil. Mi software me brinda la opción de elegir Family como "posición" y Link como "log" mientras ejecuto el algoritmo GLM. Así que creo que eso es exactamente lo que se requiere aquí.
Raghvendra

7

Sí, puede, y de hecho esto es precisamente lo que hace el paquete R GLMNET para la regresión logística multinomial. Escribiendo la función log-verosimilitud como:

LogL=icniclog(pic)

Donde denota observaciones yc denota las categorías multinomiales n i c es el recuento observado para la observación i en la categoría c . Las observaciones se definen por sus combinaciones de covariables únicas, o alternativamente podemos permitir duplicados y establecer cada n i c = 1 para que tengamos datos categóricos "binarios" (... no sé cuál es el plural de binario ... ..). Para la regresión logística, las probabilidades se definen como:icnicicnic=1

pic=exp(xiTβc)cexp(xiTβc)

Esta es una parametrización de rango inferior al completo y puede ser útil si está utilizando probabilidad penalizada (como GLMNET). En principio, podríamos usar IRLS / newton rhapson en la matriz beta completa , sin embargo, terminará con matrices de peso no diagonales. Alternativamente, podemos optimizar el "estilo Gibbs" arreglando todas las categorías betas excepto una, y luego optimizando solo esa categoría. Luego pase a la siguiente categoría, y así sucesivamente. Puedes ver eso porque las probabilidades tienen la forma(β1,,βC)

pic=B

pic=exp(xiTβc)exp(xiTβc)+A where Aβc=0
pic=Bexp(xiTβc)+A where Bβc=0

Que la expansión cuadrática sobre tendrá la misma forma que para la regresión logística, pero con los pesos de IRLS calculados de manera diferente, aunque todavía tenemos W i i , c = n i c p i c ( 1 - p i c ) en el usual ( X T W X ) - 1 X T W Y actualización de beta.βcWii,c=nicpic(1pic)(XTWX)1XTWY


Estoy tratando de implementar la regresión logística multinomial usando la variante IRLS QR Newton. El código funciona para otros modelos GLM, pero no ha sido capaz de hacer que mlogit funcione. ¿Sería el el jacobiano de la función softmax que me permitiría calcular solo el Cholesky una vez por iteración en lugar de k veces para resolver cada conjunto de pesos por resultado? Wk
José Bayoán Santiago Calderón

Dado que no sería diagonal, no se escalaría bien con un gran número de observaciones, ¿no? Si va al "estilo Gibbs", ¿se restaría los parámetros de la categoría base de la matriz antes o después de la predicción? β
José Bayoán Santiago Calderón el

Cuando habla de "cholesky once" versus "cholesky k veces", debe tener en cuenta que las matrices son de dimensiones diferentes: si hay columnas en X, entonces "una vez" es para una matriz de tamaño p k y el "k veces" es para una matriz de tamaño ppXpkp
probabilistico
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.