Zero-inflated Poisson Regression / Stata data Analysis Examples

Version info: Code voor deze pagina is getest in Stata 12.

Zero-inflated poisson regressie wordt gebruikt om telgegevens te modelleren die een overmaat van nultellingen hebben. Verder suggereert de theorie dat de overtollige nullen worden gegenereerd door een afzonderlijk proces van de telwaarden en dat de overtollige nullen onafhankelijk kunnen worden gemodelleerd. Het zip-model heeft dus twee delen, een Poisson count-model en het logit-model voor het voorspellen van overtollige nullen. Misschien wilt u deze Data-analyse voorbeeldpagina ‘ s, Poisson regressie enlogit regressie bekijken.

let op: het doel van deze pagina is om te laten zien hoe verschillende data analyse commando ‘ s te gebruiken. Het bestrijkt Niet alle aspecten van het onderzoeksproces die onderzoekers geacht worden te doen. Het heeft met name geen betrekking op het opschonen en verifiëren van gegevens, verificatie van aannames, modeldiagnostiek en mogelijke vervolganalyses.

voorbeelden van zero-inflated Poisson regressie

Voorbeeld 1.

schoolbestuurders bestuderen het bezoekgedrag van middelbare scholieren gedurende één semester op twee scholen. De aanwezigheid wordt gemeten aan de hand van het aantal dagen afwezig en wordt voorspeld aan de hand van het geslacht van de student en de standaardtestscores in wiskunde en taalkunsten. Veel studenten hebben geen afwezigheden tijdens het semester.

Voorbeeld 2.

de natuurbiologen van de staat willen modelleren hoeveel vis door vissers in een staatspark wordt gevangen. Bezoekers wordt gevraagd of ze al dan niet een camper hebben, hoe veel mensen in de groep zaten, waren er kinderen in de groep en hoeveel vis er gevangen werd.Sommige bezoekers vissen niet, maar er zijn geen gegevens over de vraag of een persoon heeft gevist of niet. Sommige visitors die wel vissen hebben geen vis gevangen, dus er zijn overtollige nullen in de gegevens vanwege de mensen die niet vissen.

beschrijving van de gegevens

laten we Voorbeeld 2 van boven volgen.

we hebben gegevens over 250 groepen die naar een park gingen. Elke groep werd ondervraagd over hoeveel vis ze gevangen hadden( telling), hoeveel kinderen er in de groep zaten (kind), hoeveel mensen er in de groep zaten (personen), en of ze al dan niet een camper naar het park brachten (camper).

naast het voorspellen van het aantal gevangen vis, is er ook interesse in het voorspellen van het bestaan van overtollige nullen, dat wil zeggen de nullen die niet alleen het gevolg waren van het ongeluk vissen. We gebruiken de variabelen kind, personen en camper in ons model. Laten we naar de gegevens kijken.

analysemethoden die u kunt overwegen

hieronder vindt u een lijst van enkele analysemethoden die u wellicht bent tegengekomen.Sommige van de genoemde methoden zijn redelijk, terwijl anderen uit de gunst zijn gevallen of beperkingen hebben.

  • Zero-inflated Poisson regressie – de focus van deze webpagina.
  • nul-opgeblazen negatieve binomiale regressie-negatieve binomiale regressie doet het beter zonder verspreide gegevens, d.w.z. variantie veel groter dan het gemiddelde.
  • gewone Telmodellen-Poisson-of negatieve binomiale modellen kunnen meer geschikt zijn als er geen overtollige nullen zijn.
  • OLS-regressie-u kunt proberen deze gegevens te analyseren met OLS-regressie. Countdata zijn echter zeer niet-normaal en worden niet goed geschat door OLS-regressie.

Zero-inflated Poisson regressie

we zullen het zip commando uitvoeren met child en camper als voorspellers van de tellingen,personen als de voorspeller van de overtollige nullen. We hebben de Vuong-optie opgenomen die een test van het zero-inflated model versus het standaard poisson-model biedt.

zip count child camper, inflate(persons) vuongFitting constant-only model:Iteration 0: log likelihood = -1347.807 Iteration 1: log likelihood = -1315.5343 Iteration 2: log likelihood = -1126.3689 Iteration 3: log likelihood = -1125.5358 Iteration 4: log likelihood = -1125.5357 Iteration 5: log likelihood = -1125.5357 Fitting full model:Iteration 0: log likelihood = -1125.5357 Iteration 1: log likelihood = -1044.8553 Iteration 2: log likelihood = -1031.8733 Iteration 3: log likelihood = -1031.6089 Iteration 4: log likelihood = -1031.6084 Iteration 5: log likelihood = -1031.6084 Zero-inflated Poisson regression Number of obs = 250 Nonzero obs = 108 Zero obs = 142Inflation model = logit LR chi2(2) = 187.85Log likelihood = -1031.608 Prob > chi2 = 0.0000------------------------------------------------------------------------------ count | Coef. Std. Err. z P>|z| -------------+----------------------------------------------------------------count | child | -1.042838 .0999883 -10.43 0.000 -1.238812 -.846865 1.camper | .8340222 .0936268 8.91 0.000 .650517 1.017527 _cons | 1.597889 .0855382 18.68 0.000 1.430237 1.76554-------------+----------------------------------------------------------------inflate | persons | -.5643472 .1629638 -3.46 0.001 -.8837503 -.244944 _cons | 1.297439 .3738522 3.47 0.001 .5647022 2.030176------------------------------------------------------------------------------Vuong test of zip vs. standard Poisson: z = 3.57 Pr>z = 0.0002

de uitvoer lijkt sterk op de uitvoer van een OLS-regressie:

  • begint met de iteratie log die de waarden geeft van de log likelihoods die beginnen met een model dat geen voorspellers heeft. De laatste waarde in het log is de uiteindelijke waarde van de log waarschijnlijkheid voor het volledige model en wordt hieronder herhaald.
  • vervolgens komt de header-informatie. Aan de rechterkant wordt het aantal gebruikte waarnemingen (250), het aantal niet-nulwaarnemingen (108) gegeven, samen met de waarschijnlijkheidsverhouding chi-kwadraat. Dit vergelijkt het volledige model met een model zonder telvoorspellers, wat een verschil van twee vrijheidsgraden oplevert. Dit wordt gevolgd door de p-waarde voor het chi-kwadraat. Het model als geheel is statistisch significant.
  • onder de header vindt u de poisson-regressiecoëfficiënten voor elk van de tellingen die variabelenvoorspellenalong met standaardfouten, z-scores, p-waarden en 95% betrouwbaarheidsintervallen voor de efficiëntie.
  • hierna volgen logit-coëfficiënten voor de variabele die overtollige nullen voorspelt, samen met de standaardfouten, z-scores, p-waarden en betrouwbaarheidsintervallen.
  • onder de verschillende coëfficiënten vindt u de resultaten van De Vuong-test. De Vuong-test vergelijkt het nul-opgeblazen model met een gewoon Poisson-regressiemodel.Een significante z-test geeft aan dat het nul-opgeblazen model beter is.Cameron and Trivedi (2009) bevelen robuuste standaardfouten aan voor poisson-modellen.We zullen het model opnieuw uitvoeren met de VCE (robuust) optie. We hebben deze optie niet opgenomen in het eerste model omdat robuuste en vuong opties niet kunnen worden gebruikt in hetzelfde model.
zip count child i.camper, inflate(persons) vce(robust)Fitting constant-only model:Iteration 0: log pseudolikelihood = -1347.807 Iteration 1: log pseudolikelihood = -1315.5343 Iteration 2: log pseudolikelihood = -1126.3689 Iteration 3: log pseudolikelihood = -1125.5358 Iteration 4: log pseudolikelihood = -1125.5357 Iteration 5: log pseudolikelihood = -1125.5357 Fitting full model:Iteration 0: log pseudolikelihood = -1125.5357 Iteration 1: log pseudolikelihood = -1044.8553 Iteration 2: log pseudolikelihood = -1031.8733 Iteration 3: log pseudolikelihood = -1031.6089 Iteration 4: log pseudolikelihood = -1031.6084 Iteration 5: log pseudolikelihood = -1031.6084 Zero-inflated Poisson regression Number of obs = 250 Nonzero obs = 108 Zero obs = 142Inflation model = logit Wald chi2(2) = 7.25Log pseudolikelihood = -1031.608 Prob > chi2 = 0.0266------------------------------------------------------------------------------ | Robust count | Coef. Std. Err. z P>|z| -------------+----------------------------------------------------------------count | child | -1.042838 .3893772 -2.68 0.007 -1.806004 -.2796731 1.camper | .8340222 .4076029 2.05 0.041 .0351352 1.632909 _cons | 1.597889 .2934631 5.44 0.000 1.022711 2.173066-------------+----------------------------------------------------------------inflate | persons | -.5643472 .2888849 -1.95 0.051 -1.130551 .0018567 _cons | 1.297439 .493986 2.63 0.009 .3292445 2.265634------------------------------------------------------------------------------

nu kunnen we verder gaan met de details van de individuele resultaten.

  • het gebruik van de robuuste optie heeft geresulteerd in een vrij grote verandering in het model chi-kwadraat,dat nu een Wald chi-kwadraat is. Deze statistiek is gebaseerd op Log pseudo-likelihoods in plaats van log-likelihoods.
  • de coëfficiënten voor kind en camper kunnen als volgt worden geïnterpreteerd:
    • voor elke eenheid toename van kind neemt het verwachte aantal logboeken van de responsvariabele af met 1,043.
    • een camper zijn verhoogt het verwachte aantal logboeken met.834.
  • de opblaasingscoëfficiënt voor persoonssuggests dat voor elke eenheid verhoging in persoon de log odds van een opgeblazen nul daling door .564.

we kunnen de marges (geïntroduceerd in Stata 11) gebruiken om ons model te begrijpen. We zullen eerst de verwachte tellingen berekenen voor de categorische variabele camper terwijl we het continu variabele kind op zijn Gemiddelde waarde houden met de optie atmeans.

margins camper, atmeansAdjusted predictions Number of obs = 250Model VCE : RobustExpression : Predicted number of events, predict()at : child = .684 (mean) 0.camper = .412 (mean) 1.camper = .588 (mean) persons = 2.528 (mean)------------------------------------------------------------------------------ | Delta-method | Margin Std. Err. z P>|z| -------------+---------------------------------------------------------------- camper | 0 | 1.289132 .4393168 2.93 0.003 .4280866 2.150177 1 | 2.968305 .619339 4.79 0.000 1.754423 4.182187------------------------------------------------------------------------------

de verwachte telling voor het aantal vis gevangen door niet-kampeerders is 1.289, terwijl voor kampeerders is 2,968 op de middelen van kind en personen.

met behulp van de dydx-optie berekent u het verschil in verwachte tellingen tussen camper = 0 en camper = 1 terwijl u nog steeds kind houdt op het gemiddelde van .684 en personen op het gemiddelde van 2.528.

margins, dydx(camper) atmeansConditional marginal effects Number of obs = 250Model VCE : RobustExpression : Predicted number of events, predict()dy/dx w.r.t. : 1.camperat : child = .684 (mean) 0.camper = .412 (mean) 1.camper = .588 (mean) persons = 2.528 (mean)------------------------------------------------------------------------------ | Delta-method | dy/dx Std. Err. z P>|z| -------------+---------------------------------------------------------------- 1.camper | 1.679173 .7754611 2.17 0.030 .1592975 3.199049------------------------------------------------------------------------------Note: dy/dx for factor levels is the discrete change from the base level.

het verschil in het aantal gevangen vis door kampeerders en niet-kampeerders is 1,679, wat statistisch significant is.

een laatste marges commando geeft de verwachte tellingen voor waarden van kind van nul tot drie op beide niveaus van de camper.

het verwachte aantal gevangen vis daalt naarmate het aantal kinderen stijgt voor zowel mensen met als zonder kampeerders.

een aantal Model fit indicatoren zijn beschikbaar met behulp van het fitstat commando, dat deel uitmaakt van de spostado utilities van J. Scott Long en Jeremy Freese (search spostado).

fitstatMeasures of Fit for zip of countLog-Lik Intercept Only: -1127.023 Log-Lik Full Model: -1031.608D(244): 2063.217 LR(4): 190.829 Prob > LR: 0.000McFadden's R2: 0.085 McFadden's Adj R2: 0.079ML (Cox-Snell) R2: 0.534 Cragg-Uhler(Nagelkerke) R2: 0.534AIC: 8.301 AIC*n: 2075.217BIC: 715.980 BIC': -168.743BIC used by Stata: 2090.824 AIC used by Stata: 2073.217

dingen om rekening mee te houden

  • aangezien zip zowel een count model als een logit model heeft, moeten beide modellen goede voorspellers hebben. De twee modellen hoeven niet per se dezelfde voorspellers te gebruiken.
  • problemen in verband met perfecte voorspelling, scheiding of gedeeltelijke scheiding kunnen zich voordoen in het logistieke deel van het Zero-inflated model.
  • telgegevens gebruiken vaak blootstellingsvariabelen om het aantal keren aan te geven dat de gebeurtenis had kunnen plaatsvinden. U kunt belichting opnemen in uw model door de optie belichting() te gebruiken.
  • het wordt niet aanbevolen op kleine monsters poissonmodellen met nuldruk toe te passen. Wat een kleine steekproef is, lijkt in de literatuur niet duidelijk te worden gedefinieerd.
  • Pseudo-R-kwadraatwaarden verschillen van OLS R-squareds, zie FAQ: Wat zijn pseudo-R-squareds? voor een discussie over deze kwestie.

zie ook

  • Stata Online handleiding
    • zip
  • gerelateerde Stata-opdrachten
    • nbreg-nul-opgeblazen negatieve binomiale regressie.
  • Cameron, A. Colin en Trivedi, P. K. (2009) Micro-Econometrics using stata. College Station, TX: Stata Press.
  • Long, J. Scott, & Freese, Jeremy (2006). Regressiemodellen voor categorische afhankelijke variabelen met behulp van Stata (tweede editie). College Station, TX: Stata Press.
  • Long, J. Scott (1997). Regressiemodellen voor categorische en beperkte afhankelijke variabelen. Thousand Oaks, CA: Sage Publications.



+