2013-05-11 16 views
7

Eine neue Frage: weiß jemand, wie man eine logistische Regression mit gruppierten Standardfehlern in R durchführt? In Stata ist es nur logit Y X1 X2 X3, vce(cluster Z), aber leider habe ich nicht herausgefunden, wie man die gleiche Analyse in R macht. Vielen Dank im Voraus!Logistische Regression mit robusten gruppierten Standardfehlern in R

+1

Die 'vcovHC()' Funktion im 'sandwich' Paket könnte auch nützlich sein (nicht sicher, ob sie für logistische Regressionsschätzungen gilt) –

+1

Wenn Sie von Stata migrieren, finden Sie möglicherweise das Paket' 'plm'' sinnvoll. Außerdem gibt es das Paket '' pcse'' zum Implementieren von panelkorrigierten Standardfehlern durch Manipulieren der Varianzkovarianzmatrix nach der Schätzung –

+0

Vielen Dank für Ihre Antworten, Ben und Hubert. Ich werde auch die von Ihnen vorgeschlagenen Pakete testen und prüfen, ob sie mit logistischen Schätzungen arbeiten. Danke noch einmal! – danilofreire

Antwort

13

Sie könnten sich das Paket rms (Regressionsmodellierungsstrategien) ansehen. So ist lrm logistische Regressionsmodell, und wenn fit der Name Ihrer Ausgabe ist, würden Sie so etwas wie dieses:

fit=lrm(disease ~ age + study + rcs(bmi,3), x=T, y=T, data=dataf) 

fit 

robcov(fit, cluster=dataf$id) 

bootcov(fit,cluster=dataf$id) 

Sie haben x=T, y=T in der Modellrechnung zu spezifizieren. rcs zeigt eingeschränkte kubische Splines mit 3 Knoten an.

+0

Vielen Dank! Es hat Wunder gewirkt! Ich werde das Handbuch von rms genauer lesen und sehen, ob es eine Möglichkeit gibt, die Koeffizienten nach Ländern und nach Jahren zusammenzufassen. Nochmals vielen Dank! – danilofreire

+0

Diese Antwort ist bereits sehr gut, aber sie könnte verbessert werden, wenn sie vollständig replizierbar ist. Ich habe keine Ahnung, wo die Variablen herkommen, was die Ausgabe ist und warum 'rcs (bmi, 3)' notwendig ist. – MERose

2

Ich habe in den letzten zwei Tagen meinen Kopf gegen dieses Problem geschlagen; Ich habe auf magische Weise ein scheinbar neues Paket gefunden, das für große Dinge bestimmt scheint - zum Beispiel leite ich in meiner Analyse auch einige cluster-robuste Tobit-Modelle ein, und dieses Paket hat diese Funktionalität ebenfalls eingebaut. Ganz zu schweigen von der Syntax ist viel sauberer als in all den anderen Lösungen, die ich gesehen habe (wir sprechen in der Nähe von Stata Ebenen sauber).

Also für Ihr Spielzeug Beispiel, würde ich laufen:

library(Zelig) 
logit<-zelig(Y~X1+X2+X3,data=data,model="logit",robust=T,cluster="Z") 

Et voilà!

+0

Wow, das scheint so zu funktionieren, dass mein R-Code nie scheint. Ist diese neue Funktionalität? Wenn nicht, warum ist Zelig nicht der kanonische Weg, um dies in R zu lösen? – Philip

+0

Weiß nicht, aber ich hoffe es wird so. [Das Projekt] (http://zeligproject.org) scheint sicherlich ehrgeizig! Die [Google Gruppe] (https://groups.google.com/forum/m/#!forum/zelig-statistical-software) scheint jedoch nicht so aktiv zu sein, also nicht sicher, wie schnell der Fortschritt ist. – MichaelChirico

+2

Leider funktioniert der Befehl in der neuesten Version von 'Zelig' (auf CRAN) nicht. Ich habe gerade ein paar Modelle mit und ohne das 'cluster' Argument ausgeführt und die Standardfehler sind genau gleich. Ich glaube, seit Version 4.0 war es das letzte Mal, dass ich das Paket benutzt habe. – danilofreire

Verwandte Themen