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é


3
Vous pourriez trouver les notes de Ben Bolker utiles ici.
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:



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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.