Rozważ model przeszkodowy przewidujący zliczanie danych y
z normalnego predyktora 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
W tym przypadku mam dane z 69 zerami i 31 dodatnimi. Nie ważne, że jest to z definicji procedura generowania danych proces Poissona, ponieważ moje pytanie dotyczy modeli przeszkód.
Powiedzmy, że chcę poradzić sobie z tymi zerami za pomocą modelu przeszkód. Z mojej lektury na ich temat wydawało się, że modele przeszkód same w sobie nie są rzeczywistymi modelami - po prostu wykonują dwie różne analizy sekwencyjnie. Po pierwsze, regresja logistyczna przewidująca, czy wartość jest dodatnia w stosunku do zera. Po drugie, zerowana regresja Poissona, obejmująca tylko przypadki niezerowe. Ten drugi krok wydawał mi się niewłaściwy, ponieważ (a) wyrzucamy idealnie dobre dane, co (b) może prowadzić do problemów z zasilaniem, ponieważ większość danych to zera, i (c) zasadniczo nie jest „modelem” samym w sobie , ale po prostu uruchamiają kolejno dwa różne modele.
Wypróbowałem więc „model przeszkody” zamiast po prostu osobno uruchomić logistyczną i zerowaną regresję Poissona. Dali mi identyczne odpowiedzi (skrótowo, dla uproszczenia):
> # 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 ***
---
Wydaje mi się to nie na miejscu, ponieważ wiele różnych matematycznych reprezentacji modelu obejmuje prawdopodobieństwo, że obserwacja jest różna od zera w szacowaniu przypadków zliczania dodatniego, ale modele, które przedstawiłem powyżej, całkowicie się ignorują. Na przykład pochodzi z Rozdziału 5, strona 128 Uogólnionych modeli liniowych Smithsona i Merkle'a dla zmiennych jakościowych i ciągłych ograniczonych zależnych :
... Po drugie, prawdopodobieństwo, że przyjmie dowolną wartość (zero i dodatnie liczby całkowite), musi wynosić jeden. Nie jest to zagwarantowane w równaniu (5.33). Aby poradzić sobie z tym problemem, mnożymy prawdopodobieństwo Poissona przez prawdopodobieństwo sukcesu Bernoulliego π . Te problemy wymagają od nas wyrażenia powyższego modelu przeszkód jako gdzie , ,
są zmiennymi towarzyszącymi modelu Poissona, są zmiennymi logistycznymi modelu regresji, a i są odpowiednimi współczynnikami regresji ... .
Wykonując dwa modele całkowicie od siebie oddzielone - co wydaje się być tym, co robią modele przeszkodowe - nie widzę, jak jest włączony do przewidywania przypadków zliczania dodatniego. Ale w oparciu o to, jak mogłem zreplikować funkcję, uruchamiając tylko dwa różne modele, nie widzę, jak odgrywa rolę w okrojonym Poissonie regresja w ogóle.hurdle
Czy rozumiem poprawnie modele przeszkód? Wydaje się, że dwa prowadzą tylko dwa modele sekwencyjne: Po pierwsze, logistyka; Po drugie, Poissona, całkowicie ignorując przypadki, w których . Byłbym wdzięczny, gdyby ktoś mógł wyjaśnić moje zamieszanie związane z biznesem .
Jeśli mam rację, że takie są modele przeszkód, to jaka jest definicja modelu „przeszkód”, bardziej ogólnie? Wyobraź sobie dwa różne scenariusze:
Wyobraź sobie modelowanie konkurencyjności ras wyborczych, patrząc na wyniki konkurencji (1 - (odsetek głosów zwycięzcy - odsetek głosów drugich). Jest to [0, 1), ponieważ nie ma żadnych powiązań (np. 1). Model przeszkód ma tutaj sens, ponieważ istnieje jeden proces (a) czy wybory były bezsporne? oraz (b) jeśli nie, co przewidywało konkurencyjność? Najpierw wykonujemy regresję logistyczną, aby przeanalizować 0 vs. (0, 1). Następnie wykonujemy regresję beta, aby przeanalizować przypadki (0, 1).
Wyobraź sobie typowe badanie psychologiczne. Odpowiedzi wynoszą [1, 7], podobnie jak tradycyjna skala Likerta, z ogromnym efektem pułapu na poziomie 7. Można zrobić model przeszkody, w którym regresja logistyczna wynosi [1, 7) vs. 7, a następnie regresja Tobit dla wszystkich przypadków, w których zaobserwowane odpowiedzi wynoszą <7.
Czy bezpiecznie byłoby nazwać obie te modele „przeszkodą” , nawet jeśli oszacuję je za pomocą dwóch modeli sekwencyjnych (w pierwszym przypadku logistyka, a następnie beta, w drugim logistyka, a potem Tobit)?
pscl::hurdle
, ale wygląda to tak samo w równaniu 5 tutaj: cran.r-project.org/web/packages/pscl/vignettes/countreg.pdf A może ja wciąż brakuje mi czegoś podstawowego, co sprawiłoby, że kliknęło by mnie?
hurdle()
. W naszej sparowanej / winiecie staramy się jednak podkreślić bardziej ogólne elementy składowe.