2013-05-11 29 views
7

Una domanda da principianti: qualcuno sa come eseguire una regressione logistica con errori standard in cluster in R? In Stata è solo logit Y X1 X2 X3, vce(cluster Z), ma sfortunatamente non ho capito come fare la stessa analisi in R. Grazie in anticipo!Regressione logistica con robusti errori standard in cluster in R

+1

La funzione 'vcovHC()' nel pacchetto 'sandwich' potrebbe anche essere utile (non è sicuro se si applica alle stime di regressione logistica) –

+1

se si sta migrando da Stata si potrebbe trovare il pacchetto chiamato' 'plm'' utile. Inoltre, c'è il pacchetto chiamato '' pcse'' per implementare errori standard corretti del pannello manipolando la matrice di varianza covarianza dopo la stima –

+0

Grazie mille per le risposte, Ben e Hubert. Verificherò anche i pacchetti che hai suggerito e vedrò se funzionano con stime logistiche. Grazie ancora! – danilofreire

risposta

13

Si potrebbe voler esaminare il pacchetto rms (strategie di modellazione della regressione). Così, lrm è modello di regressione logistica, e se fit è il nome della vostra uscita, devi avere qualcosa di simile:

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) 

È necessario specificare x=T, y=T nel modello di dichiarazione. rcs indica spline cubiche limitate a 3 nodi.

+0

Grazie mille! Ha funzionato a meraviglia! Leggerò più attentamente il manuale di rms e vedrò se esiste un modo per raggruppare i coefficienti per paese e anche per anno. Ancora una volta grazie! – danilofreire

+0

Questa risposta è già molto buona ma potrebbe essere migliorata se fosse completamente replicabile. Non ho idea di dove vengano le variabili, quale sia l'output e perché 'rcs (bmi, 3)' sia necessario. – MERose

2

Ho battuto la testa contro questo problema negli ultimi due giorni; Ho trovato magicamente quello che sembra un nuovo pacchetto che sembra destinato a grandi cose - ad esempio, sto anche eseguendo nella mia analisi alcuni modelli Tobit robusti in cluster, e questo pacchetto ha anche quella funzionalità integrata. Per non parlare della sintassi è molto più pulito rispetto a tutte le altre soluzioni che ho visto (stiamo parlando di livelli di pulizia quasi-Stata).

Così, per il tuo esempio giocattolo, mi piacerebbe correre:

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

Et voilà!

+0

Wow, sembra "funziona" in modi che il mio codice R non sembra mai. Questa nuova funzionalità? Se no, perché Zelig non è stato il modo canonico per risolvere questo in R? – Philip

+0

Non so, ma spero che diventi così. [Il progetto] (http://zeligproject.org) sembra certamente ambizioso! Il [gruppo Google] (https://groups.google.com/forum/m/#!forum/zelig-statistical-software) non sembra però così attivo, quindi non sei sicuro di quanto siano rapidi i progressi. – MichaelChirico

+2

Purtroppo, penso che il comando non funzioni nell'ultima versione di 'Zelig' (su CRAN). Ho appena eseguito alcuni modelli con e senza l'argomento 'cluster' e gli errori standard sono esattamente gli stessi. Credo che sia stato così dalla versione 4.0, l'ultima volta che ho usato il pacchetto. – danilofreire

Problemi correlati