• File: leuk-poisson.bug
model {
   for(j in 1:T) {
 
      #   beta0[j] ~ dnorm(0,0.001); # include this when using Poisson trick

      for(i in 1:N) {
 
         dN[i,j]   ~ dpois(Idt[i,j]);              # Likelihood
         Idt[i,j] <- Y[i,j]*exp(beta*Z[i])*dL0[j]; # Intensity 
   
         /*                          
         Try Poisson trick - independent log-normal hazard increments
                           - enables dL0, c, r, mu to be dropped from model
         Idt[i,j] <- Y[i,j]*exp(beta0[j]+beta*Z[i]); # Intensity    
         */
      }     
                       
     dL0[j] ~ dgamma(mu[j], c);
     mu[j] <- dL0.star[j] * c;    # prior mean hazard

     # Survivor function = exp(-Integral{l0(u)du})^exp(beta*z)    
     S.treat[j] <- pow(exp(-sum(dL0[1:j])), exp(beta * -0.5));
     S.placebo[j] <- pow(exp(-sum(dL0[1:j])), exp(beta * 0.5));	
   } 
 
   c <- 0.001; r <- 0.1; 
   for (j in 1:T) {  
     dL0.star[j] <- r * (t[j+1]-t[j])  
   } 

   beta ~ dnorm(0.0,0.000001);                 
}