R équivalent à l'option cluster lors de l'utilisation de la régression binomiale négative

10

J'essaie de reproduire le travail d'un collègue et je déplace l'analyse de Stata vers R. Les modèles qu'elle utilise invoquent l'option "cluster" dans la fonction nbreg pour regrouper les erreurs standard.

Voir http://repec.org/usug2007/crse.pdf pour une description assez complète du quoi et du pourquoi de cette option

Ma question est de savoir comment invoquer cette même option pour la régression binomiale négative dans R?

Le modèle principal de notre article est spécifié dans Stata comme suit

 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)

et je l'ai remplacé par

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),])

qui manque évidemment la pièce des erreurs groupées.

Est-il possible de faire une réplication exacte? Si c'est le cas, comment? Sinon, quelles sont les alternatives raisonnables?

Merci

[Modifier] Comme indiqué dans les commentaires, j'espérais une solution qui ne me conduirait pas dans le domaine des modèles à plusieurs niveaux. Bien que ma formation me permette de voir que ces choses devraient être liées, c'est plus un saut que je suis à l'aise de le faire par moi-même. En tant que tel, j'ai continué à creuser et j'ai trouvé ce lien: http://landroni.wordpress.com/2012/06/02/fama-macbeth-and-cluster-robust-by-firm-and-time-standard-errors-in- r /

qui pointe vers un code assez simple pour faire ce que je veux:

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"))

Cependant, cela ne reproduit pas les résultats de l'analyse dans Stata, probablement parce qu'il est conçu pour fonctionner sur OLS et non sur un binôme négatif. La recherche continue donc. Tout indice sur lequel je me trompe serait très apprécié

csfowler
la source
3
Vous pourriez trouver les notes de Ben Bolker utiles ici.
fmark
Et voyez aussi cette question précédente
fmark
Pour info, voici une définition des erreurs standard groupées robustes de Stata. Ils ne semblent pas si difficiles à mettre en œuvre. IMO, vous pouvez être mieux avec des erreurs standard bootstrapped ou jackknifed de toute façon (voir l'aide sur vce ). Je ne peux cependant suggérer aucun package R. Bonne chance pour trouver un remplaçant!
Andy W
Merci @fmark - commentaires très utiles, bien mieux que ma "réponse" et je l'ai mise à jour en conséquence.
Peter Ellis
Merci à tous. Je pense que la réponse courte à ma question est qu'il n'y a pas de remplacement simple (par exemple, une fonction prédéfinie qui remplace exactement l'option de cluster). Il est clair que quelqu'un avec plus d'expérience peut voir le chemin à travers les notes de Ben Bolker, mais cela m'emmène dans un nouveau territoire où je ne pouvais pas être sûr d'obtenir les déclarations de formule correctes. Je ne sais pas quelle est la manière appropriée de dire "Merci" sans accepter de réponse, mais vous avez mes remerciements et les défauts sont les miens.
csfowler

Réponses:

4

Ce document montre comment obtenir des SE de cluster pour une régression glm:

http://dynaman.net/R/clrob.pdf

EddieMcGoldrick
la source
Je vais devoir lui donner une comparaison de test avec les résultats des statistiques, mais cela ressemble exactement à ce que j'espérais.
csfowler
1

Ce n'est pas une réponse pleinement satisfaisante ...

Je ne l'ai pas essayé moi-même, mais il semble que le package glmmADMB puisse faire ce que vous voulez.

Je vais effleurer sans vergogne le commentaire de @ fmark sur la question et je suis d'accord avec lui que les notes de Ben Bolker sont utiles, tout comme cette question précédente , qui n'est pas tout à fait un double exact mais couvre des questions très similaires.

Peter Ellis
la source