Posso usare gli algoritmi glm per fare una regressione logistica multinomiale?


14

Sto usando Spotfire (S ++) per l'analisi statistica nel mio progetto e devo eseguire la regressione logistica multinomiale per un set di dati di grandi dimensioni. So che il miglior algoritmo sarebbe stato mlogit, ma sfortunatamente non è disponibile in s ++. Tuttavia, ho un'opzione di utilizzare l'algoritmo glm per questa regressione. Voglio chiarire due cose qui:

1. La mia comprensione è corretta che glm può anche essere usato per eseguire la regressione logistica multinomiale?

  1. Se la risposta alla domanda precedente è sì, quali parametri utilizzare in glm algo?

Grazie,

Risposte:


9

Sì, con un Poisson GLM (modello lineare log) è possibile montare modelli multinomiali. Quindi i modelli di Poisson logistici multinomiali o log lineari sono equivalenti.

È necessario visualizzare i conteggi casuali yij come variabili casuali di Poisson con mezzi μij e specificare quanto segue il seguente modello log-lineare

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

Per ottenere un modello logit multinomiale i parametri sono:

Un parametro per ogni osservazione multinomiale, ad esempio individui o gruppi. Ciò assicura la riproduzione esatta dei denominatori multinomiali e stabilisce effettivamente l'equivalenza di Poisson e del modello multinomiale. Sono fissati nella probabilità multinomiale, ma casuali nella probabilità di Poisson.pi

Un parametro per ciascuna categoria di risposta. In questo modo i conteggi possono essere diversi per ciascuna categoria di risposta e i margini possono essere non uniformi.cj

Ciò a cui sei veramente interessato sono i termini di interazione che rappresentano gli effetti di sulle probabilità del log della risposta .xiβjxij

Le probabilità del log possono essere semplicemente calcolate da . Sono le probabilità del log che l'osservazione cadrà nella categoria di risposta j rispetto alla categoria di risposta .log(μij/μik)=(cjck)+xi(βjβk)k

Quindi, i parametri nel modello logit multinomiale (indicato con lettere latine) possono essere ottenuti come differenze tra i parametri nel corrispondente modello log-lineare, ovvero e .b j = β j - β kaj=αjαkbj=βjβk


Grazie Momo. Questo è davvero utile. Il mio software mi offre la possibilità di scegliere Family come "possion" e Link come "log" durante l'esecuzione dell'alogoritmo GLM. Quindi penso che sia esattamente ciò che è richiesto qui.
Raghvendra,

7

Sì, è possibile, e in effetti questo è esattamente ciò che fa il pacchetto R GLMNET per la regressione logistica multinomiale. Scrivere la funzione di verosimiglianza come:

LogL=icniclog(pic)

Dove indica osservazioni ec c indica le categorie multinomiali n i c è il conteggio osservato per l'osservazione i nella categoria c . Le osservazioni sono definite dalle loro uniche combinazioni di covariate - o in alternativa possiamo consentire duplicati e impostare ciascuno n i c = 1 in modo da avere dati "binari" categorici (.... non sappiamo quale sia il plurale di binario .. ..). Per la regressione logistica le probabilità sono definite come:icnicicnic=1

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

Si tratta di una parametrizzazione non completa e può essere utile se si utilizza una probabilità penalizzata (come GLMNET). In linea di principio potremmo usare IRLS / newton rhapson sulla matrice beta completa , tuttavia si finisce con matrici di peso non diagonali. In alternativa, possiamo ottimizzare lo "stile di Gibbs" fissando tutte le categorie beta ad eccezione di una e quindi ottimizzando appena sopra quella categoria. Quindi passare alla categoria successiva e così via. Puoi vederlo perché le probabilità hanno il modulo(β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

Che l'quadratica espansione merito avrà la stessa forma di regressione logistica, ma con le IRLS pesi calcolati in modo diverso - anche se abbiamo ancora W i i , c = n i c p i c ( 1 - p i c ) nel solito ( X T W X ) - 1 X T W Y aggiornamento della beta.βcWii,c=nicpic(1pic)(XTWX)1XTWY


Sto cercando di implementare la regressione logistica multinomiale usando la variante IRLS QR Newton. Il codice funziona per altri modelli GLM, ma non è stato in grado di far funzionare mlogit. Il sarebbe il giacobino della funzione softmax che mi consentirebbe di calcolare il Cholesky solo una volta per iterazione piuttosto che k volte per risolvere per ogni serie di pesi per risultato? Wk
José Bayoán Santiago Calderón,

β

pXpkp
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.