Considérons un modèle d'obstacles prédisant les données y
de comptage à partir d'un prédicteur 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
Dans ce cas, j'ai des données de comptage avec 69 zéros et 31 comptages positifs. Peu importe pour le moment qu'il s'agit, par définition de la procédure de génération de données, d'un processus de Poisson, car ma question concerne les modèles d'obstacles.
Disons que je veux gérer ces zéros en excès par un modèle d'obstacle. D'après mes lectures à leur sujet, il semblait que les modèles d'obstacles ne sont pas de véritables modèles en soi - ils ne font que deux analyses différentes séquentiellement. Premièrement, une régression logistique prédisant si la valeur est positive ou non par rapport à zéro. Deuxièmement, une régression de Poisson tronquée à zéro n'incluant que les cas non nuls. Cette deuxième étape me semblait mal parce qu'elle (a) jette des données parfaitement bonnes, ce qui (b) pourrait entraîner des problèmes d'alimentation car la plupart des données sont des zéros, et (c) fondamentalement pas un "modèle" en soi , mais exécutant simplement en séquence deux modèles différents.
J'ai donc essayé un «modèle d'obstacle» plutôt que d'exécuter séparément la régression de Poisson logistique et zéro tronquée. Ils m'ont donné des réponses identiques (j'abrège la sortie, par souci de concision):
> # 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 ***
---
Cela me semble faux car de nombreuses représentations mathématiques différentes du modèle incluent la probabilité qu'une observation soit non nulle dans l'estimation des cas de comptage positifs, mais les modèles que j'ai exécutés ci-dessus s'ignorent complètement. Par exemple, cela provient du chapitre 5, page 128 des modèles linéaires généralisés de Smithson & Merkle pour les variables dépendantes catégoriques et continues limitées :
... Deuxièmement, la probabilité que assume une valeur (zéro et les entiers positifs) doit être égale à un. Cela n'est pas garanti dans l'équation (5.33). Pour résoudre ce problème, nous multiplions la probabilité de Poisson par la probabilité de succès de Bernoulli . Ces problèmes nous obligent à exprimer le modèle d'obstacle ci-dessus comme où , ,π P ( Y = y | x , z , β , γ
...λ=exp(xπ = l o g i t - 1 ( z γ ) x z β γsont les covariables pour le modèle de Poisson, sont les covariables pour le modèle de régression logistique et et sont les coefficients de régression respectifs ... .
En faisant les deux modèles complètement séparés l'un de l'autre - ce qui semble être ce que font les modèles d'obstacles - je ne vois pas comment est incorporé dans la prédiction des cas de comptage positifs. Mais d'après la façon dont j'ai pu répliquer la fonction en exécutant simplement deux modèles différents, je ne vois pas comment joue un rôle dans le Poisson tronqué régression du tout. logit-1(z γ )hurdle
Suis-je en train de comprendre correctement les modèles d'obstacles? Ils semblent deux exécuter simplement deux modèles séquentiels: premièrement, une logistique; Deuxièmement, un Poisson, ignorant complètement les cas où . J'apprécierais si quelqu'un pouvait éclaircir ma confusion avec l'entreprise .π
Si j'ai raison de dire que c'est ce que sont les modèles d'obstacles, quelle est la définition d'un modèle «d'obstacles», plus généralement? Imaginez deux scénarios différents:
Imaginez modéliser la compétitivité des courses électorales en examinant les scores de compétitivité (1 - (proportion de votes des gagnants - proportion de votes des finalistes)). C'est [0, 1), car il n'y a pas de liens (par exemple, 1). Un modèle d'obstacle est logique ici, car il y a un processus (a) l'élection était-elle incontestée? et b) si ce n'était pas le cas, quelle était la compétitivité prévue? Nous faisons donc d'abord une régression logistique pour analyser 0 vs (0, 1). Ensuite, nous faisons une régression bêta pour analyser les (0, 1) cas.
Imaginez une étude psychologique typique. Les réponses sont [1, 7], comme une échelle de Likert traditionnelle, avec un énorme effet de plafond à 7. On pourrait faire un modèle d'obstacle qui est une régression logistique de [1, 7) vs 7, puis une régression Tobit pour tous les cas où les réponses observées sont <7.
Serait-il prudent d'appeler ces deux situations des modèles «d'obstacles» , même si je les estime avec deux modèles séquentiels (logistique puis bêta dans le premier cas, logistique puis Tobit dans le second)?
pscl::hurdle
, mais il a la même apparence dans l'équation 5 ici: cran.r-project.org/web/packages/pscl/vignettes/countreg.pdf Ou peut-être que je me manque encore quelque chose de basique qui le ferait cliquer pour moi?
hurdle()
. Dans notre paire / vignette, nous essayons de souligner les blocs de construction plus généraux.