Я намагаюся повторити роботу колеги і переміщую аналіз із Stata на R. Моделі, в яких вона використовується, викликають опцію "кластер" у функції 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, не негативному двочленні. Тож пошук триває. Будемо дуже вдячні за будь-які вказівки щодо того, куди я помиляюся