मैं JAGS में शून्य-फुलाया गया पोइसन कैसे सेट कर सकता हूं?


12

मैं R और JAGS में शून्य-फुलाया हुआ पॉइसन मॉडल स्थापित करने का प्रयास कर रहा हूं। मैं JAGS में नया हूं और मुझे यह करने के लिए कुछ मार्गदर्शन की आवश्यकता है।

मैं निम्नलिखित के साथ कोशिश कर रहा हूं जहां y [i] मनाया चर है

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 + ....
}

}

हालाँकि यह काम नहीं करता है क्योंकि आप एक देखे गए चर पर <- का उपयोग नहीं कर सकते हैं।

किसी भी विचार को कैसे बदलना / ठीक करना है? क्या JAGS में शून्य-फुलाया गया पॉज़ोन मॉडल सेट करने का एक और तरीका है?


यह मददगार हो सकता है: पी।
कांग्डन

जवाबों:


3

यहां इस तथ्य का उपयोग करके एक सरल समाधान है कि लैम्बडा पैरामीटर शून्य होने पर पॉइज़न आपको शून्य देगा। ध्यान दें कि JAGS टूट जाता है अगर लैम्ब्डा बिल्कुल शून्य है, इस प्रकार "+ 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.