model { Tau.noninformative <- 1.0E-3 Hyper.gamma <- 1.0E-2 tau.err[1] ~ dgamma(0.5, 0.5) tau.err[2] ~ dgamma(1, 1) tau.err[3] ~ dgamma(1, 1) # observation for (i in 1:N.sample) { log(wr[i]) <- log.wr[i] log(ws[i]) <- log.ws[i] log(wl[i]) <- log.wl[i] Wr[i] ~ dnorm(wr[i], tau.err[1]) Ws[i] ~ dnorm(ws[i], tau.err[1]) Wl[i] ~ dnorm(wl[i], tau.err[1]) log(hs[i]) <- log.hs[i] log(cw1[i]) <- log.cw1[i] log(cw2[i]) <- log.cw2[i] Hs[i] ~ dnorm(hs[i], tau.err[2]) Cw1[i] ~ dnorm(cw1[i], tau.err[2]) Cw2[i] ~ dnorm(cw2[i], tau.err[2]) log(hr[i]) <- log.hr[i] log(rw1[i]) <- log.rw1[i] log(rw2[i]) <- log.rw2[i] Hr[i] ~ dnorm(hr[i], tau.err[2]) Rw1[i] ~ dnorm(rw1[i], tau.err[2]) Rw2[i] ~ dnorm(rw2[i], tau.err[2]) } # mean values for (i in 1:N.sample) { # 1: weight allocation root vs shoot log.w[i] ~ dnorm(0.0, Tau.noninformative) mean.logit.p[i] <- ( bb[1] + bs[1, Sp[i]] + bc[1, 1] * (log.w[i] - Mean.log.w) + bc[1, 2] * Log.seedwt[Sp[i]] + bc[1, 3] * Yakushima[Sp[i]] + bc[1, 4] * tolTOEF[Sp[i]] + bc[1, 5] * tolYAKU[Sp[i]] ) logit.p[i] ~ dnorm(mean.logit.p[i], tau[1]) logit(p[i]) <- logit.p[i] log.wsl[i] <- log(p[i]) + log.w[i] # shoot (stem + leaves) log.wr[i] <- log(1.0 - p[i]) + log.w[i] # root # 2: weight allocation stem vs foliage mean.logit.q[i] <- ( bb[2] + bs[2, Sp[i]] + bc[2, 1] * (log.wsl[i] - Mean.log.wsl) + bc[2, 2] * Log.seedwt[Sp[i]] + bc[2, 3] * Yakushima[Sp[i]] + bc[2, 4] * tolTOEF[Sp[i]] + bc[2, 5] * tolYAKU[Sp[i]] ) logit.q[i] ~ dnorm(mean.logit.q[i], tau[2]) logit(q[i]) <- logit.q[i] log.wl[i] <- log(q[i]) + log.wsl[i] # leaves log.ws[i] <- log(1.0 - q[i]) + log.wsl[i] # stem # 3: log.Ws -> log.Hs mean.log.hs[i] <- ( bb[3] + bs[3, Sp[i]] + bc[3, 1] * (log.wsl[i] - Mean.log.wsl) + bc[3, 2] * Log.seedwt[Sp[i]] + bc[3, 3] * Yakushima[Sp[i]] + bc[3, 4] * tolTOEF[Sp[i]] + bc[3, 5] * tolYAKU[Sp[i]] ) log.hs[i] ~ dnorm(mean.log.hs[i], tau[3]) # 4: log.Ws -> log.Cw mean.log.cw1[i] <- ( bb[4] + bs[4, Sp[i]] + bc[4, 1] * (log.wsl[i] - Mean.log.wsl) + bc[4, 2] * Log.seedwt[Sp[i]] + bc[4, 3] * Yakushima[Sp[i]] + bc[4, 4] * tolTOEF[Sp[i]] + bc[4, 5] * tolYAKU[Sp[i]] ) mean.log.cw2[i] <- mean.log.cw1[i] + log.conv12[1] log.cw1[i] ~ dnorm(mean.log.cw1[i], tau[4]) log.cw2[i] ~ dnorm(mean.log.cw2[i], tau[4]) # 5: log.Wr -> log.Hr mean.log.hr[i] <- ( bb[5] + bs[5, Sp[i]] + bc[5, 1] * (log.wr[i] - Mean.log.wr) + bc[5, 2] * Log.seedwt[Sp[i]] + bc[5, 3] * Yakushima[Sp[i]] + bc[5, 4] * tolTOEF[Sp[i]] + bc[5, 5] * tolYAKU[Sp[i]] ) log.hr[i] ~ dnorm(mean.log.hr[i], tau[5]) # 6: log.Wr -> log.Rw mean.log.rw1[i] <- ( bb[6] + bs[6, Sp[i]] + bc[6, 1] * (log.wr[i] - Mean.log.wr) + bc[6, 2] * Log.seedwt[Sp[i]] + bc[6, 3] * Yakushima[Sp[i]] + bc[6, 4] * tolTOEF[Sp[i]] + bc[6, 5] * tolYAKU[Sp[i]] ) mean.log.rw2[i] <- mean.log.rw1[i] + log.conv12[2] log.rw1[i] ~ dnorm(mean.log.rw1[i], tau[6]) log.rw2[i] ~ dnorm(mean.log.rw2[i], tau[6]) } # tolerancy for (s in 1:N.sp) { #tolerancy[s] ~ dbern(Prob.tol[Tolerancy[s]]) mt[s] <- Tolerancy[s] - 2 # c(-1, 0, 1) tolerancy[s] ~ dnorm(mt[s], tau.tol) tolTOEF[s] <- tolerancy[s] * (1 - Yakushima[s]) tolYAKU[s] <- tolerancy[s] * Yakushima[s] } tau.tol ~ dgamma(Hyper.gamma, Hyper.gamma) # priors and hyper-priors for (k in 1:N.b) { tau[k] ~ dgamma(Hyper.gamma, Hyper.gamma) # non-informative bb[k] ~ dnorm(0.0, Tau.noninformative) # common part tau.bs[k] ~ dgamma(Hyper.gamma, Hyper.gamma) # non-informative for (s in 1:N.sp) { # differences among species bs[k, s] ~ dnorm(0.0, tau.bs[k]) } for (kk in 1:N.bc) { bc[k, kk] ~ dnorm(0.0, Tau.noninformative) # common part } } for (k in 1:N.conv12) { log.conv12[k] ~ dnorm(0.0, Tau.noninformative) } }