Xingli Giam - 2014-02-28

Dear all,

I am (relatively) new to Bayesian statistics and JAGS. Before I decided to post my question here, I have tried looking for solutions in Martyn's JAGS help document, various websites, as well as this discussion forum but I was still unsure if I have the solution to my problem. Sincere apologies if I have overlooked previous relevant discussions or if my question has been addressed.

I am fitting a hierarchical nonlinear Gompertz model to model the accumulation of a quantity (y) with increasing x, with an asymptote at y=1. The model therefore simplifies to a 2 parameter model:

y = exp(-exp(b2 - b3*x)), where b2 = [-inf,inf] and b3 is bounded within 0 and 1.

My question is: to estimate b3, would it be appropriate/acceptable to specify that it comes from a truncated normal distribution?

My complete model is as follows:


level 1 model ## gompertz

for (i in 1:n) {
y[i]~dnorm(y.hat[i], tau.y)
y.hat[i] <- exp(-exp(b2[ID[i]]-b3[ID[i]]*x[i]))

priors for level-1 parameters

tau.y <- pow(sigma.y,-2)
sigma.y ~ dunif(0,1)

level 2 model

for (j in 1:L){
b2[j] ~ dnorm(mu.b2, tau.b2)
b3[j] ~ dnorm(mu.b3, tau.b3)T(0,1)


priors for level-2 parameters

mu.b2 ~ dnorm(0,0.001)
tau.b2 <- pow(sigma.b2,-2)
sigma.b2 ~ dunif(0,10)

mu.b3 ~ dunif(0,1)
tau.b3 <- pow(sigma.b3,-2)
sigma.b3 ~ dunif(0,2)

extra derived quantities (predictions)

b2.pred ~ dnorm(mu.b2, tau.b2)
b3.pred ~ dnorm(mu.b3, tau.b3)T(0,1)

for (k in 1:K){
y.hat.pred[k] <- exp(-exp(b2.pred-b3.pred*x.pred[k]))
y.pred[k] ~ dnorm(y.hat.pred[k], tau.y)


Thank you for your help! I will be grateful for any tips/hints!

  • Xingli