Considere un modelo de obstáculo que predice datos de conteo y
de un predictor normal 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
En este caso, tengo datos de recuento con 69 ceros y 31 recuentos positivos. No importa por el momento que este es, por definición del procedimiento de generación de datos, un proceso de Poisson, porque mi pregunta es sobre los modelos de obstáculo.
Digamos que quiero manejar estos ceros en exceso por un modelo de obstáculo. De mi lectura sobre ellos, parecía que los modelos de obstáculo no son modelos reales per se, solo están haciendo dos análisis diferentes secuencialmente. Primero, una regresión logística que predice si el valor es positivo o no versus cero. En segundo lugar, una regresión de Poisson truncada a cero con solo incluir los casos distintos de cero. Este segundo paso me pareció incorrecto porque es (a) tirar datos perfectamente buenos, lo que (b) podría conducir a problemas de potencia ya que gran parte de los datos son ceros, y (c) básicamente no es un "modelo" en sí mismo , pero solo ejecuta secuencialmente dos modelos diferentes.
Así que probé un "modelo de obstáculo" en lugar de simplemente ejecutar la regresión de Poisson logística y truncada por separado. Me dieron respuestas idénticas (estoy abreviando la salida, por brevedad):
> # 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 ***
---
Esto me parece desagradable ya que muchas representaciones matemáticas diferentes del modelo incluyen la probabilidad de que una observación no sea cero en la estimación de casos de conteo positivo, pero los modelos que ejecuté anteriormente se ignoran por completo. Por ejemplo, esto es del Capítulo 5, página 128 de los Modelos lineales generalizados de Smithson & Merkle para variables dependientes limitadas categóricas y continuas :
... Segundo, la probabilidad de que asuma cualquier valor (cero y los enteros positivos) debe ser igual a uno. Esto no está garantizado en la ecuación (5.33). Para tratar este problema, multiplicamos la probabilidad de Poisson por la probabilidad de éxito de Bernoulli . Estos problemas requieren que expresemos el modelo de obstáculo anterior como donde , ,π
...λ=exp(xβ)π=logit-1(zγ)xzβγson las covariables para el modelo de Poisson, son las covariables para el modelo de regresión logística, y y son los respectivos coeficientes de regresión ... .
Al hacer que los dos modelos estén completamente separados el uno del otro, que parece ser lo que hacen los modelos de obstáculo, no veo cómo se incorpora en la predicción de casos de conteo positivo. Pero según cómo pude replicar la función simplemente ejecutando dos modelos diferentes, no veo cómo juega un papel en el Poisson truncado regresión en absoluto. logit-1(z γ )hurdle
¿Estoy entendiendo correctamente los modelos de obstáculo? Parece que dos solo ejecutan dos modelos secuenciales: Primero, una logística; Segundo, un Poisson, ignorando completamente los casos en que . Agradecería si alguien pudiera aclarar mi confusión con el negocio .π
Si estoy en lo cierto, eso es lo que son los modelos de obstáculo, ¿cuál es la definición de un modelo de "obstáculo", en general? Imagine dos escenarios diferentes:
Imagine que modela la competitividad de las elecciones electorales observando los puntajes de competitividad (1 - (proporción de votos del ganador - proporción de votos del segundo lugar)). Esto es [0, 1), porque no hay vínculos (por ejemplo, 1). Un modelo de obstáculo tiene sentido aquí, porque hay un proceso (a) ¿fue la elección sin oposición? y (b) si no fuera así, ¿qué predijo la competitividad? Entonces, primero hacemos una regresión logística para analizar 0 vs. (0, 1). Luego hacemos una regresión beta para analizar los casos (0, 1).
Imagine un estudio psicológico típico. Las respuestas son [1, 7], como una escala Likert tradicional, con un enorme efecto de techo en 7. Se podría hacer un modelo de obstáculo que sea la regresión logística de [1, 7) frente a 7, y luego una regresión de Tobit para todos los casos donde las respuestas observadas son <7.
¿Sería seguro llamar a estas dos situaciones modelos de "obstáculo" , incluso si los calculo con dos modelos secuenciales (logístico y luego beta en el primer caso, logístico y luego Tobit en el segundo)?
pscl::hurdle
, pero se ve igual en la Ecuación 5 aquí: cran.r-project.org/web/packages/pscl/vignettes/countreg.pdf O tal vez yo ¿Todavía me falta algo básico que me haga clic?
hurdle()
. Sin embargo, en nuestro emparejado / viñeta, intentamos enfatizar los bloques de construcción más generales.