Betrachten Sie ein Hürdenmodell, das die Zähldaten y
von einem normalen Prädiktor vorhersagt x
:
set.seed(1839)
# simulate poisson with many zeros
x <- rnorm(100)
e <- rnorm(100)
y <- rpois(100, exp(-1.5 + x + e))
# how many zeroes?
table(y == 0)
FALSE TRUE
31 69
In diesem Fall habe ich Zähldaten mit 69 Nullen und 31 positiven Zählwerten. Denken Sie im Moment nicht daran, dass dies per Definition des Datenerzeugungsverfahrens ein Poisson-Prozess ist, da es sich bei meiner Frage um Hürdenmodelle handelt.
Nehmen wir an, ich möchte diese überschüssigen Nullen mit einem Hürdenmodell behandeln. Aus meiner Lektüre über sie ging hervor, dass Hürdenmodelle an sich keine tatsächlichen Modelle sind - sie führen nur zwei verschiedene Analysen nacheinander durch. Erstens eine logistische Regression, die vorhersagt, ob der Wert positiv gegenüber Null ist oder nicht. Zweitens eine nullverengte Poisson-Regression, bei der nur die Nicht-Null-Fälle berücksichtigt werden. Dieser zweite Schritt fühlte sich für mich falsch an, weil er (a) vollkommen gute Daten wegwirft, was (b) zu Stromproblemen führen kann, da viele der Daten Nullen sind, und (c) im Grunde genommen kein "Modell" an und für sich ist , aber nur nacheinander laufen zwei verschiedene Modelle.
Also habe ich ein "Hürdenmodell" ausprobiert, anstatt nur die logistische und die nullverengte Poisson-Regression getrennt auszuführen. Sie gaben mir identische Antworten (ich kürze die Ausgabe der Kürze halber ab):
> # hurdle output
> summary(pscl::hurdle(y ~ x))
Count model coefficients (truncated poisson with log link):
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.5182 0.3597 -1.441 0.1497
x 0.7180 0.2834 2.533 0.0113 *
Zero hurdle model coefficients (binomial with logit link):
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.7772 0.2400 -3.238 0.001204 **
x 1.1173 0.2945 3.794 0.000148 ***
> # separate models output
> summary(VGAM::vglm(y[y > 0] ~ x[y > 0], family = pospoisson()))
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.5182 0.3597 -1.441 0.1497
x[y > 0] 0.7180 0.2834 2.533 0.0113 *
> summary(glm(I(y == 0) ~ x, family = binomial))
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.7772 0.2400 3.238 0.001204 **
x -1.1173 0.2945 -3.794 0.000148 ***
---
Dies scheint mir unverständlich zu sein, da viele verschiedene mathematische Darstellungen des Modells die Wahrscheinlichkeit beinhalten, dass eine Beobachtung bei der Schätzung von positiven Zählfällen ungleich Null ist, aber die Modelle, die ich oben ausgeführt habe, ignorieren sich vollständig. Dies ist zum Beispiel aus Kapitel 5, Seite 128 von Smithson & Merkles verallgemeinerten linearen Modellen für kategoriale und stetig begrenzte abhängige Variablen :
... Zweitens muss die Wahrscheinlichkeit, dass irgendeinen Wert annimmt (null und die positiven ganzen Zahlen), gleich eins sein. Dies ist in Gleichung (5.33) nicht garantiert. Um dieses Problem zu lösen, multiplizieren wir die Poisson-Wahrscheinlichkeit mit der Bernoulli-Erfolgswahrscheinlichkeit . Diese Probleme erfordern, dass wir das obige Hürdenmodell als ausdrücken wobei , ,P ( Y = y | x , z , β , γ ) = { 1 - π für y = 0 π ×
sind die Kovariaten für das Poisson-Modell, sind die Kovariaten für das logistische Regressionsmodell, und und sind die jeweiligen Regressionskoeffizienten ... .
Indem ich die beiden Modelle vollständig voneinander trenne - was Hürdenmodelle zu sein scheinen -, sehe ich nicht, wie in die Vorhersage von Fällen mit positiver Zählung einbezogen wird. Aufgrund der Tatsache, dass ich die Funktion nur mit zwei verschiedenen Modellen replizieren konnte , kann ich nicht erkennen, wie eine Rolle im verkürzten Poisson spielt Regression überhaupt.hurdle
Verstehe ich Hürdenmodelle richtig? Es scheint, als würden zwei nur zwei aufeinanderfolgende Modelle ausführen: Erstens eine Logistik; Zweitens ein Poisson, bei dem Fälle mit völlig ignoriert werden . Ich würde mich freuen, wenn jemand meine Verwechslung mit dem .
Wenn ich richtig liege, was sind das für Hürdenmodelle, was ist die Definition eines "Hürdenmodells" im Allgemeinen? Stellen Sie sich zwei verschiedene Szenarien vor:
Stellen Sie sich vor, Sie modellieren die Wettbewerbsfähigkeit von Wahlkämpfen anhand der Wettbewerbsfähigkeitswerte (1 - (Stimmenanteil der Gewinner - Stimmenanteil der Zweitplatzierten)). Dies ist [0, 1), weil es keine Bindungen gibt (zB 1). Ein Hürdenmodell ist hier sinnvoll, weil es einen Prozess gibt (a) War die Wahl unbestritten? und (b) wenn nicht, welche vorausgesagte Wettbewerbsfähigkeit? Also führen wir zuerst eine logistische Regression durch, um 0 vs. (0, 1) zu analysieren. Dann führen wir eine Beta-Regression durch, um die (0, 1) -Fälle zu analysieren.
Stellen Sie sich eine typische psychologische Studie vor. Die Antworten lauten [1, 7] wie bei einer herkömmlichen Likert-Skala mit einem riesigen Deckeneffekt von 7. Man könnte ein Hürdenmodell erstellen, das eine logistische Regression von [1, 7) gegenüber 7 und dann eine Tobit-Regression für alle Fälle, in denen beobachtete Antworten sind <7.
Wäre es sicher, beide Situationen als "Hürden" -Modelle zu bezeichnen , selbst wenn ich sie mit zwei sequentiellen Modellen einschätze (logistisch und dann Beta im ersten Fall, logistisch und dann Tobit im zweiten)?
pscl::hurdle
sie implementiert ist , aber hier in Gleichung 5 gleich aussieht: cran.r-project.org/web/packages/pscl/vignettes/countreg.pdf Oder vielleicht ich Fehlt noch etwas Grundlegendes, das es für mich zum Klicken bringt?
hurdle()
. In unserer Paar- / Vignette versuchen wir jedoch, die allgemeineren Bausteine hervorzuheben.