Comment puis-je configurer un poisson zéro gonflé dans JAGS?


12

J'essaie de mettre en place un modèle de poisson zéro gonflé dans R et JAGS. Je suis nouveau chez JAGS et j'ai besoin de conseils sur la façon de le faire.

J'ai essayé avec ce qui suit où y [i] est la variable observée

model {
for (i in 1:I) {

    y.null[i] <- 0
    y.pois[i] ~ dpois(mu[i])
    pro[i] <- ilogit(theta[i])
    x[i] ~ dbern(pro[i])

    y[i] <- step(2*x[i]-1)*y.pois[i] + (1-step(2*x[i]-1))*y.null[i]

    log(mu[i]) <- bla + bla +bla + ....
    theta[i] <- bla + bla + bla + ....
}

}

Cependant, cela ne fonctionne pas car vous ne pouvez pas utiliser <- sur une variable observée.

Avez-vous des idées pour changer / corriger cela? Existe-t-il une autre façon de configurer le modèle de poisson zéro gonflé dans JAGS?


Réponses:


3

Voici une solution simple utilisant le fait que le poisson vous donnera des zéros lorsque le paramètre lambda est nul. Notez cependant que JAGS a tendance à se casser si lambda est exactement nul, donc le "+ 0,00001".

model {
  for (i in 1:I) {

    y[i] ~ dpois(mu1[i])

    mu1[i] <- mu[i]*x[i] + 0.00001

    x[i] ~ dbern(pro[i])
    logit(pro[i]) <- theta[i]

    mu[i] <- bla + bla +bla + ....
    theta[i] <- bla + bla + bla + ....
  }

4
C <- 10000 #Constant 1/0 trick

# Likelihood:
for ( i in 1:ny ) {

#Likelihood of the count model component
LikCountModel[i] <- pow(mu[i],y[i])/y_fact[i]*exp(-mu[i])

#Count model component
eta[i] <- bet0 + inprod( beta[] , B[i,] )
mu[i] <- exp(eta[i])

#ZI Component
zeta[i] <- gamm0 + inprod( gamma[] , G[i,] )
w[i] <- exp(zeta[i])/(1+exp(zeta[i]))

#1/0 Tricks: ones is a column containing only ones, with the same size of y
  p[i] <- L[i] / C
  ones[i] ~ dbern(p[i])

#Full likelihood expression
L[i] <- LikCountModel[i] * (1-w[i]) + equals(y[i],0)*w[i]
}

#then set your priors for all beta and gamma
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.