R эквивалентно опции кластера при использовании отрицательной биномиальной регрессии

10

Я пытаюсь повторить работу коллеги и перемещаю анализ из 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, а не отрицательным биномиальным. Итак, поиск продолжается. Любые указатели о том, где я иду не так, будет высоко ценится

csfowler
источник
3
Вы можете найти заметки Бена Болкера здесь полезными.
Fmark
И посмотрите также этот предыдущий вопрос
Fmark
К вашему сведению, это определение надежных кластерных стандартных ошибок Stata. Они не кажутся такими сложными для реализации. В любом случае, возможно, вам лучше справиться со стандартными ошибками при загрузке или сбоем (см. Справку по vce ). Я не могу предложить какие-либо пакеты R, хотя. Удачи в поиске замены!
Энди Ш
Спасибо @fmark - очень полезные комментарии, намного лучше, чем мой "ответ", и я обновил его соответственно.
Питер Эллис
Спасибо всем. Я думаю, что короткий ответ на мой вопрос заключается в том, что прямой замены не существует (например, предварительно сделанная функция, которая точно заменяет кластерный параметр). Ясно, что кто-то с большим опытом может увидеть путь через заметки Бена Болкера, но он уводит меня на новую территорию, где я не мог быть уверен, что я правильно понял формулировки формулы. Я не уверен, какой правильный способ сказать «Спасибо», не принимая ответа, но у вас есть моя благодарность, а недостатки мои.
csfowler

Ответы:

4

Этот документ показывает, как получить кластерные SE для регрессии glm:

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

EddieMcGoldrick
источник
Мне придется сравнить его с результатами статистики, но это выглядит именно так, как я надеялся.
csfowler
1

Это не вполне удовлетворительный ответ ...

Я сам не пробовал, но похоже, что пакет glmmADMB может делать то, что вы хотите.

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

Питер Эллис
источник