Considere um modelo de obstáculos que prevê dados de contagem y
de um preditor 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
Nesse caso, tenho dados de contagem com 69 zeros e 31 contagens positivas. Não importa, por enquanto, que este é, por definição do procedimento de geração de dados, um processo de Poisson, porque minha pergunta é sobre modelos de obstáculos.
Digamos que eu queira lidar com esses zeros em excesso por um modelo de barreira. Pela minha leitura sobre eles, parecia que os modelos de obstáculos não são modelos reais em si - eles estão apenas fazendo duas análises diferentes sequencialmente. Primeiro, uma regressão logística prevendo se o valor é positivo versus zero. Segundo, uma regressão de Poisson truncada com zero, incluindo apenas os casos diferentes de zero. Este segundo passo me pareceu errado porque é (a) jogar fora dados perfeitamente bons, o que (b) pode levar a problemas de energia, uma vez que muitos dados são zeros e (c) basicamente não é um "modelo" por si só , mas apenas executando sequencialmente dois modelos diferentes.
Então, tentei um "modelo de barreira" em vez de apenas executar a regressão de Poisson logística e truncada a zero separadamente. Eles me deram respostas idênticas (estou abreviando a saída, por uma questão de brevidade):
> # 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 ***
---
Isso me parece uma vez que muitas representações matemáticas diferentes do modelo incluem a probabilidade de que uma observação seja diferente de zero na estimativa de casos de contagem positiva, mas os modelos que eu executei acima se ignoram completamente. Por exemplo, isso é do Capítulo 5, página 128 dos Modelos Lineares Generalizados da Smithson & Merkle para Variáveis Dependentes Limitadas Categóricas e Contínuas :
... Segundo, a probabilidade de assumir qualquer valor (zero e números inteiros positivos) deve ser igual a um. Isso não é garantido na Equação (5.33). Para lidar com esta questão, multiplicamos a probabilidade de Poisson pela probabilidade de sucesso de Bernoulli π . Esses problemas exigem que expressemos o modelo de barreira acima como que , ,
X=exp(xβ)π=lógit-1(zγ)xzβγsão as covariáveis do modelo de Poisson, são as covariáveis do modelo de regressão logística e e são os respectivos coeficientes de regressão ... .
Fazendo os dois modelos completamente separados um do outro - o que parece ser o que os modelos de obstáculos fazem - não vejo como é incorporado na previsão de casos de contagem positiva. Mas com base em como consegui replicar a função executando apenas dois modelos diferentes, não vejo como desempenha um papel no Poisson truncado regressão. logit-1(z γ )hurdle
Estou entendendo os modelos de obstáculos corretamente? Eles parecem estar apenas executando dois modelos seqüenciais: primeiro, uma logística; Segundo, um Poisson, ignorando completamente os casos em que . Eu apreciaria se alguém pudesse esclarecer minha confusão com o negócio .π
Se estou certo de que é isso que são os modelos de obstáculos, qual é a definição de um modelo de "obstáculos", de maneira mais geral? Imagine dois cenários diferentes:
Imagine modelar a competitividade das raças eleitorais observando as pontuações de competitividade (1 - (proporção de votos do vencedor - proporção de votos do segundo colocado)). Isso é [0, 1), porque não há laços (por exemplo, 1). Um modelo de obstáculos faz sentido aqui, porque há um processo (a) a eleição não foi contestada? e (b) se não fosse, o que previa competitividade? Então, primeiro fazemos uma regressão logística para analisar 0 vs. (0, 1). Em seguida, fazemos regressão beta para analisar os casos (0, 1).
Imagine um estudo psicológico típico. As respostas são [1, 7], como uma escala Likert tradicional, com um enorme efeito teto em 7. Pode-se fazer um modelo de barreira com regressão logística de [1, 7) vs. 7 e, em seguida, uma regressão Tobit para todos os casos em que as respostas observadas são <7.
Seria seguro chamar essas duas situações de modelos de "obstáculo" , mesmo se eu os estimar com dois modelos seqüenciais (logística e beta no primeiro caso, logística e Tobit no segundo)?
pscl::hurdle
, mas parece o mesmo na Equação 5 aqui: cran.r-project.org/web/packages/pscl/vignettes/countreg.pdf Ou talvez eu ainda falta algo básico que faça clique para mim?
hurdle()
. Em nossa pareada / vinheta, tentamos enfatizar os blocos de construção mais gerais.