R еквівалент кластерному варіанту при використанні негативної біноміальної регресії


10

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


3
Тут можна знайти замітки Бена Болкера .
відмітка


FYI - це визначення надійних кластерних помилок Stata, що кластеруються. Вони не здаються такими важкими для здійснення. IMO вам може бути краще зі стандартними помилками завантажуваного або jackknifed (див. Довідку про vce ). Я не можу запропонувати жодних пакетів R. Успіхів у пошуку заміни!
Енді Ш

Дякую @fmark - дуже корисні коментарі, набагато краще, ніж моя "відповідь", і я її відповідно оновив.
Пітер Елліс

Дякую всім. Я думаю, що коротка відповідь на моє запитання полягає в тому, що не існує прямої заміни (наприклад, заздалегідь зроблена функція, яка точно замінює опцію кластера). Очевидно, що хтось із більшим досвідом може побачити шлях через записки Бена Болкера, але це переносить мене на нову територію, де я не міг бути впевненим, що я отримую правильні формулювальні твердження. Я не впевнений, що підходящий спосіб сказати "Дякую", не приймаючи відповіді, але ви маєте мої подяки, і недоліки - це мої власні.
csfowler

Відповіді:


4

Цей документ показує, як отримати кластерні SE для регресії glm:

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


Мені доведеться дати тестове порівняння з результатами статистики, але це виглядає точно так, як я сподівався.
csfowler

1

Це не зовсім задовільна відповідь ...

Я сам не пробував цього, але, схоже, пакет glmmADMB може робити те, що ви хочете.

Я безсоромно відштовхуюсь від коментаря @ fmark до цього питання і погоджуюся з ним, що замітки Бена Болкера корисні, як і це попереднє питання , яке не зовсім точний дублікат, але охоплює дуже схожі питання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.