Informação de versão: O código para esta página foi testado em Stata 12.
Regressão binomial negativa é para modelagem de variáveis de contagem, geralmente para variáveis de resultados de contagem sobre-dispersas.
Por favor note: O objectivo desta página é mostrar como usar vários comandos de análise de dados. Não cobre todos os aspectos do processo de investigação que se espera que os investigadores façam. Em particular, não cobre a limpeza e verificação de dados, verificação de suposições, diagnóstico de modelos ou potenciais análises de seguimento.
Exemplos de regressão binomial negativa
Exemplo 1. Os administradores escolares estudam o comportamento de frequência de alunos do ensino secundário em duas escolas. Os prognósticos do número de dias de ausência incluem o tipo de programa em que o aluno está inscrito e um teste padronizado em matemática.
Exemplo 2. Um investigador relacionado com a saúde está a estudar o número de visitas hospitalares nos últimos 12 meses por cidadãos idosos numa comunidade, com base nas características dos indivíduos e nos tipos de planos de saúde sob os quais cada um deles é abrangido.
Descrição dos dados
Vamos prosseguir com o Exemplo 1 de cima.
Temos dados de frequência de 314 jovens do secundário de duas escolas secundárias urbanas no ficheiro nb_data.dta. A variável de resposta de interesse é dias de ausência, daysabs. A variável matemática é a pontuação padrão de matemática para o aluno. A variável prog é uma variável nominal de três níveis indicando o tipo de programa de instrução em que o aluno está inscrito.
p>Vamos ver os dados. É sempre uma boa ideia começar com estatísticas descritivas e 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 variável tem 314 observações válidas e as suas distribuições parecem bastante razoáveis. A média incondicional da nossa variável de resultado é muito inferior à sua variância.
Vamos continuar com a nossa descrição das variáveis deste conjunto de dados. A tabela abaixo mostra os números médios de dias de ausência por tipo de programa e parece sugerir que o tipo de programa é um bom candidato para prever o número de dias de ausência, a nossa variável de resultado, porque o valor médio do resultado parece variar byprog. As variações dentro de cada nível de programa são mais elevadas do que as médias dentro de cada nível. Estes são os meios condicionais e as variações. Estas diferenças sugerem que a dispersão excessiva está presente e que um modelo Binomial Negativo seria apropriado.
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álise que poderá considerar
Below é uma lista de alguns métodos de análise que poderá ter encontrado. Alguns dos métodos listados são bastante razoáveis, enquanto outros ou caíram em desgraça ou têm limitações.
- Regressão binomial negativa – A regressão binomial negativa pode ser usada para dados de contagem com excesso de dispersão, ou seja, quando a variância condicional excede a média condicional. Pode ser considerada como uma generalização da regressão de Poisson, uma vez que tem a mesma estrutura média da regressão de Poisson e tem um parâmetro extra para modelar a sobre-dispersão. Se a distribuição condicional da variável de resultado estiver sobre-dispersa, os intervalos de confiança para a regressão binomial negativa são provavelmente mais estreitos em comparação com os de um modelo de regressão de Poisson.
- Modelo de regressão com inflacção zero – Modelos com inflacção zero tentam contabilizar o excesso de zeros. Por outras palavras, pensa-se que existem dois tipos de zeros nos dados, “verdadeiros zeros” e “zeros em excesso”. Os modelos com inflação zero estimam duas equações simultaneamente, uma para o modelo de contagem e outra para os zeros em excesso.
- regressãoOLS – As variáveis de resultado da contagem são por vezes transformadas em log e analisadas utilizando a regressão OLS. Muitas questões surgem com esta abordagem, incluindo a perda de dados devido a valores indefinidos gerados por tomar o log de zero (que é indefinido), bem como a falta de capacidade para modelar a dispersão.
li> regressão de Poisson – a regressão de Poisson é frequentemente utilizada para modelar dados de contagem. A regressão de Poisson tem uma série de extensões úteis para modelos de contagem.
Análise de regressão binomial negativa
Below usamos o comando nbreg para estimar um modelo de regressão binomial negativa. O i. antes do prog indica que é uma variável factor (ou seja, variável categórica), e que deve ser incluída no modelo como uma série de variáveis 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
- O output começa com o log de iteração. Podemos ver que começa com a montagem de um modelo Poisson, depois um modelo nulo (interceptar apenas o modelo) e finalmente o modelo binomial negativo. Uma vez que utiliza a estimativa de máxima probabilidade, itera até que a alteração na probabilidade do log seja suficientemente pequena. O último valor no registo de iteração é o valor final da probabilidade logarítmica para o modelo completo e é apresentado novamente. A probabilidade logarítmica pode ser utilizada para comparar modelos.
- A informação do cabeçalho é apresentada a seguir. No lado direito, é dado o número de observações utilizadas na análise (314), juntamente com a estatística do qui-quadrado de Wald com três graus de liberdade para o modelo completo, seguido do valor de p para o qui-quadrado. Este é um teste em que todos os coeficientes estimados são iguais a zero – um teste do modelo como um todo. Pelo valor p, podemos ver que o modelo é estatisticamente significativo. O cabeçalho também inclui um pseudo-R2, que é 0,03 neste exemplo.
- Below o cabeçalho encontrará os coeficientes de regressão binomial negativos para cada uma das variáveis, juntamente com erros padrão, z-scores, valores p e intervalos de confiança de 95% para os coeficientes. A variável matemática tem um coeficiente de -0,006, que é estatisticamente significativo. Isto significa que para cada aumento de uma unidade em matemática, a contagem esperada do número de dias de ausência diminui em 0,006. A variável indicadora 2.prog é a diferença esperada na contagem de log entre o grupo 2 (prog=2) e o grupo de referência (prog=1). A contagem esperada de log para o nível 2 de prog é 0,44 inferior à contagem esperada de log para o nível 1. A variável indicadora3.prog é a diferença esperada na contagem de log entre o grupo 3 (prog=3) e o grupo de referência (prog=1). A contagem esperada de log para o nível 3 de prog é 1,28 inferior à contagem esperada de log para o nível 1. Para determinar se o próprio prog, em geral, é estatisticamente significativo, podemos usar o comando de teste para obter o teste de dois graus de liberdade desta variável. O teste dos dois graus de qui-quadrado de liberdade indica que o prog é um preditor estatisticamente significativo de absorção de dias.
test 2.prog 3.prog ( 1) 2.prog = 0 ( 2) 3.prog = 0 chi2( 2) = 49.21 Prob > chi2 = 0.0000
- Adicionalmente, o parâmetro de sobre-dispersão log-transformado (/lnalpha) é estimado e é exibido juntamente com o valor nãotransformado. Um modelo de Poisson é aquele em que este valor alfa é limitado a zero. Stata encontra a estimativa de máxima probabilidade do log de alfa e depois calcula o alfa a partir deste. Isto significa que alfa é sempre maior que zero e que o nbreg de Stata só permite uma dispersão excessiva (variância maior que a média).
- Não se recomenda a aplicação de modelos binomiais negativos a amostras pequenas.
- Uma causa comum de sobre-dispersão é o excesso de zeros por um processo adicional de geração de dados. Nesta situação, deve ser considerado um modelo com zeros inflados.
- Se o processo de geração de dados não permitir quaisquer 0s (como o número de dias passados no hospital), então um modelo com zeros truncados pode ser mais apropriado.
- Os dados de contagem têm frequentemente uma variável de exposição, que indica o número de vezes que o evento poderia ter acontecido. Esta variável deve ser incorporada no seu modelo de regressão binomial negativa com a utilização da opção exp().
- A variável de resultado numa regressão binomial negativa não pode ter números negativos, e a exposição não pode ter 0s.
- É também possível executar um modelo binomial negativo usando o comando glm com a ligação log e a família binomial.
- É necessário usar o comando glm para obter os resíduos para verificar outras hipóteses do modelo binomial negativo (ver Cameron e Trivedi (1998) e Dupont (2002) para mais informações).
- Pseudo-R-quadrado: Existem muitas medidas diferentes de pseudo-R-quadrado. Todas elas tentam fornecer informações semelhantes às fornecidas por R-quadrado na regressão OLS; contudo, nenhuma delas pode ser interpretada exactamente como R-quadrado na regressão OLS é interpretada. Para uma discussão de vários pseudo-R-quadrados, ver Long e Freese (2006) ou a nossa página de perguntas frequentes O que são pseudo-R-quadrados? .
- Saída anotada para o comando nbreg
- Manual em linha de dados
- li>nbreg
- Como são computados os erros padrão e os intervalos de confiança para as taxas de incidência (TIRs) por poisson e nbreg?
- Long, J. S. (1997). Regression Models for Categorical and Limited Dependent Variables.Thousand Oaks, CA: Sage Publications.
- Long, J. S. e Freese, J. (2006). Regression Models for Categorical Dependent Variables Using Stata, Segunda Edição. College Station, TX: Stata Press.
- Cameron, A. C. e Trivedi, P. K. (2009). Microeconometria com uso de Stata. College Station, TX: Stata Press.
- Cameron, A. C. e Trivedi, P. K. (1998). Análise de Regressão de Dados de Contagem. Nova Iorque: Cambridge Press.
- Cameron, A. C. Advances in Count Data Regression Talk for the Applied Statistics Workshop, 28 de Março de 2009.http://cameron.econ.ucdavis.edu/racd/count.html .
- Dupont, W. D. (2002). Modelação Estatística para Investigadores Biomédicos: Uma Introdução Simples à Análise de Dados Complexos. Nova Iorque: Cambridge Press.
li>Below a tabela de coeficientes, encontrará um teste de rácio de verosimilhança que alfa é igual a zero – o teste de rácio de verosimilhança comparando este modelo com um modelo de Poisson. Neste exemplo, o valor qui-quadrado associado é 926,03 com um grau de liberdade. Isto sugere fortemente que o alfa não é zero e o modelo binomial negativo é mais apropriado do que o modelo de Poisson.
Podemos também ver os resultados como rácios de taxa de incidência, utilizando a sua opção.
O resultado acima indica que a taxa de incidentes para 2.prog é 0,64 vezes a taxa de incidentes para o grupo de referência (1.prog). Da mesma forma, a taxa de incidentes para 3,prog é 0,28 vezes a taxa de incidentes para o grupo de referência mantendo constantes as outras variáveis. A variação percentual na taxa de incidentes dos conjuntos de dias é uma diminuição de 1% para cada aumento unitário em matemática.
A forma da equação modelo para a regressão binomial negativa é a mesma que para a regressão de Poisson. O log do resultado é previsto com uma combinação linear dos preditores:
log(daysabs) = Intercept + b1(prog=2) + b2(prog=3) + b3math.
Isto implica:
daysabs = exp(Intercept + b1(prog=2) + b2(prog=3)+ b3math) = exp(Intercept) * exp(b1(prog=2)) * exp(b2(prog=3)) * exp(b3math)
Os coeficientes têm um efeito aditivo na escala log(y) e a TIR tem um efeito multiplicativo na escala y. O parâmetro de dispersão alfa em regressão binomial negativa não afecta as contagens esperadas, mas afecta a variância estimada das contagens esperadas. Mais detalhes podem ser encontrados na documentação Stata.
Para mais informações sobre as várias métricas em que os resultados podem ser apresentados, e a sua interpretação, por favor ver Modelos de Regressão para Variáveis Dependentes Categóricas Utilizando Stata, Segunda Edição de J. Scott Long e Jeremy Freese (2006).
Para compreender melhor o modelo, podemos usar o comando de margens. Abaixo usamos o comando de margens para calcular as contagens previstas em cada nível de prog, mantendo todas as outras variáveis (neste exemplo, matemática) no modelo às suas médias.
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------------------------------------------------------------------------------
Na saída acima, vemos que o número previsto de eventos para o nível 1 do prog é cerca de 10,24, mantendo a matemática na sua média. O número previsto de eventos para o nível 2 do programa é inferior a 6,59, e o número previsto de eventos para o nível 3 do programa é de cerca de 2,85. Note-se que a contagem prevista para o nível 2 do programa é (6,587927/10,2369) = 0,64 vezes a contagem prevista para o nível 1 do programa. Isto corresponde ao que vimos na tabela de saída da TIR.
Below obteremos o número previsto de eventos para valores de matemática que variam de 0 a 100 em 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------------------------------------------------------------------------------
A tabela acima mostra que com prog nos seus valores observados e matemática mantida a 0 para todas as observações, a contagem média prevista (ou número médio de dias de ausência) é de cerca de 7,72; quando matemática = 100, a contagem média prevista é de cerca de 4,24. Se compararmos as contagens previstas em quaisquer dois níveis de matemática, como matemática = 20 e matemática = 40, podemos ver que a razão é (6,072587/6,845863) = 0,887. Isto corresponde à TIR de 0,994 para uma mudança de 20 unidades: 0,994^20 = 0,887.
O comando fitstat escrito pelo utilizador (bem como os comandos estat da Stata) pode ser usado para obter informações adicionais de ajuste do modelo que podem ser úteis se se quiser comparar modelos. Pode escrever fitstat para descarregar este programa (ver Como posso usar o comando de pesquisa para pesquisar programas e obter ajuda adicional? para mais informações sobre a utilização da pesquisa).
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
P>Pode fazer um gráfico do número previsto de eventos com os comandos abaixo. O gráfico indica que o maior número de dias de ausência está previsto para os do programa académico 1, especialmente se o aluno tiver uma pontuação baixa em matemática. O menor número de dias previstos de ausência é para os alunos do 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)
Coisas a considerar
Veja também
/ul> Estados relacionados comandos
- ###li> poisson – regressão poisson#/ul> li>Perguntas frequentes sobre estatísticas
- >li>Os meus dados crus contêm provas tanto de dispersão excessiva como de excesso de zeros . É um modelo binomial negativo inflado a zero o único modelo de dados de contagem que pode contabilizar tanto o excesso de dispersão como o excesso de zeros ?