bayes model.txt

Revision 1 - 10/23/09 at 2:18 pm by eric.ward

Next rev
Back to revision history for bayes model.txt
This file is part of the project Bayesian SI mixing models
model {

   # This section is the priors for the dirichlet...this is exactly the same as MixSIR
   # region-specific means
   p[1:num.prey] ~ ddirch(alpha[]);  
   for(i in 1:num.prey) {
      p2[i] <- p[i]*p[i]; # these are weights for variances
   }

   # v.n = v.0 + n, sig2|y ~ Inv-X2(v.n, s2)
   # to simulate, draw X from X2(v.n), theta=v.n*s2/X
   # the noninformative prior has v.0 = 0
   for(prey in 1:num.prey) {
   for(iso in 1:num.iso) {
      # this is the variance parameter
      # described Gelman p480 ("Inverse Chi-Square")
      temp.X[prey,iso] ~ dchisqr(sigma.v0.n[prey,iso]);
      bayes.sig2[prey,iso] <- sigma.v0.n[prey,iso]*sigma2.n[prey,iso]/temp.X[prey,iso];
      # calculate precision as reciprocal of variance
      bayes.iSig2[prey,iso] <- 1/bayes.sig2[prey,iso];
            
      # this is the scale parameter...below 3.7, Gelman p72
      k.n[prey,iso] <- u.scale[prey,iso] + samp.size[prey,iso];
      # this is just the equation for u.n, u below is the observed sample mean
      u.n[prey,iso] <- (u.scale[prey,iso]/k.n[prey,iso])*u.loc[prey,iso] + (samp.size[prey,iso]/k.n[prey,iso])*u[prey,iso];

      temp.isig2[prey,iso] <- k.n[prey,iso]/sigma2[prey,iso];
      # this is equation 3.8, Gelman p72
      bayes.mu[prey,iso] ~ dnorm(u.n[prey,iso], temp.isig2[prey,iso]);
   }
   }

   # include variation in the mean and variance
   for(iso in 1:num.iso) {
      mix.mu[iso] <- inprod(bayes.mu[1:num.prey,iso],p[1:num.prey]);
      mix.var[iso] <- inprod(bayes.iSig2[1:num.prey,iso],p2[1:num.prey]);
      mix.prcsn[iso] <- 1/(mix.var[iso]);
   }

   # This section does the likelihood / posterior, N data points
   for(i in 1:N) {
      for(iso in 1:num.iso) {
         X[i,iso] ~ dnorm(mix.mu[iso], mix.prcsn[iso]);
      }
   }

}
Sculpin 0.2 | xhtml | problems or comments? | report bugs