Я пытаюсь повторить работу коллеги и перемещаю анализ из Stata в R. Модели, которые она использует, вызывают параметр «cluster» в функции nbreg для кластеризации стандартных ошибок.
См. Http://repec.org/usug2007/crse.pdf для довольно полного описания того, что и почему этого параметра
Мой вопрос: как вызвать эту же опцию для отрицательной биномиальной регрессии в R?
Основная модель в нашей статье указана в Stata следующим образом
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)
и я заменил это
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),])
которой явно не хватает фрагмента кластерных ошибок.
Можно ли сделать точную репликацию? Если так, как? Если нет, каковы разумные альтернативы?
Спасибо
[Редактировать] Как отмечалось в комментариях, я надеялся на решение, которое не привело бы меня в сферу многоуровневых моделей. Хотя мои тренировки позволяют мне понять, что эти вещи должны быть связаны, это скорее прыжок, чем мне удобно делать самостоятельно. Поэтому я продолжал копать и нашел эту ссылку: http://landroni.wordpress.com/2012/06/02/fama-macbeth-and-cluster-robust-by-firm-and-time-standard-errors-in- р/
это указывает на некоторый довольно простой код, чтобы делать то, что я хочу:
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"))
Это не повторяет результаты анализа в Stata, хотя, вероятно, потому, что он предназначен для работы с OLS, а не отрицательным биномиальным. Итак, поиск продолжается. Любые указатели о том, где я иду не так, будет высоко ценится
источник
Ответы:
Этот документ показывает, как получить кластерные SE для регрессии glm:
http://dynaman.net/R/clrob.pdf
источник
Это не вполне удовлетворительный ответ ...
Я сам не пробовал, но похоже, что пакет glmmADMB может делать то, что вы хотите.
Я постыдно извлеку из комментария @ fmark вопрос и согласен с ним в том, что заметки Бена Болкера полезны, как и этот предыдущий вопрос , который не совсем точный, но охватывает очень похожие проблемы.
источник