R equivalente all'opzione cluster quando si utilizza la regressione binomiale negativa


10

Sto cercando di replicare il lavoro di una collega e sto spostando l'analisi da Stata a R. I modelli che utilizza invocano l'opzione "cluster" all'interno della funzione nbreg per raggruppare gli errori standard.

Vedi http://repec.org/usug2007/crse.pdf per una descrizione abbastanza completa di cosa e perché di questa opzione

La mia domanda è come invocare questa stessa opzione per la regressione binomiale negativa all'interno di R?

Il modello principale nel nostro documento è specificato in Stata come segue

 xi: nbreg cntpd09 logpop08 pcbnkthft07 pccrunion07 urbanpop pov00 pov002 edu4yr ///
 black04 hispanic04 respop i.pdpolicy i.maxloan rollover i.region if isser4 != 1,   
 cluster(state)

e ho sostituito questo con

pday<-glm.nb(cntpd09~logpop08+pcbnkthft07+pccrunion07+urbanpop+pov00+pov002+edu4yr+
black04+hispanic04+respop+as.factor(pdpolicy)+as.factor(maxloan)+rollover+
as.factor(region),data=data[which(data$isser4 != 1),])

che ovviamente manca del pezzo di errori raggruppati.

È possibile eseguire una replica esatta? Se é cosi, come? In caso contrario, quali sono alcune alternative ragionevoli?

Grazie

[Modifica] Come notato nei commenti, speravo in una soluzione che non mi portasse nel regno dei modelli multilivello. Mentre il mio allenamento mi permette di vedere che queste cose dovrebbero essere correlate, è più un salto di quanto mi trovo a mio agio nel prendere da solo. Come tale ho continuato a scavare e ho trovato questo link: http://landroni.wordpress.com/2012/06/02/fama-macbeth-and-cluster-robust-by-firm-and-time-standard-errors-in- r /

che punta a un codice abbastanza semplice per fare quello che voglio:

library(lmtest)
pday<-glm.nb(cntpd09~logpop08+pcbnkthft07+pccrunion07+urbanpop+pov00+pov002+edu4yr+
 black04+hispanic04+respop+as.factor(pdpolicy)+as.factor(maxloan)+rollover+
 as.factor(region),data=data[which(data$isser4 != 1),])
summary(pday)

coeftest(pday, vcov=function(x) vcovHC(x, cluster="state", type="HC1"))

Questo non replica però i risultati dell'analisi in Stata, probabilmente perché è progettato per funzionare su binomio OLS non negativo. Quindi la ricerca continua. Qualsiasi suggerimento su dove sto sbagliando sarebbe molto apprezzato


3
Puoi trovare utili le note di Ben Bolker qui.
fmark


FYI qui è una definizione dei solidi errori standard cluster di Stata. Non sembrano così difficili da implementare. IMO potresti essere comunque meglio con errori standard bootstrap o jackknifed (vedi la guida su vce ). Non posso suggerire alcun pacchetto R però. Buona fortuna a trovare un sostituto!
Andy W,

Grazie @fmark - commenti molto utili, molto meglio della mia "risposta" e l'ho aggiornato di conseguenza.
Peter Ellis,

Grazie a tutti. Penso che la risposta breve alla mia domanda sia che non esiste una sostituzione semplice (ad esempio, una funzione prefabbricata che sostituisce esattamente l'opzione del cluster). Chiaramente qualcuno con più esperienza può vedere il percorso attraverso le note di Ben Bolker, ma mi porta in un nuovo territorio in cui non potevo essere sicuro di aver corretto le dichiarazioni della formula. Non sono sicuro di quale sia il modo appropriato di dire "Grazie" senza accettare una risposta, ma tu hai i miei ringraziamenti e le carenze sono mie.
csfowler,

Risposte:



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.