• File: cervix.bug
var
    x[N],      # `true' HSV status
   x1[N],      #  x[i] + 1
    d[N],      #  cancer status
   d1[N],      #  cancer status + 1
    p[N],      #  prob of case
    w[N],      #  approximate HSV status
  beta0C,      #  intercept
    beta,      #  log-odds ratio
       q,      #  incidence of HSV
phi[2,2],      #  rates for w being positive
  gamma1,      #  prob HSV positive given control
  gamma2;      #  prob HSV positive given case 
model {
   for (i in 1:N) {
      x[i]   ~ dbern(q);           # incidence of HSV
      logit(p[i]) <- beta0C + beta * x[i]; # logistic model
      d[i]  ~ dbern(p[i]);        # incidence of cancer
      x1[i] <- x[i]+1; 
      d1[i] <- d[i]+1;  
      w[i]  ~ dbern(phi[x1[i],d1[i]]); # incidence of w
    }                                       

    q      ~ dunif(0.0,1.0);           # prior distributions
    beta0C ~ dnorm(0.0,0.00001);
    beta   ~ dnorm(0.0,0.00001);
    for(j in 1:2) {
       for(k in 1:2){
          phi[j,k] ~ dunif(0.0,1.0);
       }
    }

# calculate gamma1 = P(x=1|d=0) and gamma2 = P(x=1|d=1) 
    
    gamma1 <- 1/(1 + (1+exp(beta0C+beta))/(1+exp(beta0C)) * (1-q)/q);
    gamma2 <- 1/(1 + (1+exp(-beta0C-beta))/(1+exp(-beta0C)) * (1-q)/q);
}