model { # 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 } # for each isotope and population, calculate the predicted mixtures for(iso in 1:num.iso) { mix.mu[iso] <- inprod(u[1:num.prey,iso],p[1:num.prey]); mix.var[iso] <- inprod(sigma2[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]); } } }