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é
la source
Réponses:
Ce document montre comment obtenir des SE de cluster pour une régression glm:
http://dynaman.net/R/clrob.pdf
la source
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.
la source