Próbuję powielić pracę kolegi i przenoszę analizę ze Staty do R. Modele, które stosuje, wywołują opcję „klastrowania” w funkcji nbreg, aby grupować błędy standardowe.
Zobacz http://repec.org/usug2007/crse.pdf, aby uzyskać dość kompletny opis co i dlaczego tej opcji
Moje pytanie brzmi: jak wywołać tę samą opcję dla ujemnej regresji dwumianowej w R?
Podstawowy model w naszym artykule jest określony w Stata w następujący sposób
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)
i zastąpiłem to
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),])
który oczywiście nie zawiera fragmentu błędów klastrowych.
Czy można wykonać dokładną replikację? Jeśli tak to jak? Jeśli nie, jakie są rozsądne alternatywy?
Dzięki
[Edytuj] Jak zauważono w komentarzach, liczyłem na rozwiązanie, które nie wprowadziłoby mnie w sferę modeli wielopoziomowych. Chociaż mój trening pozwala mi dostrzec, że te rzeczy powinny być ze sobą powiązane, jest to raczej skok, niż samodzielne podejmowanie się. W związku z tym kopałem dalej i znalazłem ten link: http://landroni.wordpress.com/2012/06/02/fama-macbeth-and-cluster-robust-by-firm-and-time-standard-errors-in- r /
który wskazuje na dość prosty kod do robienia tego, co chcę:
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"))
Nie powiela to jednak wyników analizy w Stata, prawdopodobnie dlatego, że jest przeznaczony do pracy na OLS, a nie na ujemnych dwumianach. Tak więc wyszukiwanie trwa. Wszelkie wskazówki na temat tego, co robię źle, byłyby bardzo mile widziane
źródło
Odpowiedzi:
Ten dokument pokazuje, jak uzyskać klastrowe SE dla regresji glm:
http://dynaman.net/R/clrob.pdf
źródło
To nie jest w pełni zadowalająca odpowiedź ...
Sam tego nie próbowałem, ale wygląda na to, że pakiet glmmADMB może zrobić, co chcesz.
Zawstydzę się w komentarzu @ fmark do pytania i zgodzę się z nim, że notatki Bena Bolkera są przydatne, podobnie jak to wcześniejsze pytanie , które nie jest dokładnym duplikatem, ale obejmuje bardzo podobne problemy.
źródło