Regressione binomiale negativa | Esempi di analisi dei dati di Stata

Info sulla versione: Il codice di questa pagina è stato testato in Stata 12.

La regressione binomiale negativa è per la modellazione di variabili di conteggio, di solito per variabili di risultato di conteggio troppo disperse.

Nota: lo scopo di questa pagina è di mostrare come usare vari comandi di analisi dei dati. Non copre tutti gli aspetti del processo di ricerca che i ricercatori devono fare. In particolare, non copre la pulizia e il controllo dei dati, la verifica delle ipotesi, la diagnostica dei modelli o le potenziali analisi di follow-up.

Esempi di regressione binomiale negativa

Esempio 1. Gli amministratori scolastici studiano il comportamento di frequenza degli studenti delle scuole superiori di due scuole. I predittori del numero di giorni di assenza includono il tipo di programma in cui lo studente è iscritto e un test standardizzato in matematica.

Esempio 2. Un ricercatore in ambito sanitario sta studiando il numero di visite ospedaliere negli ultimi 12 mesi da parte degli anziani di una comunità in base alle caratteristiche degli individui e ai tipi di piani sanitari con cui ciascuno è coperto.

Descrizione dei dati

Proseguiamo l’esempio 1 di cui sopra.

Abbiamo i dati di frequenza su 314 matricole di due scuole superiori urbane nel file nb_data.dta. La variabile di risposta di interesse è i giorni di assenza, daysabs. La variabile matematica è il punteggio standardizzato di matematica per ogni studente. La variabile prog è una variabile nominale a tre livelli che indica il tipo di programma educativo in cui lo studente è iscritto.

Guardiamo i dati. E’ sempre una buona idea iniziare con statistiche descrittive e grafici.

use https://stats.idre.ucla.edu/stat/stata/dae/nb_data, clearsummarize daysabs math
 Variable | 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-1Image nbreg1-1

Ogni variabile ha 314 osservazioni valide e la loro distribuzione sembra abbastanza ragionevole. La media incondizionata della nostra variabile di risultato è molto più bassa della sua varianza.

Continuiamo con la nostra descrizione delle variabili in questo set di dati. La tabella qui sotto mostra il numero medio di giorni di assenza per tipo di programma e sembra suggerire che il tipo di programma è un buon candidato per predire il numero di giorni di assenza, la nostra variabile di risultato, perché il valore medio del risultato sembra variare daprog. Le varianze all’interno di ogni livello di prog sono più alte delle medie all’interno di ogni livello. Queste sono le medie e le varianze condizionali. Queste differenze suggeriscono che la dispersione eccessiva è presente e che un modello Binomiale Negativo sarebbe appropriato.

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

Metodi di analisi che potresti considerare

Di seguito è riportato un elenco di alcuni metodi di analisi che potresti aver incontrato. Alcuni dei metodi elencati sono abbastanza ragionevoli, mentre altri sono caduti in disgrazia o hanno dei limiti.

  • Regressione binomiale negativa – La regressione binomiale negativa può essere usata per dati di conteggio troppo dispersi, cioè quando la varianza condizionata supera la media condizionata. Può essere considerata come una generalizzazione della regressione di Poisson poiché ha la stessa struttura della media della regressione di Poisson e ha un parametro extra per modellare l’iperdispersione. Se la distribuzione condizionale della variabile di risultato è iperdispersa, gli intervalli di confidenza per la regressione binomiale negativa sono probabilmente più stretti rispetto a quelli di un modello di regressione di Poisson.
  • Regressione Poisson – La regressione Poisson è spesso usata per modellare i dati di conteggio. La regressione di Poisson ha una serie di estensioni utili per i modelli di conteggio.
  • Modello di regressione zero-inflated – I modelli zero-inflated cercano di tenere conto degli zeri in eccesso. In altre parole, si pensa che esistano due tipi di zeri nei dati, “zeri veri” e “zeri in eccesso”. I modelli zero-inflated stimano due equazioni simultaneamente, una per il modello di conteggio e una per gli zeri in eccesso.
  • Regressione OLS – Le variabili di risultato del conteggio sono talvolta trasformate logicamente e analizzate usando la regressione OLS. Molti problemi sorgono con questo approccio, compresa la perdita di dati a causa di valori indefiniti generati prendendo il log di zero (che è indefinito), così come la mancanza di capacità di modellare la dispersione.

Analisi di regressione binomiale negativa

Di seguito usiamo il comando nbreg per stimare un modello di regressione binomiale negativo. La i. prima di prog indica che si tratta di una variabile fattore (cioè, una variabile categorica), e che dovrebbe essere inclusa nel modello come una serie di variabili indicatrici.

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

  • L’output inizia il registro delle iterazioni. Possiamo vedere che inizia con l’adattamento di un modello di Poisson, poi un modello nullo (modello di sola intercetta) e infine il modello binomiale negativo. Poiché utilizza la stima di massima verosimiglianza, itera fino a quando il cambiamento nella verosimiglianza log è sufficientemente piccolo. L’ultimo valore nel log dell’iterazione è il valore finale della verosimiglianza log per il modello completo e viene visualizzato di nuovo. La log likelihood può essere usata per confrontare i modelli.
  • Le informazioni dell’intestazione sono presentate dopo. Sul lato destro, il numero di osservazioni utilizzate nell’analisi (314) è dato, insieme alla statistica Wald del chi-quadro con tre gradi di libertà per il modello completo, seguita dal valore p del chi-quadro. Questo è un test che tutti i coefficienti stimati sono uguali a zero, un test del modello nel suo complesso. Dal p-value, possiamo vedere che il modello è statisticamente significativo. L’intestazione include anche uno pseudo-R2, che è 0,03 in questo esempio.
  • Sotto l’intestazione troverete i coefficienti di regressione binomiale negativa per ciascuna delle variabili, insieme agli errori standard, i punteggi z, i valori p e gli intervalli di confidenza al 95% per i coefficienti. La variabile matematica ha un coefficiente di -0,006, che è statisticamente significativo. Questo significa che per ogni aumento di un’unità in matematica, il conteggio log previsto del numero di giorni di assenza diminuisce di 0,006. La variabile indicatore 2.prog è la differenza attesa nel conteggio log tra il gruppo 2 (prog=2) e il gruppo di riferimento (prog=1). Il conteggio log previsto per il livello 2 di prog è 0,44 inferiore al conteggio log previsto per il livello 1. La variabile indicatore3.prog è la differenza attesa nel conteggio dei log tra il gruppo 3 (prog=3) e il gruppo di riferimento (prog=1). Il conteggio dei log previsto per il livello 3 di prog è 1,28 inferiore al conteggio dei log previsto per il livello 1. Per determinare se prog stesso, nel complesso, è statisticamente significativo, possiamo usare il comando test per ottenere il test a due gradi di libertà di questa variabile. Il test del chi-quadro a due gradi di libertà indica che prog è un predittore statisticamente significativo di daysabs.
test 2.prog 3.prog ( 1) 2.prog = 0 ( 2) 3.prog = 0 chi2( 2) = 49.21 Prob > chi2 = 0.0000
  • Inoltre, il parametro di sovradispersione (/lnalpha) log-trasformato è stimato e viene visualizzato insieme al valore non trasformato. Un modello Poisson è un modello in cui questo valore alfa è vincolato a zero. Stata trova la stima di massima verosimiglianza del log di alfa e poi calcola alfa da questo. Questo significa che alpha è sempre maggiore di zero e che nbreg di Stata permette solo la sovradispersione (varianza maggiore della media).
  • Sotto la tabella dei coefficienti, troverete un test di likelihood ratio che alpha è uguale a zero – il test di likelihood ratio che confronta questo modello con un modello Poisson. In questo esempio il valore chi-quadrato associato è 926,03 con un grado di libertà. Questo suggerisce fortemente che alfa non è zero e che il modello binomiale negativo è più appropriato del modello Poisson.

Possiamo anche vedere i risultati come rapporti di incidenti usando l’opzione theirr.

L’output di cui sopra indica che il tasso di incidenti per 2.prog è 0,64 volte il tasso di incidenti per il gruppo di riferimento (1.prog). Allo stesso modo, il tasso di incidenti per 3.prog è 0,28 volte il tasso di incidenti per il gruppo di riferimento mantenendo le altre variabili costanti. Il cambiamento percentuale nel tasso di incidenti didaysabs è una diminuzione dell’1% per ogni aumento di unità in matematica.

La forma dell’equazione del modello per la regressione binomiale negativa è la stessa della regressione Poisson. Il log del risultato è previsto con una combinazione lineare dei predittori:

log(daysabs) = intercetta + b1(prog=2) + b2(prog=3) + b3math.

Questo implica:

daysabs = exp(Intercept + b1(prog=2) + b2(prog=3)+ b3math) = exp(Intercept) * exp(b1(prog=2)) * exp(b2(prog=3)) * exp(b3math)

I coefficienti hanno un effetto additivo nella scala log(y) e il TIR ha un effetto moltiplicativo nella scala y. Il parametro di dispersione alfa nella regressione binomiale negativa non ha effetto sui conteggi attesi, ma ha effetto sulla varianza stimata dei conteggi attesi. Maggiori dettagli possono essere trovati nella documentazione di Stata.

Per ulteriori informazioni sulle varie metriche in cui i risultati possono essere presentati, e la loro interpretazione, si prega di vedere Regression Models for Categorical Dependent Variables Using Stata, Second Edition di J. Scott Long e Jeremy Freese (2006).

Per capire meglio il modello, possiamo usare il comando margini. Di seguito usiamo il comando margini per calcolare i conteggi previsti ad ogni livello di prog, tenendo tutte le altre variabili (in questo esempio, la matematica) nel modello alle loro medie.

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

Nell’output qui sopra, vediamo che il numero previsto di eventi per il livello 1 di prog è circa 10.24, tenendo la matematica alla sua media. Il numero previsto di eventi per il livello 2 di prog è inferiore a 6,59, e il numero previsto di eventi per il livello 3 di prog è circa 2,85. Si noti che il conteggio previsto per il livello 2 di prog è (6,587927/10,2369) = 0,64 volte il conteggio previsto per il livello 1 di prog. Questo corrisponde a ciò che abbiamo visto nella tabella di output IRR.

Di seguito otterremo il numero previsto di eventi per valori di matematica che vanno da 0 a 100 in incrementi di 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 tabella sopra mostra che con prog ai valori osservati e math a 0 per tutte le osservazioni, il conteggio medio previsto (o numero medio di giorni di assenza) è circa 7,72; quando math = 100, il conteggio medio previsto è circa 4,24. Se confrontiamo i conteggi previsti a due livelli qualsiasi di matematica, come matematica = 20 e matematica = 40, possiamo vedere che il rapporto è (6,072587/6,845863) = 0,887. Questo corrisponde al TIR di 0,994 per un cambio di 20 unità: 0.994^20 = 0.887.

Il comando fitstat scritto dall’utente (così come i comandi estat di Stata) può essere usato per ottenere ulteriori informazioni sul fit del modello che possono essere utili se si vogliono confrontare i modelli. Puoi digitare search fitstat per scaricare questo programma (vedi Come posso usare il comando search per cercare programmi e ottenere ulteriore aiuto? per maggiori informazioni sull’uso di search).

fitstat
Measures 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

Puoi graficare il numero previsto di eventi con i comandi qui sotto. Il grafico indica che il maggior numero di giorni di assenza è previsto per quelli del programma accademico 1, specialmente se lo studente ha un basso punteggio in matematica. Il minor numero di giorni di assenza previsti è per gli studenti del programma 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) 

Cose da considerare

  • Non si consiglia di applicare modelli binomiali negativi a piccoli campioni.
  • Una causa comune di sovradispersione è l’eccesso di zeri da un processo aggiuntivo di generazione dei dati. In questa situazione, il modello zero-inflated dovrebbe essere considerato.
  • Se il processo di generazione dei dati non consente alcuno 0 (come il numero di giorni trascorsi in ospedale), allora un modello zero-truncated può essere più appropriato.
  • I dati di conteggio hanno spesso una variabile di esposizione, che indica il numero di volte che l’evento potrebbe essere accaduto. Questa variabile dovrebbe essere incorporata nel vostro modello di regressione binomiale negativa con l’uso dell’opzione exp().
  • La variabile di risultato in una regressione binomiale negativa non può avere numeri negativi, e l’esposizione non può avere 0.
  • Si può anche eseguire un modello binomiale negativo usando il comando glm con il collegamento log e la famiglia binomiale.
  • Sarà necessario usare il comando glm per ottenere i residui per controllare altre ipotesi del modello binomiale negativo (vedere Cameron e Trivedi (1998) e Dupont (2002) per maggiori informazioni).
  • Pseudo-R-squadro: Esistono molte misure diverse di pseudo-R-squadro. Tutte tentano di fornire informazioni simili a quelle fornite dall’R-quadro nella regressione OLS; tuttavia, nessuna di esse può essere interpretata esattamente come viene interpretato l’R-quadro nella regressione OLS. Per una discussione dei vari pseudo-quadri R, si veda Long e Freese (2006) o la nostra pagina FAQChe cosa sono gli pseudo-quadri R?

Vedi anche

  • Output annotato per il comando nbreg
  • Manuale online di Stata
    • nbreg
  • Comandi Stata correlati
    • poisson – regressione poisson
  • Stata FAQs
    • I miei dati grezzi contengono prove sia di sovradispersione che di eccesso di zeri. Un modello binomiale negativo inflazionato con zero è l’unico modello di dati di conteggio che può tenere conto sia dell’iperdispersione che dell’eccesso di zeri?
    • Come si calcolano gli errori standard e gli intervalli di confidenza per i rapporti di incidenza (IRR) con poisson e nbreg? Regression Models for Categorical and Limited Dependent Variables.Thousand Oaks, CA: Sage Publications.
    • Long, J. S. and Freese, J. (2006). Regression Models for Categorical Dependent Variables Using Stata, Second Edition. College Station, TX: Stata Press.
    • Cameron, A. C. and Trivedi, P. K. (2009). Microeconometria con Stata. College Station, TX: Stata Press.
    • Cameron, A. C. e Trivedi, P. K. (1998). Regression Analysis of Count Data. New 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). Modellazione statistica per ricercatori biomedici: A Simple Introduction to the Analysis of Complex Data. New York: Cambridge Press.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *