2016-08-06 53 views
0

Ich versuche, eine Stata XTLogit Re-Regression zu replizieren, die auf Panel-Daten in R ausgeführt wird. Mit Panel-Daten meine ich, dass ich mehrere Beobachtungen für verschiedene Personen (Person_ID) in verschiedenen Jahren haben (Jahr_ID). Meine abhängige Variable (DV) ist binär. Ich habe zwei Hauptvariablen von Interesse, die ich vorhersagen möchte (IV1 & IV2) und eine Anzahl von Kontrollvariablen (some_controls). Insgesamt habe ich etwa 40.000 Beobachtungen.Replizieren von Statas xtlogit Regression für Panel-Daten in R

Ich bin ein Neuling bei der Verwendung von Stata, so dass ich möglicherweise nur relevante Teile des Codes nicht identifizieren konnte, die in den xtlogit-Befehl einfließen. Aber soweit ich das relevante Stata Code sehen konnte, ist wie folgt:

isid person_id year_id 
xtset person_id year_id,y 
eststo: xtlogit DV IV1 IV2 some_controls cformat(%3.2f) pformat(%3.2f) re vsquish noomitted nolog noemptycells vce(robust) 

Ich habe versucht, dies in R Replizieren mithilfe der folgenden Formeln:

"PLM" Paket mit:

plm(DV ~ IV1 + IV2 + some_controls, index = c("person_id","year_id"), model ="random", data = data_frame_name) 

mit dem lme4 Paket:

glmer(DV ~ IV1 + IV2 + some_controls + (1|person_id) + (1|year_id), family = binomial, data = data_frame_name) 

Leider scheitert das plm Modell th zu reproduzieren Die Ergebnisse erhalte ich durch Ausführen des Stata-Codes. Das glmer-Modell gibt den Fehler "Fehler: pwrssUpdate konvergierte nicht in (maxit) Iterationen" zurück.

Ich wäre dankbar für Vorschläge, wie man die vom STATA-Code berechneten Ergebnisse genau repliziert.

Ich habe Stata's xtlogit (fe, re) equivalent in R? gefunden. Ich bin mir jedoch nicht sicher, wie die Lösung für diese Frage auf die Panel-Daten angewendet werden würde.

+1

Der Befehl 'plm' im Paket' plm' ist nicht für Panel-Logit-Modelle. Sie müssten z.B. Paket 'pglm' dafür. – Helix123

+0

@ Helix123 Danke für den Kommentar! Ich replizierte die Formel in pglm und repliziert die Ausgabe korrekt! Wenn Sie Ihren Kommentar als Antwort posten, kann ich ihn als "richtige Antwort" markieren. Noch eine Frage: pglm benötigt etwa eine halbe Stunde, um ein Modell zu berechnen, während Stata nur ein paar Sekunden braucht. Irgendeine Idee warum das sein könnte? – Phil

+1

Ihr Datensatz ist ziemlich groß und ich glaube, dass die 'pglm'-Prozedur nicht wirklich optimiert ist und in reinem R ist. In einigen "number crunching" -Paketen sind die kritischen Teile in C (++) geschrieben, um die Geschwindigkeit zu erhöhen. Tatsächlich scheint das Paket in einem "frühen" Stadium zu sein (siehe die Versionsnummer), obwohl das letzte CRAN-Release von 2013 stammt ... Stata hat normalerweise ziemlich gut optimierte Prozeduren (und kann auch von vorkompiliertem Code profitieren) . – Helix123

Antwort

1

Befehl plm im Paket plm ist nicht für Panel-Logit-Modelle wie xtlogit für Stata ist. Sie müssten z.B. Paket pglm und Funktion pglm drin.