Considera un modello di ostacolo che prevede i dati di conteggio y
da un normale predittore 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 questo caso, ho i dati di conteggio con 69 zeri e 31 conteggi positivi. Non pensare per il momento che questo sia, per definizione della procedura di generazione dei dati, un processo di Poisson, perché la mia domanda riguarda i modelli di ostacolo.
Diciamo che voglio gestire questi zeri in eccesso con un modello di ostacolo. Dalla mia lettura su di loro, sembrava che i modelli di ostacolo non fossero veri e propri modelli di per sé - stanno solo facendo due diverse analisi in sequenza. Innanzitutto, una regressione logistica che prevede se il valore è positivo o zero. In secondo luogo, una regressione di Poisson troncata a zero con l' inclusione solo dei casi diversi da zero. Questo secondo passo mi è sembrato sbagliato perché (a) sta eliminando dati perfettamente buoni, il che (b) potrebbe portare a problemi di alimentazione poiché gran parte dei dati sono zeri e (c) praticamente non è un "modello" in sé e per sé , ma eseguendo solo in sequenza due modelli diversi.
Così ho provato un "modello di ostacolo" rispetto al solo fatto di eseguire separatamente la regressione logistica di Poisson troncata a zero. Mi hanno dato risposte identiche (sto abbreviando l'output, per brevità):
> # 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 ***
---
Questo mi sembra siccome molte diverse rappresentazioni matematiche del modello includono la probabilità che un'osservazione sia diversa da zero nella stima dei casi di conteggio positivo, ma i modelli che ho seguito sopra si ignorano completamente. Ad esempio, questo è tratto dal capitolo 5, pagina 128 dei modelli lineari generalizzati di Smithson & Merkle per variabili dipendenti limitate categoriche e continue :
... In secondo luogo, la probabilità che assuma qualsiasi valore (zero e numeri interi positivi) deve essere uguale a uno. Ciò non è garantito nell'equazione (5.33). Per risolvere questo problema, moltiplichiamo la probabilità di Poisson per la probabilità di successo di Bernoulli . Questi problemi ci richiedono di esprimere il modello di ostacolo sopra indicato come dove , ,π
sono le covariate per il modello di Poisson, sono le covariate per il modello di regressione logistica e e sono i rispettivi coefficienti di regressione ... .
Facendo i due modelli completamente separati l'uno dall'altro - che sembra essere quello che fanno i modelli di ostacolo - non vedo come sia incorporato nella previsione dei casi di conteggio positivo. Ma in base a come sono stato in grado di replicare la funzione semplicemente eseguendo due diversi modelli, non vedo come un ruolo nel Poisson troncato regressione a tutti.hurdle
Comprendo correttamente i modelli di ostacolo? Sembrano che due stiano semplicemente eseguendo due modelli sequenziali: primo, una logistica; In secondo luogo, un Poisson, ignorando completamente i casi in cui . Gradirei se qualcuno potesse chiarire la mia confusione con il business .
Se ho ragione, sono i modelli di ostacolo, qual è la definizione di modello di "ostacolo", più in generale? Immagina due diversi scenari:
Immagina di modellare la competitività delle gare elettorali osservando i punteggi di competitività (1 - (percentuale di voti del vincitore - percentuale di voti del secondo classificato)). Questo è [0, 1), perché non ci sono legami (ad es. 1). Un modello di ostacolo ha senso qui, perché esiste un processo (a) l'elezione è stata contestata? e (b) se non lo fosse, quale previsione di competitività? Quindi facciamo prima una regressione logistica per analizzare 0 vs. (0, 1). Quindi eseguiamo la regressione beta per analizzare i casi (0, 1).
Immagina un tipico studio psicologico. Le risposte sono [1, 7], come una scala Likert tradizionale, con un enorme effetto soffitto a 7. Si potrebbe fare un modello di ostacolo che è la regressione logistica di [1, 7) contro 7, e quindi una regressione Tobit per tutti i casi in cui le risposte osservate sono <7.
Sarebbe sicuro chiamare entrambe queste situazioni "ostacolo" modelli , anche se li stimassi con due modelli sequenziali (logistica e poi beta nel primo caso, logistica e poi Tobit nel secondo)?
pscl::hurdle
, ma sembra lo stesso nell'equazione 5 qui: cran.r-project.org/web/packages/pscl/vignettes/countreg.pdf O forse io mi manca ancora qualcosa di base che mi farebbe cliccare per me?
hurdle()
. Nella nostra coppia / vignetta, tuttavia, cerchiamo di enfatizzare gli elementi più generali.