Null-aufgeblasene Poisson-Regression / Stata-Datenanalyse Beispiele

Versionsinfo: Der Code für diese Seite wurde in Stata 12 getestet.

Die Null-aufgeblasene Poisson-Regression wird verwendet, um Zähldaten zu modellieren, die einen Überschuss an Nullzählungen aufweisen. Ferner legt die Theorie nahe, dass die überschüssigen Nullen durch einen separaten Prozess von den Zählwerten erzeugt werden und dass die überschüssigen Nullen unabhängig modelliert werden können. Somit besteht das Zip-Modell aus zwei Teilen, einem Poisson-Zählmodell und dem Logit-Modell zur Vorhersage überschüssiger Nullen. Vielleicht möchten Sie diese Datenanalyse-Beispielseiten, Poisson-Regression und Regit-Regression überprüfen.

Bitte beachten Sie: Auf dieser Seite soll gezeigt werden, wie verschiedene Datenanalysebefehle verwendet werden. Es deckt nicht alle Aspekte des Forschungsprozesses ab, die von Forschern erwartet werden. Sie umfasst insbesondere nicht die Bereinigung und Verifizierung von Daten, die Verifizierung von Annahmen, die Modelldiagnostik und mögliche Folgeanalysen.

Beispiele für eine null-aufgeblasene Poisson-Regression

Beispiel 1.

Schulverwalter untersuchen das Anwesenheitsverhalten von Gymnasiasten über ein Semester an zwei Schulen. Die Anwesenheit wird anhand der Anzahl der Abwesenheitstage gemessen und nach Geschlecht des Schülers und standardisierten Testergebnissen in Mathematik und Sprachkunst vorhergesagt. Viele Studierende haben während des Semesters keine Abwesenheiten.

Beispiel 2.

Die staatlichen Wildbiologen wollen modellieren, wie viele Fische von Fischern in einem Nationalpark gefangen werden. Besucher werden gefragt, ob sie ein Wohnmobil haben oder nicht, wie vielleute waren in der Gruppe, waren Kinder in der Gruppe und wie viele Fische wurden gefangen.Einige Besucher fischen nicht, aber es gibt keine Daten darüber, ob eine Person gefischt hat oder nicht. Einige Besucher, die gefischt haben, haben keinen Fisch gefangen, so dass die Daten aufgrund der Personen, die nicht gefischt haben, überschüssige Nullen enthalten.

Beschreibung der Daten

Betrachten wir Beispiel 2 von oben.

Wir haben Daten zu 250 Gruppen, die in einen Park gegangen sind. Jede Gruppe wurde gefragt, wie viele Fische sie gefangen haben (Anzahl), wie viele Kinder in der Gruppe waren (Kind), wie viele Personen in der Gruppe waren (Personen) und ob sie ein Wohnmobil in den Park gebracht haben oder nicht (Wohnmobil).

Neben der Vorhersage der Anzahl der gefangenen Fische besteht ein Interesse daran, die Existenz von überschüssigen Nullen vorherzusagen, d. H. Die Nullen, die nicht einfach auf Pech beim Fischen zurückzuführen sind. Wir werden die Variablen child, persons und camper in unserem Modell verwenden. Schauen wir uns die Daten an.

Analysemethoden, die Sie in Betracht ziehen könnten

Nachfolgend finden Sie eine Liste einiger Analysemethoden, die Ihnen möglicherweise begegnet sind.Einige der aufgeführten Methoden sind durchaus sinnvoll, während andere entweder in Ungnade gefallen sind oder Einschränkungen aufweisen.

  • Null-aufgeblasene Poisson-Regression – Der Fokus dieser Webseite.
  • Null-aufgeblasene negative Binomialregression – Die negative Binomialregression funktioniert besser mit sehr verteilten Daten, dh die Varianz ist viel größer als der Mittelwert.
  • Gewöhnliche Zählmodelle – Poisson- oder negative Binomialmodelle sind möglicherweise geeigneter, wenn keine überschüssigen Nullen vorhanden sind.
  • OLS-Regression – Sie können versuchen, diese Daten mithilfe der OLS-Regression zu analysieren. Countdata sind jedoch sehr unnormal und werden durch OLS-Regression nicht gut geschätzt.

Null-aufgeblasene Poisson-Regression

Wir führen den Befehl zip mit child und child als Prädiktoren für die Zählungen und persons als Prädiktor für die überschüssigen Nullen aus. Wir haben die Vuong-Option aufgenommen, die einen Test des Null-aufgeblasenen Modells im Vergleich zum Standard-Poisson-Modell bietet.

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

Die Ausgabe sieht der Ausgabe einer OLS-Regression sehr ähnlich:

  • Beginnt mit dem Iterationsprotokoll, das die Werte der Protokollwahrscheinlichkeiten angibt, beginnend mit einem Modell ohne Prädiktoren. Der letzte Wert im Protokoll ist der endgültige Wert der Protokollwahrscheinlichkeit für das vollständige Modell und wird unten wiederholt.
  • Als nächstes kommen die Header-Informationen. Auf der rechten Seite sind die Anzahl der verwendeten Beobachtungen (250), die Anzahl der Beobachtungen ungleich Null (108) sowie das Wahrscheinlichkeitsverhältnis Chi-Quadrat angegeben. Dies vergleicht das vollständige Modell mit einem Modell ohne Zählprädiktoren, was eine Differenz von zwei Freiheitsgraden ergibt. Danach folgt der p-Wert für das Chi-Quadrat. Das Modell als Ganzes ist statistisch signifikant.
  • Unterhalb der Kopfzeile finden Sie die Poisson-Regressionskoeffizienten für jede der Variablen, die die Zählung vorhersagen, zusammen mit Standardfehlern, Z-Scores, p-Werten und 95% -Konfidenzintervallen für Diekoeffizienten.
  • Es folgen Logit-Koeffizienten für die Variable, die überschüssige Nullen zusammen mit ihren Standardfehlern, Z-Werten, p-Werten und Konfidenzintervallen vorhersagt.
  • Unter den verschiedenen Koeffizienten finden Sie die Ergebnisse des Vuong-Tests. TheVuong-Test vergleicht das Null-aufgeblasene Modell mit einem gewöhnlichen Poisson-Regressionsmodell.Ein signifikanter Z-Test zeigt an, dass das Null-aufgeblasene Modell besser ist.
  • Cameron und Trivedi (2009) empfehlen robuste Standardfehler für Poisson-Modelle.Wir werden das Modell mit der Option vce (robust) erneut ausführen. Wir haben diese Option nicht in das erste Modell aufgenommen, da Robust- und Vuong-Optionen nicht im selben Modell verwendet werden können.

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

Nun können wir zu den Besonderheiten der einzelnen Ergebnisse übergehen.

  • Die Verwendung der robusten Option hat zu einer ziemlich großen Änderung des Modell-Chi-Quadrats geführt, das jetzt ein Wald-Chi-Quadrat ist. Diese Statistik basiert auf Log-Pseudo-Wahrscheinlichkeiten anstelle von Log-Wahrscheinlichkeiten.
  • Die Koeffizienten für child und camper können wie folgt interpretiert werden:
    • Für jede Erhöhung der Einheit von child verringert sich die erwartete Protokollanzahl der Antwortvariablen um 1,043.
    • Als Camper erhöht sich die erwartete Protokollanzahl um .834.
  • Der Inflate-Koeffizient für Personenschlägt vor, dass für jede Einheit Erhöhung der Person die Log-Chancen einer aufgeblasenen Null Abnahme durch .564.

Wir können die in Stata 11 eingeführten Ränder verwenden, um unser Modell besser zu verstehen. Wir berechnen zuerst die erwarteten Zählungen für die kategoriale Variable, während wir das Kind der kontinuierlichen Variablen mit der Option atmeans auf seinem Mittelwert halten.

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

Die erwartete Anzahl der von Nichtcampern gefangenen Fische beträgt 1.289, während sie für Camper 2.968 auf Kosten von Kindern und Personen beträgt.

Mit der Option dydx wird die Differenz der erwarteten Zählungen zwischen camper = 0 und camper = 1 berechnet, während das Kind immer noch im Mittelwert von gehalten wird .684 und Personen bei seinem Mittelwert von 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.

Der Unterschied in der Anzahl der von Campern und Nichtcampern gefangenen Fische beträgt 1,679, was statistisch signifikant ist.

Ein letzter Befehl gibt die erwarteten Zählungen für Werte von child von null bis drei auf beiden Ebenen von child .

Die erwartete Anzahl der gefangenen Fische sinkt mit der Anzahl der Kinder, sowohl für Menschen mit als auch ohne Camper.

Eine Reihe von Modellanpassungsindikatoren sind mit dem Befehl fitstat verfügbar, der Teil der spostado-Dienstprogramme von J. Scott Long und Jeremy Freese (search spostado) ist.

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

Dinge zu beachten

  • Da zip sowohl ein Zählmodell als auch ein Logit-Modell hat, sollte jedes der beiden Modelle gute Prädiktoren haben. Die beiden Modelle müssen nicht unbedingt dieselben Prädiktoren verwenden.
  • Probleme der perfekten Vorhersage, Trennung oder teilweisen Trennung können im logistischen Teil des Null-aufgeblasenen Modells auftreten.
  • Zähldaten verwenden häufig Expositionsvariablen, um anzugeben, wie oft das Ereignis hätte eintreten können. Sie können die Belichtung mit der Option exposure() in Ihr Modell integrieren.
  • Es wird nicht empfohlen, Null-aufgeblasene Poisson-Modelle auf kleine Stichproben anzuwenden. Was eine kleine Stichprobe ausmacht, scheint in der Literatur nicht klar definiert zu sein.
  • Pseudo-R-Squared-Werte unterscheiden sich von OLS R-Squareds, siehe FAQ: Was sind Pseudo-R-Squareds? für eine Diskussion zu diesem Thema.

Siehe auch

  • Stata Online-Handbuch
    • zip
  • Verwandte Stata-Befehle
    • nbreg – Null-aufgeblasene negative Binomialregression.
  • Cameron, A. Colin und Trivedi, P.K. (2009) Mikroökonometrie mit stata. In: College Station, TX: Stata Press.
  • Lange, J. Scott, & Freese, Jeremy (2006). Regressionsmodelle für kategoriale abhängige Variablen mit Stata (zweite Ausgabe). In: College Station, TX: Stata Press.
  • Lange, J. Scott (1997). Regressionsmodelle für kategoriale und begrenzte abhängige Variablen. In: Thousand Oaks, CA: Sage Publications.



+