Kann ich glm-Algorithmen verwenden, um eine multinomiale logistische Regression durchzuführen?


14

Ich verwende spotfire (S ++) für die statistische Analyse in meinem Projekt und muss für einen großen Datensatz eine multinomiale logistische Regression ausführen. Ich weiß, der beste Algorithmus wäre mlogit gewesen, aber leider ist das in s ++ nicht verfügbar. Ich habe jedoch die Möglichkeit, den glm-Algorithmus für diese Regression zu verwenden. Ich möchte hier zwei Dinge klarstellen:

1.Ist es meines Erachtens richtig, dass glm auch zum Ausführen der multinomialen logistischen Regression verwendet werden kann?

  1. Wenn die Antwort auf die vorherige Frage ja lautet, welche Parameter sollten dann in glm algo verwendet werden?

Vielen Dank,

Antworten:


9

Ja, mit einem Poisson GLM (log lineares Modell) können Sie multinomiale Modelle anpassen. Daher sind multinomiale logistische oder logarithmische lineare Poisson-Modelle äquivalent.

Sie müssen Zufallszahlen yij als Poisson-Zufallsvariablen mit dem Mittel und das folgende logarithmische lineare Modell angebenμij

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

Um ein multinomiales Logit-Modell zu erhalten, sind die Parameter:

Ein Parameter für jede multinomiale Beobachtung, zum Beispiel Einzelpersonen oder Gruppen. Dies stellt eine genaue Reproduktion der multinomialen Nenner sicher und stellt tatsächlich die Äquivalenz von Poisson und multinomialem Modell her. Sie sind in der multinomialen Wahrscheinlichkeit festgelegt, in der Poisson-Wahrscheinlichkeit jedoch zufällig.pi

Ein Parameter für jede Antwortkategorie. Auf diese Weise können die Zählungen für jede Antwortkategorie unterschiedlich sein und die Ränder können ungleichmäßig sein.cj

Was Sie wirklich interessiert, sind die Interaktionsterme , die die Auswirkungen von auf die logarithmischen Wahrscheinlichkeiten der Antwort .x i jxiβjxij

Die logarithmischen Quoten können einfach durch . Es ist die logarithmische Wahrscheinlichkeit, dass die Beobachtung i in die Antwortkategorie j relativ zur Antwortkategorie fällt .klog(μij/μik)=(cjck)+xi(βjβk)k

Dann können die Parameter im multinomialen Logit-Modell (in lateinischen Buchstaben angegeben) als Unterschiede zwischen den Parametern im entsprechenden log-linearen Modell erhalten werden, dh und .b j = β j - β kaj=αjαkbj=βjβk


Vielen Dank, Momo. Das ist sehr hilfreich. Meine Software bietet mir die Möglichkeit, Familie als "Besitz" und Verknüpfung als "Protokoll" auszuwählen, während der GLM-Algorithmus ausgeführt wird. Ich denke, genau das ist hier erforderlich.
Raghvendra

7

Ja, das können Sie, und genau das leistet das R-Paket GLMNET für die multinomiale logistische Regression. Schreiben der Log-Likelihood-Funktion als:

LogL=icniclog(pic)

Dabei bezeichnet Beobachtungen und die multinomialen Kategorien. ist die Anzahl der Beobachtungen für die Beobachtung in Kategorie . Die Beobachtungen werden durch ihre eindeutigen Kovariatenkombinationen definiert - oder alternativ können wir Duplikate zulassen und jedes sodass wir kategoriale "binäre" Daten haben (... wissen nicht, was der Plural von binär ist. ...). Für die logistische Regression sind die Wahrscheinlichkeiten wie folgt definiert:c n i c i c n i c = 1icnicicnic=1

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

Dies ist eine weniger als vollständige Parametrisierung und kann hilfreich sein, wenn Sie die bestrafte Wahrscheinlichkeit verwenden (z. B. GLMNET). Wir könnten im Prinzip IRLS / Newton Rhapson für die vollständige Beta-Matrix , Sie erhalten jedoch nicht-diagonale Gewichtsmatrizen. Alternativ können wir den "Gibbs-Stil" optimieren, indem wir alle Kategorien-Betas bis auf eine festlegen und dann direkt über dieser Kategorie optimieren. Fahren Sie dann mit der nächsten Kategorie fort und so weiter. Sie können das sehen, weil die Wahrscheinlichkeiten die Form haben(β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

Dass die quadratische Erweiterung um dieselbe Form hat wie für die logistische Regression, jedoch mit unterschiedlich berechneten IRLS-Gewichten - obwohl wir immer noch im üblichen Update der Beta.βcWii,c=nicpic(1pic)(XTWX)1XTWY


Ich versuche, eine multinomiale logistische Regression mit der IRLS QR Newton-Variante zu implementieren. Der Code funktioniert für andere GLM-Modelle, konnte mlogit jedoch nicht zum Laufen bringen. Wäre das der Jacobi der Softmax-Funktion, der es mir erlauben würde, den Cholesky nur einmal pro Iteration zu berechnen, anstatt mal für jeden Satz von Gewichten pro Ergebnis zu lösen? Wk
José Bayoán Santiago Calderón

Angesichts der Tatsache, dass es nicht diagonal wäre, würde es sich bei einer großen Anzahl von Beobachtungen nicht gut skalieren lassen, oder? Würde das Subtrahieren der Basiskategorieparameter von der Matrix vor oder nach der Vorhersage erfolgen, wenn "Gibbs-style" gewählt würde ? β
José Bayoán Santiago Calderón

Wenn Sie von "cholesky once" oder "cholesky k times" sprechen, müssen Sie beachten, dass die Matrizen unterschiedliche Dimensionen haben. Wenn Spalten in vorhanden sind, gilt das "once" für eine Matrix und das "k times" für eine matrixgroßepXpkp
Wahrscheinlichkeitsanalyse
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.