summaryrefslogtreecommitdiff
path: root/tests/examplefiles/example.bug
blob: 9ccd531dd080b2e8f7bc97d7248826c17e0f7cd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Alligators: multinomial - logistic regression 
#  http://www.openbugs.info/Examples/Aligators.html
model {
   # PRIORS    
   alpha[1] <- 0; # zero contrast for baseline food
   for (k in 2 : K) { 
     alpha[k] ~ dnorm(0, 0.00001) # vague priors
   } 
   # Loop around lakes:
   for (k in 1 : K){ 
      beta[1, k] <- 0 
   } # corner-point contrast with first lake 
   for (i in 2 : I) { 
     beta[i, 1] <- 0 ; # zero contrast for baseline food
     for (k in 2 : K){ 
       beta[i, k] ~ dnorm(0, 0.00001) # vague priors
     } 
   }
   # Loop around sizes:
   for (k in 1 : K){ 
     gamma[1, k] <- 0 # corner-point contrast with first size 
   } 
   for (j in 2 : J) { 
     gamma[j, 1] <- 0 ; # zero contrast for baseline food
     for ( k in 2 : K){ 
       gamma[j, k] ~ dnorm(0, 0.00001) # vague priors
     } 
   }

   # LIKELIHOOD   
   for (i in 1 : I) { # loop around lakes
     for (j in 1 : J) { # loop around sizes

       # Fit standard Poisson regressions relative to baseline
       lambda[i, j] ~ dflat()   # vague priors 
       for (k in 1 : K) { # loop around foods
           X[i, j, k] ~ dpois(mu[i, j, k])
           log(mu[i, j, k]) <- lambda[i, j] + alpha[k] + beta[i, k] + gamma[j, k]
           culmative.X[i, j, k] <- culmative(X[i, j, k], X[i, j, k])
       }
     }
   }

   # TRANSFORM OUTPUT TO ENABLE COMPARISON 
   # WITH AGRESTI'S RESULTS
   for (k in 1 : K) { # loop around foods
       for (i in 1 : I) { # loop around lakes
         b[i, k] <- beta[i, k] - mean(beta[, k]); # sum to zero constraint
       }
       for (j in 1 : J) { # loop around sizes
         g[j, k] <- gamma[j, k] - mean(gamma[, k]); # sum to zero constraint
       }
   }
}