Información de la versión: El código para esta página fue probado en Stata 12.
La regresión binomial negativa es para modelar variables de conteo, generalmente para variables de resultado de conteo sobredispersas.
Por favor, tenga en cuenta: El propósito de esta página es mostrar cómo usar varios comandos de análisis de datos. No cubre todos los aspectos del proceso de investigación que se espera que hagan los investigadores. En particular, no cubre la limpieza y comprobación de los datos, la verificación de los supuestos, los diagnósticos del modelo o los posibles análisis de seguimiento.
Ejemplos de regresión binomial negativa
Ejemplo 1. Los administradores de la escuela estudian el comportamiento de asistencia de los estudiantes de último año de secundaria en dos escuelas. Los predictores del número de días de ausencia incluyen el tipo de programa en el que está inscrito el estudiante y una prueba estandarizada de matemáticas.
Ejemplo 2. Un investigador relacionado con la salud está estudiando el número de visitas al hospital en los últimos 12 meses por parte de los ciudadanos de la tercera edad de una comunidad en función de las características de los individuos y los tipos de planes de salud bajo los que está cubierto cada uno.
Descripción de los datos
Continuemos con el ejemplo 1 de arriba.
Tenemos datos de asistencia de 314 estudiantes de último año de secundaria de dos institutos urbanos en el archivo nb_data.dta. La variable de respuesta de interés es días de ausencia, daysabs. La variable math es la puntuación estandarizada en matemáticas de cada estudiante. La variable prog es una variable nominal de tres niveles que indica el tipo de programa de instrucción en el que está inscrito el estudiante.
Examinemos los datos. Siempre es una buena idea empezar con estadísticas descriptivas y gráficos.
use https://stats.idre.ucla.edu/stat/stata/dae/nb_data, clearsummarize daysabs mathVariable | Obs Mean Std. Dev. Min Max-------------+-------------------------------------------------------- daysabs | 314 5.955414 7.036958 0 35 math | 314 48.26752 25.36239 1 99 histogram daysabs, discrete freq scheme(s1mono)Image nbreg1-1
Cada variable tiene 314 observaciones válidas y sus distribuciones parecen bastante razonables. La media incondicional de nuestra variable de resultado es mucho menor que su varianza.
Continuemos con nuestra descripción de las variables de este conjunto de datos. La siguiente tabla muestra el promedio de días de ausencia por tipo de programa y parece sugerir que el tipo de programa es un buen candidato para predecir el número de días de ausencia, nuestra variable de resultado, porque el valor medio del resultado parece variar porprog. Las varianzas dentro de cada nivel de prog son mayores que las medias dentro de cada nivel. Estas son las medias y varianzas condicionales. Estas diferencias sugieren que la sobredispersión está presente y que un modelo Binomial Negativo sería apropiado.
tabstat daysabs, by(prog) stats(mean v n)Summary for variables: daysabs by categories of: prog prog | mean variance N---------+------------------------------ 1 | 10.65 67.25897 40 2 | 6.934132 55.44744 167 3 | 2.672897 13.93916 107---------+------------------------------ Total | 5.955414 49.51877 314----------------------------------------
Métodos de análisis que podría considerar
A continuación se muestra una lista de algunos métodos de análisis que puede haber encontrado. Algunos de los métodos enumerados son bastante razonables, mientras que otros han caído en desgracia o tienen limitaciones.
- Regresión binomial negativa – La regresión binomial negativa puede utilizarse para datos de recuento sobredispersos, es decir, cuando la varianza condicional supera la media condicional. Puede considerarse como una generalización de la regresión de Poisson, ya que tiene la misma estructura de medias que la regresión de Poisson y tiene un parámetro adicional para modelar la sobredispersión. Si la distribución condicional de la variable de resultado está sobredispersa, es probable que los intervalos de confianza de la regresión binomial negativa sean más estrechos en comparación con los de un modelo de regresión de Poisson.
- Regresión de Poisson: la regresión de Poisson se utiliza a menudo para modelar datos de recuento. La regresión de Poisson tiene una serie de extensiones útiles para los modelos de recuento.
- Modelo de regresión cero-inflado – Los modelos cero-inflados intentan dar cuenta del exceso de ceros. En otras palabras, se cree que existen dos tipos de ceros en los datos, «ceros verdaderos» y «ceros en exceso». Los modelos cero-inflados estiman dos ecuaciones simultáneamente, una para el modelo de recuento y otra para el exceso de ceros.
- Regresión OLS – Las variables de resultado de recuento se transforman a veces en logaritmos y se analizan utilizando la regresión OLS. Se plantean muchos problemas con este enfoque, incluida la pérdida de datos debido a los valores indefinidos generados al tomar el logaritmo de cero (que es indefinido), así como la falta de capacidad para modelar la dispersión.
Análisis de regresión binomial negativa
A continuación utilizamos el comando nbreg para estimar un modelo de regresión binomial negativa. La i. antes de prog indica que es una variable factorial (es decir, categórica), y que debe incluirse en el modelo como una serie de variables indicadoras.
nbreg daysabs math i.progFitting Poisson model:Iteration 0: log likelihood = -1328.6751 Iteration 1: log likelihood = -1328.6425 Iteration 2: log likelihood = -1328.6425 Fitting constant-only model:Iteration 0: log likelihood = -899.27009 Iteration 1: log likelihood = -896.47264 Iteration 2: log likelihood = -896.47237 Iteration 3: log likelihood = -896.47237 Fitting full model:Iteration 0: log likelihood = -870.49809 Iteration 1: log likelihood = -865.90381 Iteration 2: log likelihood = -865.62942 Iteration 3: log likelihood = -865.6289 Iteration 4: log likelihood = -865.6289 Negative binomial regression Number of obs = 314 LR chi2(3) = 61.69Dispersion = mean Prob > chi2 = 0.0000Log likelihood = -865.6289 Pseudo R2 = 0.0344------------------------------------------------------------------------------ daysabs | Coef. Std. Err. z P>|z| -------------+---------------------------------------------------------------- math | -.005993 .0025072 -2.39 0.017 -.010907 -.001079 | prog | 2 | -.44076 .182576 -2.41 0.016 -.7986025 -.0829175 3 | -1.278651 .2019811 -6.33 0.000 -1.674526 -.882775 | _cons | 2.615265 .1963519 13.32 0.000 2.230423 3.000108-------------+---------------------------------------------------------------- /lnalpha | -.0321895 .1027882 -.2336506 .1692717-------------+---------------------------------------------------------------- alpha | .9683231 .0995322 .7916384 1.184442------------------------------------------------------------------------------Likelihood-ratio test of alpha=0: chibar2(01) = 926.03 Prob>=chibar2 = 0.000
- La salida comienza el registro de iteración. Podemos ver que comienza ajustando un modelo de Poisson, luego un modelo nulo (modelo de sólo intercepción) y finalmente el modelo binomial negativo. Dado que utiliza la estimación de máxima verosimilitud, itera hasta que el cambio en el logaritmo de verosimilitud es suficientemente pequeño. El último valor en el registro de iteración es el valor final de la probabilidad logarítmica para el modelo completo y se muestra de nuevo. La probabilidad logarítmica se puede utilizar para comparar modelos.
- La información de la cabecera se presenta a continuación. En el lado derecho, se indica el número de observaciones utilizadas en el análisis (314), junto con el estadístico chi-cuadrado de Wald con tres grados de libertad para el modelo completo, seguido del valor p para el chi-cuadrado. Se trata de una prueba de que todos los coeficientes estimados son iguales a cero, una prueba del modelo en su conjunto. A partir del valor p, podemos ver que el modelo es estadísticamente significativo. El encabezado también incluye un pseudo-R2, que es 0,03 en este ejemplo.
- Debajo del encabezado encontrará los coeficientes de regresión binomial negativa para cada una de las variables, junto con los errores estándar, las puntuaciones z, los valores p y los intervalos de confianza del 95% para loscoeficientes. La variable matemáticas tiene un coeficiente de -0,006, que es estadísticamente significativo. Esto significa que por cada aumento de una unidad en matemáticas, el logaritmo esperado del número de días de ausencia disminuye en 0,006. La variable indicadora 2.prog es la diferencia esperada en el recuento logarítmico entre el grupo 2 (prog=2) y el grupo de referencia (prog=1). El recuento logarítmico esperado para el nivel 2 de prog es 0,44 inferior al recuento logarítmico esperado para el nivel 1. La variable indicadora3.prog es la diferencia esperada en el recuento de logaritmos entre el grupo 3 (prog=3) y el grupo de referencia (prog=1). El recuento log esperado para el nivel 3 de prog es 1,28 inferior al recuento log esperado para el nivel 1. Para determinar si prog, en general, es estadísticamente significativo, podemos utilizar el comando test para obtener la prueba de dos grados de libertad de esta variable. La prueba de chi-cuadrado de dos grados de libertad indica que prog es un predictor estadísticamente significativo de daysabs.
test 2.prog 3.prog ( 1) 2.prog = 0 ( 2) 3.prog = 0 chi2( 2) = 49.21 Prob > chi2 = 0.0000
- Además, el parámetro de sobredispersión transformado en logaritmo (/lnalpha) se estima y se muestra junto con el valor sin transformar. Un modelo de Poisson es uno en el que este valor alfa está restringido a cero. Stata encuentra la estimación de máxima verosimilitud del logaritmo de alfa y luego calcula alfa a partir de esto. Esto significa que alfa siempre es mayor que cero y que el nbreg de Stata sólo permite la sobredispersión (varianza mayor que la media).
- Debajo de la tabla de coeficientes, encontrará una prueba de razón de verosimilitud de que alfa es igual a cero-la prueba de razón de verosimilitud que compara este modelo con un modelo de Poisson. En este ejemplo, el valor de chi-cuadrado asociado es de 926,03 con un grado de libertad. Esto sugiere fuertemente que alfa es distinto de cero y que el modelo binomial negativo es más apropiado que el modelo de Poisson.
- No se recomienda aplicar modelos binomiales negativos a muestras pequeñas.
- Una causa común de sobredispersión es el exceso de ceros por un proceso adicional de generación de datos. En esta situación, debe considerarse un modelo inflado por ceros.
- Si el proceso de generación de datos no permite ningún 0 (como el número de días pasados en el hospital), entonces un modelo truncado por ceros puede ser más apropiado.
- Los datos de recuento a menudo tienen una variable de exposición, que indica el número de veces que el evento podría haber ocurrido. Esta variable debe incorporarse a su modelo de regresión binomial negativa con el uso de la opción exp().
- La variable de resultado en una regresión binomial negativa no puede tener números negativos, y la exposición no puede tener 0s.
- También puede ejecutar un modelo binomial negativo utilizando el comando glm con el enlace logarítmico y la familia binomial.
- Necesitará utilizar el comando glm para obtener los residuos para comprobar otros supuestos del modelo binomial negativo (consulte Cameron y Trivedi (1998) y Dupont (2002) para obtener más información).
- Pseudo-R-cuadrado: Existen muchas medidas diferentes de pseudo-R-cuadrado. Todas ellas intentan proporcionar información similar a la proporcionada por R-cuadrado en la regresión OLS; sin embargo, ninguna de ellas puede interpretarse exactamente como se interpreta R-cuadrado en la regresión OLS. Para un análisis de las distintas pseudo R-cuadradas, véase Long y Freese (2006) o nuestra página de preguntas frecuentes¿Qué son las pseudo R-cuadradas?
- Salida anotada del comando nbreg
- Manual de Stata en línea
- nbreg
- Comandos de Stata relacionados poisson – regresión de poisson
- Preguntas frecuentes de Stata
- Mis datos crudos contienen evidencia de sobredispersión y exceso de ceros . ¿Es un modelo binomial negativo inflado a cero el único modelo de datos de conteo que puede dar cuenta tanto de la sobredispersión como del exceso de ceros?
- ¿Cómo se calculan los errores estándar y los intervalos de confianza para las razones de tasas de incidencia (IRR) por poisson y nbreg?
- Long, J. S. (1997). Regression Models for Categorical and Limited Dependent Variables.Thousand Oaks, CA: Sage Publications.
- Long, J. S. y Freese, J. (2006). Regression Models for Categorical Dependent Variables Using Stata, Second Edition. College Station, TX: Stata Press.
- Cameron, A. C. y Trivedi, P. K. (2009). Microeconometrics Using Stata. College Station, TX: Stata Press.
- Cameron, A. C. y Trivedi, P. K. (1998). Regression Analysis of Count Data. Nueva York: Cambridge Press.
- Cameron, A. C. Advances in Count Data Regression Talk for the Applied Statistics Workshop, March 28, 2009.http://cameron.econ.ucdavis.edu/racd/count.html .
- Dupont, W. D. (2002). Modelización estadística para investigadores biomédicos: Una sencilla introducción al análisis de datos complejos. New York: Cambridge Press.
También podemos ver los resultados como cocientes de tasas de incidencia utilizando su opciónr.
La salida anterior indica que la tasa de incidentes para 2.prog es 0,64 veces la tasa de incidentes para el grupo de referencia (1.prog). Del mismo modo, la tasa de incidentes para 3.prog es 0,28 veces la tasa de incidentes para el grupo de referencia manteniendo las otras variables constantes. El cambio porcentual en la tasa de incidentes dedaysabs es una disminución del 1% por cada unidad de aumento en matemáticas.
La forma de la ecuación del modelo para la regresión binomial negativa es la misma que la de la regresión de Poisson. El logaritmo del resultado se predice con una combinación lineal de los predictores:
log(daysabs) = Intercepción + b1(prog=2) + b2(prog=3) + b3math.
Esto implica:
daysabs = exp(Intercept + b1(prog=2) + b2(prog=3)+ b3math) = exp(Intercept) * exp(b1(prog=2)) * exp(b2(prog=3)) * exp(b3math)
Los coeficientes tienen un efecto aditivo en la escala log(y) y las TIR tienen un efecto multiplicativo en la escala y. El parámetro de dispersión alfa en la regresión binomial negativa no afecta a los recuentos esperados, pero sí a la varianza estimada de los mismos. Se pueden encontrar más detalles en la documentación de Stata.
Para obtener información adicional sobre las diversas métricas en las que se pueden presentar los resultados, y la interpretación de los mismos, por favor, consulte Regression Models for Categorical Dependent Variables Using Stata, Second Edition by J. Scott Long and Jeremy Freese (2006).
Para entender mejor el modelo, podemos utilizar el comando margins. A continuación utilizamos el comando margins para calcular los recuentos predichos en cada nivel de prog, manteniendo todas las demás variables (en este ejemplo, las matemáticas) del modelo en sus medias.
margins prog, atmeansAdjusted predictions Number of obs = 314Model VCE : OIMExpression : Predicted number of events, predict()at : math = 48.26752 (mean) 1.prog = .1273885 (mean) 2.prog = .5318471 (mean) 3.prog = .3407643 (mean)------------------------------------------------------------------------------ | Delta-method | Margin Std. Err. z P>|z| -------------+---------------------------------------------------------------- prog | 1 | 10.2369 1.674445 6.11 0.000 6.955048 13.51875 2 | 6.587927 .5511718 11.95 0.000 5.50765 7.668204 3 | 2.850083 .3296496 8.65 0.000 2.203981 3.496184------------------------------------------------------------------------------
En el resultado anterior, vemos que el número de eventos predicho para el nivel 1 de prog es de aproximadamente 10,24, manteniendo las matemáticas en su media. El número de eventos predicho para el nivel 2 de prog es menor, con 6,59, y el número de eventos predicho para el nivel 3 de prog es de aproximadamente 2,85. Obsérvese que el recuento previsto para el nivel 2 de prog es (6,587927/10,2369) = 0,64 veces el recuento previsto para el nivel 1 de prog. Esto coincide con lo que vimos en la tabla de salida de la TIR.
A continuación obtendremos el número de eventos predichos para valores de matemáticas que van de 0 a 100 en incrementos de 20.
margins, at(math=(0(20)100)) vsquishPredictive margins Number of obs = 314Model VCE : OIMExpression : Predicted number of events, predict()1._at : math = 02._at : math = 203._at : math = 404._at : math = 605._at : math = 806._at : math = 100------------------------------------------------------------------------------ | Delta-method | Margin Std. Err. z P>|z| -------------+---------------------------------------------------------------- _at | 1 | 7.717607 .9993707 7.72 0.000 5.758876 9.676337 2 | 6.845863 .6132453 11.16 0.000 5.643924 8.047802 3 | 6.072587 .3986397 15.23 0.000 5.291268 6.853907 4 | 5.386657 .4039343 13.34 0.000 4.59496 6.178354 5 | 4.778206 .5226812 9.14 0.000 3.75377 5.802643 6 | 4.238483 .6474951 6.55 0.000 2.969416 5.50755------------------------------------------------------------------------------
La tabla anterior muestra que con prog en sus valores observados y math mantenido en 0 para todas las observaciones, el recuento medio predicho (o número medio de días de ausencia) es de aproximadamente 7,72; cuando math = 100, el recuento medio predicho es de aproximadamente 4,24. Si comparamos los recuentos previstos en dos niveles cualesquiera de matemáticas, como matemáticas = 20 y matemáticas = 40, podemos ver que la relación es (6,072587/6,845863) = 0,887. Esto coincide con la TIR de 0,994 para un cambio de 20 unidades: 0.994^20 = 0.887.
El comando fitstat escrito por el usuario (así como los comandos de Stata) se puede utilizar para obtener información adicional sobre el ajuste del modelo que puede ser útil si desea comparar modelos. Puede escribir search fitstat para descargar este programa (vea ¿Cómo puedo usar el comando search para buscar programas y obtener ayuda adicional? para más información sobre el uso de search).
fitstatMeasures of Fit for nbreg of daysabsLog-Lik Intercept Only: -896.472 Log-Lik Full Model: -865.629D(308): 1731.258 LR(3): 61.687 Prob > LR: 0.000McFadden's R2: 0.034 McFadden's Adj R2: 0.028ML (Cox-Snell) R2: 0.178 Cragg-Uhler(Nagelkerke) R2: 0.179AIC: 5.552 AIC*n: 1743.258BIC: -39.555 BIC': -44.439BIC used by Stata: 1760.005 AIC used by Stata: 1741.258
Se puede graficar el número de eventos previstos con los comandos que se muestran a continuación. El gráfico indica que la mayor cantidad de días de ausencia se predice para los que están en el programa académico 1, especialmente si el estudiante tiene una puntuación baja en matemáticas. El menor número de días de ausencia predichos es para aquellos estudiantes del programa 3.
predict csort mathtwoway (line c math if prog==1) /// (line c math if prog==2) /// (line c math if prog==3), /// ytitle("Predicted Mean Value of Response") ylabel(0(3)15 ,nogrid) /// xtitle("Math Score") legend(order(1 "prog=1" 2 "prog=2" 3 "prog=3")) scheme(s1mono)