model{ for( i in 1:ntree ) { #ntree = number of stems SURVIVE[i] ~ dbern(mu[i]) #random error mu[i] <- exp(z[i])/(1+exp(z[i])) z[i] <- beta.1[species[i]] #species specific intercept + beta.2[species[i]] * (nci[i]) #species specific response to NCI + beta.3[species[i]] * (ncis[i]) #species specific response to NCIS + beta.4[species[i]] * (log.dbh[i]) #species specific response to DBH + beta.5[species[i]] * nci[i] * log.dbh[i] #species specific response to DBH*NCI } for( j in 1:nspecies ) { #this loop gets species specific parameters for each species from hyperdistributions beta.1[j] ~ dnorm(mu.beta[1] + beta.t[1]*trait[j] , tau[1]) #2nd level regression relating trait to growth intercept beta.2[j] ~ dnorm(mu.beta[2] + beta.t[2]*trait[j] , tau[2]) #2nd level regression relating trait to NCI response beta.3[j] ~ dnorm(mu.beta[2], tau[3]) beta.4[j] ~ dnorm(mu.beta[4], tau[4]) beta.5[j] ~ dnorm(mu.beta[5], tau[5]) } #below are priors beta.t[1] ~ dnorm(0, 1E-4) beta.t[2] ~ dnorm(0, 1E-4) mu.beta[1] ~ dnorm(0, 1E-4) mu.beta[2] ~ dnorm(0, 1E-4) mu.beta[3] ~ dnorm(0, 1E-4) mu.beta[4] ~ dnorm(0, 1E-4) mu.beta[5] ~ dnorm(0, 1E-4) tau[1] ~ dgamma(1E-3, 1E-3) tau[2] ~ dgamma(1E-3, 1E-3) tau[3] ~ dgamma(1E-3, 1E-3) tau[4] ~ dgamma(1E-3, 1E-3) tau[5] ~ dgamma(1E-3, 1E-3) sigma <- 1 / sqrt(tau) #converts tau precision parameters to standard deviations for interpretability }