wake-up-neo.net

multinomiale logistische Multilevel-Modelle in R

Problem: Ich muss einen Satz multinomialer logistischer Multilevel-Modelle schätzen und kann kein geeignetes R-Paket finden. Was ist das beste R-Paket, um solche Modelle zu schätzen? STATA 13 hat diese Funktion kürzlich zu ihren mehrstufigen Mixed-Effekt-Modellen hinzugefügt - so scheint die Technologie zur Abschätzung solcher Modelle verfügbar zu sein.

Details: Eine Reihe von Forschungsfragen erfordert die Schätzung multinomialer logistischer Regressionsmodelle, bei denen die Ergebnisvariable kategorial ist. Biologen könnten beispielsweise daran interessiert sein zu untersuchen, welche Art von Bäumen (z. B. Kiefern, Ahornbäume, Eichen) am stärksten von saurem Regen betroffen ist. Marktforscher könnten interessiert sein, ob ein Zusammenhang zwischen dem Alter der Kunden und der Häufigkeit des Einkaufs bei Target, Safeway oder Walmart besteht. Diese Fälle haben gemeinsam, dass die Ergebnisvariable kategorisch (ungeordnet) ist und multinomiale logistische Regressionen die bevorzugte Schätzmethode sind. In meinem Fall untersuche ich Unterschiede bei den Arten der menschlichen Migration, wobei die Ergebnisvariable (mig) 0 = nicht migriert, 1 = interne Migration, 2 = internationale Migration. Hier ist eine vereinfachte Version meines Datensatzes:

migDat=data.frame(hhID=1:21,mig=rep(0:2,times=7),age=ceiling(runif(21,15,90)),stateID=rep(letters[1:3],each=7),pollution=rep(c("high","low","moderate"),each=7),stringsAsFactors=F)

   hhID mig age stateID pollution
1     1   0  47       a      high
2     2   1  53       a      high
3     3   2  17       a      high
4     4   0  73       a      high
5     5   1  24       a      high
6     6   2  80       a      high
7     7   0  18       a      high
8     8   1  33       b       low
9     9   2  90       b       low
10   10   0  49       b       low
11   11   1  42       b       low
12   12   2  44       b       low
13   13   0  82       b       low
14   14   1  70       b       low
15   15   2  71       c  moderate
16   16   0  18       c  moderate
17   17   1  18       c  moderate
18   18   2  39       c  moderate
19   19   0  35       c  moderate
20   20   1  74       c  moderate
21   21   2  86       c  moderate

Mein Ziel ist es, die Auswirkung des Alters (unabhängige Variable) auf die Wahrscheinlichkeit einer (1) internen Migration gegenüber einer nicht Migration zu schätzen, (2) einer internationalen Migration einer nicht Migration, (3) einer internen Migration einer internationalen Migration. Eine weitere Komplikation ist, dass meine Daten auf unterschiedlichen Aggregationsniveaus arbeiten (z. B. die Verschmutzung auf staatlicher Ebene), und ich bin auch daran interessiert, die Auswirkungen der Luftverschmutzung (Verschmutzung) auf die Wahrscheinlichkeit eines Eintretens einer bestimmten Bewegungsart vorherzusagen. 

Clunky-Lösungen: Sie können einen Satz separater logistischer Regressionsmodelle schätzen, indem Sie den Datensatz für jedes Modell auf nur zwei Migrationstypen reduzieren (z. B. Modell 1: Nur Fälle, die mit mig = 0 und mig = 1 codiert sind; Modell 2: nur Fälle mit mig = 0 und mig = 2; Modell 3: nur Fälle mit mig = 1 und mig = 2). Ein solches einfaches logistisches Regressionsmodell mit mehreren Ebenen könnte mit Ime4 geschätzt werden. Dieser Ansatz ist jedoch weniger ideal, da er die Auswirkungen der ausgelassenen Fälle nicht angemessen berücksichtigt. Eine zweite Lösung wäre die Ausführung multinomialer logistischer Multilevel-Modelle in MLWiN bis R unter Verwendung des R2MLwiN-Pakets. Da MLWiN jedoch nicht Open Source ist und das generierte Objekt schwer zu verwenden ist, würde ich diese Option lieber vermeiden. Basierend auf einer umfassenden Internetsuche scheint es eine gewisse Nachfrage nach solchen Modellen zu geben, aber mir ist kein gutes R-Paket bekannt. Es wäre also toll, wenn einige Experten, die solche Modelle eingesetzt haben, eine Empfehlung abgeben könnten und wenn es mehr als ein Paket gibt, dies möglicherweise auf Vor- und Nachteile hinweist. Ich bin mir sicher, dass solche Informationen eine sehr hilfreiche Ressource für mehrere R-Benutzer sind. Vielen Dank!!

Bester.... Raphael

24
Raphael

Es gibt im Allgemeinen zwei Möglichkeiten, ein multinomiales Modell einer kategorialen Variablen mit J-Gruppen anzupassen: (1) Gleichzeitiges Schätzen von J-1-Kontrasten; (2) Schätzung eines separaten Logit-Modells für jeden Kontrast.

Produziere mit diesen beiden Methoden die gleichen Ergebnisse?Nein, aber die Ergebnisse sind oft ähnlich

Welche Methode ist besser?Gleichzeitiges Anpassen ist genauer (eine Erklärung finden Sie unten).

Warum sollte jemand dann separate Logit-Modelle verwenden?(1) Das lme4-Paket hat keine Routine zum gleichzeitigen Anpassen multinomialer Modelle, und es gibt kein anderes mehrstufiges R-Paket, das dies tun könnte. Daher sind separate Logit-Modelle derzeit die einzige praktische Lösung, wenn jemand mehrstufige multinomiale Modelle in R. schätzen will. (2) Wie einige mächtige Statistiker argumentiert haben (Begg und Gray, 1984; Allison, 1984, S. 46-47), separater Logit Modelle sind viel flexibler, da sie die unabhängige Bestimmung der Modellgleichung für jeden Kontrast ermöglichen.

Ist es legitim, separate Logit-Modelle zu verwenden?Ja, mit einigen Ausschlussklauseln. Diese Methode wird als "Begg-Grau-Näherung" bezeichnet. Begg und Gray (1984, S. 16) zeigten, dass diese „individualisierte Methode sehr effizient ist“. Es gibt jedoch einen gewissen Effizienzverlust und die Begg- und Gray-Näherung führt zu größeren Standardfehlern (Agresti 2002, S. 274). Daher ist es schwieriger, mit dieser Methode signifikante Ergebnisse zu erzielen, und die Ergebnisse können als konservativ betrachtet werden. Dieser Wirkungsgradverlust ist am geringsten, wenn die Referenzkategorie groß ist (Begg und Gray, 1984; Agresti 2002). Zu den R-Paketen, die die Begg- und Gray-Approximation (nicht mehrstufig) verwenden, gehören mlogitBMA (Sevcikova und Raftery, 2012).


Warum ist eine Reihe einzelner Logit-Modelle ungenau? In meinem ersten Beispiel haben wir eine Variable (migration), die drei Werte A (keine Migration), B (interne Migration), C (internationale Migration) haben kann. Mit nur einer Prädiktorvariablen x (Alter) werden multinomiale Modelle wie folgt als Reihe von Binomialkontrasten parametrisiert (Long und Cheng, 2004, S. 277):

Eq. 1:  Ln(Pr(B|x)/Pr(A|x)) = b0,B|A + b1,B|A (x) 
Eq. 2:  Ln(Pr(C|x)/Pr(A|x)) = b0,C|A + b1,C|A (x)
Eq. 3:  Ln(Pr(B|x)/Pr(C|x)) = b0,B|C + b1,B|C (x)

Für diese Gegensätze müssen die folgenden Gleichungen gelten:

Eq. 4: Ln(Pr(B|x)/Pr(A|x)) + Ln(Pr(C|x)/Pr(A|x)) = Ln(Pr(B|x)/Pr(C|x))
Eq. 5: b0,B|A + b0,C|A = b0,B|C
Eq. 6: b1,B|A + b1,C|A = b1,B|C

Das Problem ist, dass diese Gleichungen (Gleichung 4-6) in der Praxis nicht genau zutreffen, da die Koeffizienten auf der Grundlage geringfügig abweichender Stichproben geschätzt werden, da nur Fälle aus den beiden kontrastierenden Gruppen verwendet werden und Fälle aus der dritten Gruppe weggelassen werden. Programme, die gleichzeitig die multinomialen Kontraste schätzen, stellen sicher, dass Gl. Halten 4-6 (Long und Cheng, 2004, S. 277). Ich weiß nicht genau, wie diese "simultane" Modelllösung funktioniert - vielleicht kann jemand eine Erklärung geben? Zu den Softwareprogrammen, die die gleichzeitige Anpassung von Multilevel-Modellen mit mehreren Ebenen durchführen, gehören MLwiN (Steele 2013, S. 4) und STATA (Befehl xlmlogit, Pope, 2014).


Verweise:

Agresti, A. (2002). Kategoriale Datenanalyse (2. Aufl.). Hoboken, New Jersey: John Wiley & Sons.

Allison, P. D. (1984). Ereignisverlaufsanalyse. Thousand Oaks, Kalifornien: Sage Publications.

Begg, C. B. & Gray, R. (1984). Berechnung von polychotomen logistischen Regressionsparametern unter Verwendung individualisierter Regressionen. Biometrika, 71 (1), 11-18.

Long, S. J. & Cheng, S. (2004). Regressionsmodelle für kategoriale Ergebnisse. In M. Hardy & A. Bryman (Hrsg.), Handbook of Data Analysis (S. 258-285). London: SAGE Publications, Ltd.

R. Papst (2014). Im Rampenlicht: Lernen Sie den neuen xlmlogit-Befehl von Stata kennen. Stata News, 29 (2), 2-3.

Sevcikova, H. & Raftery, A. (2012). Schätzung des multinomialen Logit-Modells unter Verwendung der Begg & Gray-Näherung.

Steele, F. (2013). Modul 10: Einstufige und mehrstufige Modelle für Nennantwortkonzepte. Bristol, UK: Zentrum für Multilevel-Modellierung.

26
Raphael

Eine ältere Frage, aber ich denke, eine praktikable Option ist in letzter Zeit entstanden: brms, die das Bayes'sche Stan-Programm verwendet, um das Modell tatsächlich auszuführen. Wenn Sie beispielsweise eine multinomiale logistische Regression für die iris-Daten ausführen möchten:

b1 <- brm (Species ~ Petal.Length + Petal.Width + Sepal.Length + Sepal.Width,
           data=iris, family="categorical",
           prior=c(set_prior ("normal (0, 8)")))

Und um eine ordinale Regression zu erhalten, die nicht für iris geeignet ist, müssen Sie natürlich den family="categorical" auf family="acat" (oder cratio oder sratio, je nach Art der ordinalen Regression, die Sie möchten) einstellen und sicherstellen, dass die abhängige Variable ordered ist. .

Erläuterung zu Raffaels Kommentar: Dieser brm-Aufruf kompiliert Ihre Formel und Argumente in Stan Code. Stan kompiliert es in C++ und verwendet den C++ - Compiler Ihres Systems - was erforderlich ist. Auf einem Mac müssen Sie beispielsweise die kostenlosen Entwicklertools installieren, um C++ zu erhalten. Nicht sicher über Windows. Auf Linux sollte C++ standardmäßig installiert sein.)

Erläuterungen zu Qasweds Kommentar: brms verarbeitet problemlos auch mehrstufige Modelle mit der R-Formel (1 | groupvar), um einen Gruppen (zufälligen) Intercept für eine Gruppe hinzuzufügen, (1 + foo | groupvar), um einen zufälligen Intercept und eine Steigung usw. hinzuzufügen.

10
Wayne

Ich werde dir empfehlen, das Paket "mlogit" zu verwenden.

2
Anom

Hier ist eine Implementierung (nicht meine eigene). Ich würde diesen Code einfach abarbeiten. Auf diese Weise wissen Sie wirklich, was unter der Haube passiert. 

http://www.nhsilbert.net/docs/rcode/multilevel_multinomial_logistic_regression.R

Ich bin verblüfft, dass diese Technik als "Standard" und "Äquivalent" bezeichnet wird, obwohl dies eine gute praktische Lösung sein könnte. (Ich denke, ich sollte mir die Referenzen von Allison und Dobson & Barnett genauer ansehen.) Für den einfachen multinomialen Fall (keine Cluster, wiederholte Messungen usw.) schlagen Begg und Gray (1984) die Verwendung von k-1-Binomiallogits gegen a vor Referenzkategorie als Annäherung (wenn auch eine gute) in vielen Fällen an vollwertiges multinomiales Logit. Sie zeigen einen gewissen Effizienzverlust bei Verwendung einer einzigen Referenzkategorie, obwohl dies für Fälle, in denen eine einzige Hochfrequenz-Baseline-Kategorie als Referenz verwendet wird, klein ist Agresti (2002: S. 274) liefert ein Beispiel, in dem es eine gibt kleiner Anstieg der Standardfehler, selbst wenn die Ausgangskategorie in einem Beispiel mit fünf Kategorien mehr als 70% von 219 Fällen ausmacht.

Vielleicht ist es keine große Sache, aber ich sehe nicht, wie die Annäherung eine zweite Ebene der Zufälligkeit hinzufügen würde.

Verweise
Agresti, A. (2002). Kategoriale Datenanalyse. Hoboken NJ: Wiley.

Begg, C. B. & Gray, R. (1984). Berechnung von polychotomen logistischen Regressionsparametern unter Verwendung individualisierter Regressionen. Biometrika, 71 (1), 11–18.

1
tmn

Ich habe es mit dem gleichen Thema zu tun, und eine mögliche Lösung, die ich gefunden habe, scheint auf das Poisson (loglinear/count) Äquivalent des multinomialen logistischen Modells zurückzugreifen, das in dieser Mailingliste , diesen Nizza Folien oder in Agresti beschrieben wird (2013: 353–356). Daher sollte es möglich sein, die Funktion glmer(... family=poisson) aus dem Paket lme4 mit einer Aggregation der Daten zu verwenden.

Referenz:
Agresti, A. (2013) Kategoriale Datenanalyse. Hoboken, New Jersey: Wiley.