10 votos

R equivalente a la opción de clúster cuando se utiliza la regresión binomial negativa

Estoy tratando de replicar un colega del trabajo y estoy tratando de realizar el análisis de Stata para R. Los modelos que emplea a invocar el "cluster" de la opción dentro de la nbreg función para agrupar los errores estándar.

Ver http://repec.org/usug2007/crse.pdf para una muy completa descripción de el qué y el por qué de esta opción

Mi pregunta es cómo invocar esta misma opción para la regresión binomial negativa dentro de la R?

El primer modelo en nuestro papel especificado en el programa Stata como sigue

 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)

y he sustituido este con

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),])

que, obviamente, carece de la agrupado los errores de la pieza.

Es posible hacer una réplica exacta? Si es así, cómo? Si no, ¿cuáles son algunas de las alternativas razonables?

Gracias

[Editar] Como se señaló en los comentarios, yo estaba esperando una solución que no me entra en el reino de los modelos multinivel. Mientras que mi formación me permite ver que estas cosas deberían estar relacionados, es más de un salto de la que me siento cómodo de tomar por mi cuenta. Como tal seguí cavando y encontré este enlace: http://landroni.wordpress.com/2012/06/02/fama-macbeth-and-cluster-robust-by-firm-and-time-standard-errors-in-r/

que señala algunos bastante sencillo código para hacer lo que quiero:

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"))

Esto no replicar los resultados del análisis en el programa Stata, aunque, probablemente debido a que está diseñado para trabajar en OLS no binomial negativa. Por lo que la búsqueda continúa. Los punteros en donde estoy mal sería muy apreciada

4voto

Georgi Puntos 2153

Este documento muestra cómo obtener clúster SEs para un glm de regresión:

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

1voto

Ted Puntos 854

Esto no es una respuesta plenamente satisfactoria...

No he probado a mí mismo, pero parece que el glmmADMB paquete puede hacer lo que quiera.

Yo descaradamente pizca de @fmark el comentario sobre la pregunta y de acuerdo con él en que Ben Bolker notas son útiles, ya que es esta una pregunta anterior, que no es un duplicado exacto, pero cubre muy similares problemas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X