Versie-info: De code voor deze pagina is getest in Stata 12.
Negatieve binomiale regressie is bedoeld voor het modelleren van tellingsvariabelen, meestal voor overgedispergeerde tellingsuitkomstvariabelen.
Let op: het doel van deze pagina is te laten zien hoe verschillende data-analysecommando’s gebruikt kunnen worden. Het behandelt niet alle aspecten van het onderzoeksproces die onderzoekers geacht worden te doen. In het bijzonder wordt niet ingegaan op het opschonen en controleren van gegevens, het verifiëren van aannames, modeldiagnostiek of mogelijke vervolganalyses.
Voorbeelden van negatieve binomiale regressie
Voorbeeld 1. Schoolbeheerders onderzoeken het aanwezigheidsgedrag van middelbare scholieren op twee scholen. Voorspellers van het aantal dagen afwezigheid zijn onder meer het soort programma waarin de leerling is ingeschreven en een gestandaardiseerde wiskundetest.
Voorbeeld 2. Een onderzoeker op het gebied van de gezondheidszorg bestudeert het aantal ziekenhuisbezoeken van ouderen in een gemeenschap in de afgelopen 12 maanden op basis van de kenmerken van de personen en de soorten ziektekostenverzekeringen waaronder elk van hen valt.
Beschrijving van de gegevens
Laten we voorbeeld 1 van hierboven volgen.
We hebben aanwezigheidsgegevens over 314 middelbare scholieren van twee stedelijke middelbare scholen in het bestand nb_data.dta. De betrokken variabele is het aantal afwezigheidsdagen, daysabs. De variabele wiskunde is de gestandaardiseerde wiskunde-score voor elke leerling. De variabele prog is een nominale variabele met drie niveaus die aangeeft in welk type instructieprogramma de leerling is ingeschreven.
Laten we eens naar de gegevens kijken. Het is altijd een goed idee om te beginnen met beschrijvende statistieken en plots.
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
Elke variabele heeft 314 geldige waarnemingen en hun verdelingen lijken heel redelijk. Het onvoorwaardelijke gemiddelde van onze uitkomstvariabele is veel lager dan de variantie.
Laten we verder gaan met onze beschrijving van de variabelen in deze dataset. De tabel hieronder toont het gemiddelde aantal afwezige dagen per programmatype en lijkt erop te wijzen dat het programmatype een goede kandidaat is voor het voorspellen van het aantal afwezige dagen, onze uitkomstvariabele, omdat de gemiddelde waarde van de uitkomst per prog lijkt te variëren. De varianties binnen elk niveau van prog zijn hoger dan de gemiddelden binnen elk niveau. Dit zijn de voorwaardelijke gemiddelden en varianties. Deze verschillen suggereren dat er sprake is van over-dispersie en dat een Negatief Binomiaal model geschikt zou zijn.
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----------------------------------------
Analysemethoden die je zou kunnen overwegen
Hieronder vind je een lijst van enkele analysemethoden die je misschien bent tegengekomen. Sommige van de genoemde methoden zijn heel redelijk, terwijl andere ofwel uit de gratie zijn geraakt ofwel beperkingen hebben.
- Negatieve binomiale regressie – Negatieve binomiale regressie kan worden gebruikt voor overgedispergeerde telgegevens, dat wil zeggen wanneer de conditionele variantie groter is dan het conditionele gemiddelde. Zij kan worden beschouwd als een veralgemening van Poissonregressie, aangezien zij dezelfde gemiddelde structuur heeft als Poissonregressie en een extra parameter heeft om de overspreiding te modelleren. Als de voorwaardelijke verdeling van de uitkomstvariabele overgedispergeerd is, zullen de betrouwbaarheidsintervallen voor de Negatieve binomiale regressie waarschijnlijk smaller zijn dan die van een Poisson regressiemodel.
- Poisson regressie – Poisson regressie wordt vaak gebruikt voor het modelleren van telgegevens. Poisson regressie heeft een aantal uitbreidingen die nuttig zijn voor tellingsmodellen.
- Zero-inflated regressiemodel – Zero-inflated modellen proberen rekening te houden met overtollige nullen. Met andere woorden, men gaat ervan uit dat er twee soorten nullen bestaan in de gegevens, “echte nullen” en “overtollige nullen”. Nul-geïnflateerde modellen schatten twee vergelijkingen tegelijk, één voor het telmodel en één voor de overtollige nullen.
- OLS regressie – Uitkomstvariabelen van tellingen worden soms log-getransformeerd en geanalyseerd met OLS regressie. Deze aanpak levert veel problemen op, zoals gegevensverlies door ongedefinieerde waarden die ontstaan door de log van nul te nemen (die ongedefinieerd is), en het gebrek aan mogelijkheden om de spreiding te modelleren.
Negatieve binomiale regressieanalyse
Hieronder gebruiken we het nbreg commando om een negatief binomiaal regressiemodel te schatten. De i. voor prog geeft aan dat het om een factorvariabele gaat (d.w.z. categorische variabele), en dat deze in het model moet worden opgenomen als een reeks indicatorvariabelen.
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
- De uitvoer begint met het logboek van de iteratie. We zien dat het begint met het passen van een Poisson model, dan een nulmodel (alleen intercept model) en tenslotte het negatieve binomiale model. Aangezien het gebruik maakt van een maximale likelihood schatting, itereert het totdat de verandering in de log likelihood voldoende klein is. De laatste waarde in de iteratielog is de uiteindelijke waarde van de log likelihood voor het volledige model en wordt opnieuw weergegeven. De log likelihood kan worden gebruikt om modellen te vergelijken.
- De header-informatie wordt vervolgens weergegeven. Aan de rechterkant wordt het aantal in de analyse gebruikte waarnemingen (314) gegeven, samen met de Wald chi-kwadraat statistiek met drie vrijheidsgraden voor het volledige model, gevolgd door de p-waarde voor de chi-kwadraat. Dit is een test of alle geschatte coëfficiënten gelijk zijn aan nul – een test van het model als geheel. Uit de p-waarde kunnen we afleiden dat het model statistisch significant is. De header bevat ook een pseudo-R2, die in dit voorbeeld 0,03 is.
- Onder de header vindt u de negatieve binomiale regressiecoëfficiënten voor elk van de variabelen, samen met standaardfouten, z-scores, p-waarden en 95%-betrouwbaarheidsintervallen voor de coëfficiënten. De variabele wiskunde heeft een coëfficiënt van -0,006, wat statistisch significant is. Dit betekent dat voor elke verhoging met één eenheid voor wiskunde, het verwachte logcijfer van het aantal afwezige dagen met 0,006 daalt. De indicatorvariabele 2.prog is het verwachte verschil in aantal logtallen tussen groep 2 (prog=2) en de referentiegroep (prog=1). Het verwachte aantal loggevallen voor niveau 2 van prog is 0,44 lager dan het verwachte aantal loggevallen voor niveau 1. De indicatorvariabele3.prog is het verwachte verschil in aantal logs tussen groep 3 (prog=3) en de referentiegroep (prog=1). Het verwachte aantal logs voor niveau 3 van prog is 1,28 lager dan het verwachte aantal logs voor niveau 1. Om te bepalen of prog zelf, als geheel, statistisch significant is, kunnen we het test-commando gebruiken om de twee-vrijheidsgraden-test van deze variabele te verkrijgen. De twee-vrijheidsgraden-chi-kwadraattest geeft aan dat prog een statistisch significante voorspeller is van daysabs.
test 2.prog 3.prog ( 1) 2.prog = 0 ( 2) 3.prog = 0 chi2( 2) = 49.21 Prob > chi2 = 0.0000
- Extra wordt de log-getransformeerde over-dispersieparameter (/lnalpha) geschat en weergegeven samen met de niet-getransformeerde waarde. Een Poisson-model is een model waarin deze alpha-waarde tot nul wordt beperkt. Stata vindt de maximale waarschijnlijkheidsschatting van de log van alpha en berekent vervolgens alpha op basis hiervan. Dit betekent dat alpha altijd groter is dan nul en dat Stata’s nbreg alleen overdispersie (variantie groter dan het gemiddelde) toestaat.
- Onder de tabel met coëfficiënten vindt u een likelihood ratio test dat alpha gelijk is aan nul-de likelihood ratio test die dit model vergelijkt met een Poisson model. In dit voorbeeld is de bijbehorende chi-kwadraatwaarde 926,03 met één graad van vrijheid. Dit wijst er sterk op dat alpha niet nul is en dat het negatief binomiaal model geschikter is dan het Poisson model.
We kunnen de resultaten ook zien als incident rate ratios door de optie theirr te gebruiken.
Het resultaat hierboven geeft aan dat het incidentcijfer voor 2.prog 0,64 maal zo hoog is als het incidentcijfer voor de referentiegroep (1.prog). Evenzo is het incidentencijfer voor 3.prog 0,28 maal het incidentencijfer voor de referentiegroep, waarbij de andere variabelen constant worden gehouden. De procentuele verandering in het incidentiecijfer vandaysabs is een daling van 1% voor elke eenheid toename in wiskunde.
De vorm van de modelvergelijking voor negatieve binomiale regressie is dezelfde als die voor Poisson regressie. De log van de uitkomst wordt voorspeld met een lineaire combinatie van de voorspellers:
log(daysabs) = Intercept + b1(prog=2) + b2(prog=3) + b3math.
Dit impliceert:
daysabs = exp(Intercept + b1(prog=2) + b2(prog=3)+ b3math) = exp(Intercept) * exp(b1(prog=2)) * exp(b2(prog=3)) * exp(b3math)
De coëfficiënten hebben een additief effect in de log(y)-schaal en het IRR heeft een multiplicatief effect in de y-schaal. De dispersieparameter alpha in negatieve binomiale regressie heeft geen effect op de verwachte tellingen, maar wel op de geschatte variantie van de verwachte tellingen. Meer details zijn te vinden in de Stata documentatie.
Voor aanvullende informatie over de verschillende metrieken waarin de resultaten kunnen worden gepresenteerd, en de interpretatie daarvan, verwijzen we naar Regression Models for Categorical Dependent Variables Using Stata, Second Edition van J. Scott Long en Jeremy Freese (2006).
Om het model beter te begrijpen, kunnen we het margins commando gebruiken. Hieronder gebruiken we het commando marges om de voorspelde tellingen op elk niveau van prog te berekenen, waarbij alle andere variabelen (in dit voorbeeld wiskunde) in het model op hun gemiddelde worden gehouden.
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------------------------------------------------------------------------------
In de bovenstaande uitvoer zien we dat het voorspelde aantal voorvallen voor niveau 1 van prog ongeveer 10,24 is, waarbij wiskunde op zijn gemiddelde wordt gehouden. Het voorspelde aantal gebeurtenissen voor niveau 2 van prog is lager met 6.59, en het voorspelde aantal gebeurtenissen voor niveau 3 van prog is ongeveer 2.85. Merk op dat de voorspelde telling van niveau 2 van prog (6,587927/10,2369) = 0,64 maal de voorspelde telling voor niveau 1 van prog is. Dit komt overeen met wat we zagen in de IRR-uitvoer tabel.
Hieronder zullen we het voorspelde aantal gebeurtenissen verkrijgen voor waarden van wiskunde die variëren van 0 tot 100 in stappen van 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------------------------------------------------------------------------------
Uit bovenstaande tabel blijkt dat met prog op de waargenomen waarden en wiskunde op 0 gehouden voor alle waarnemingen, het gemiddelde voorspelde aantal (of gemiddeld aantal afwezige dagen) ongeveer 7,72 is; wanneer wiskunde = 100, is het gemiddelde voorspelde aantal ongeveer 4,24. Als we de voorspelde tellingen vergelijken op twee niveaus van wiskunde, zoals wiskunde = 20 en wiskunde = 40, zien we dat de verhouding (6,072587/6,845863) = 0,887 is. Dit komt overeen met de IRR van 0,994 voor een verandering van 20 eenheden: 0.994^20 = 0.887.
Het door de gebruiker geschreven commando fitstat (evenals de estat commando’s van Stata) kan worden gebruikt om aanvullende informatie over de model fit te verkrijgen die nuttig kan zijn als u modellen wilt vergelijken. U kunt search fitstat typen om dit programma te downloaden (zie Hoe kan ik het search-commando gebruiken om naar programma’s te zoeken en extra hulp te krijgen? voor meer informatie over het gebruik van 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
U kunt een grafiek maken van het voorspelde aantal gebeurtenissen met de onderstaande opdrachten. De grafiek geeft aan dat de meeste afwezigheidsdagen worden voorspeld voor studenten in het academische programma 1, vooral als de student een lage wiskunde-score heeft. Het laagste aantal voorspelde dagen afwezig is voor de studenten in 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)
Dingen om te overwegen
- Het is niet aan te raden negatieve binomiale modellen toe te passen op kleine steekproeven.
- Een veel voorkomende oorzaak van over-dispersie is een teveel aan nullen door een extra proces van gegevensgeneratie. In deze situatie moet een nulgetrunceerd model worden overwogen.
- Als het gegevensgenereringsproces geen nullen toestaat (zoals het aantal dagen dat in het ziekenhuis is doorgebracht), kan een nulgetrunceerd model geschikter zijn.
- Tellinggegevens hebben vaak een blootstellingsvariabele, die het aantal keren aangeeft dat de gebeurtenis had kunnen plaatsvinden. Deze variabele moet in uw negatieve binomiale regressiemodel worden opgenomen met behulp van de exp()-optie.
- De uitkomstvariabele in een negatieve binomiale regressie kan geen negatieve getallen bevatten, en de blootstelling kan geen 0’s bevatten.
- U kunt ook een negatief binomiaal model uitvoeren met het glm-commando met de log-koppeling en de binomiale familie.
- U zult het glm-commando moeten gebruiken om de residuen te verkrijgen om andere aannames van het negatieve binomiale model te controleren (zie Cameron en Trivedi (1998) en Dupont (2002) voor meer informatie).
- Pseudo-R-kwadraat: Er bestaan veel verschillende maatstaven voor pseudo-R-kwadraat. Zij proberen allemaal informatie te verschaffen die vergelijkbaar is met die welke door R-kwadraat in OLS-regressie wordt verschaft; geen van hen kan echter precies zo worden geïnterpreteerd als R-kwadraat in OLS-regressie wordt geïnterpreteerd. Voor een bespreking van de verschillende pseudo-R-kwadraten, zie Long en Freese (2006) of onze FAQ-paginaWat zijn pseudo-R-kwadraten?
Zie ook
- Geannoteerde uitvoer voor het nbreg commando
- Stata online handleiding
- nbreg
- Gerelateerde Stata commando’s
- poisson – poisson regressie
- Stata FAQs
- Mijn ruwe gegevens bevatten aanwijzingen van zowel overdispersie als overtollige nullen . Is een nul-geïnflateerd negatief binomiaal model het enige teldatamodel dat zowel de overdispersie als de overmaat aan nullen kan verklaren?
- Hoe worden de standaardfouten en betrouwbaarheidsintervallen berekend voor incidentieverhoudingen (IRRs) door poisson en nbreg?
- Long, J. S. and Freese, J. (2006). Regressiemodellen voor categoriale afhankelijke variabelen met Stata, tweede editie. College Station, TX: Stata Press.
- Cameron, A. C. and Trivedi, P. K. (2009). Microeconometrie met behulp van Stata. College Station, TX: Stata Press.
- Cameron, A. C. and Trivedi, P. K. (1998). Regressieanalyse van telgegevens. 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). Statistische Modellering voor Biomedische Onderzoekers: A Simple Introduction to the Analysis of Complex Data. New York: Cambridge Press.
- Long, J. S. (1997). Regression Models for Categorical and Limited Dependent Variables.Thousand Oaks, CA: Sage Publications.