model { Tau.noninformative <- 1.0E-3 Hyper.gamma <- 1.0E-2 Err.gamma <- 1.0E-0 # 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[i] + bc[1, 4] * tolerancy[Sp[i]] + bc[1, 5] * tolerancy[Sp[i]] * Yakushima[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[i] + bc[2, 4] * tolerancy[Sp[i]] + bc[2, 5] * tolerancy[Sp[i]] * Yakushima[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[i] + bc[3, 4] * tolerancy[Sp[i]] + bc[3, 5] * tolerancy[Sp[i]] * Yakushima[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[i] + bc[4, 4] * tolerancy[Sp[i]] + bc[4, 5] * tolerancy[Sp[i]] * Yakushima[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[i] + bc[5, 4] * tolerancy[Sp[i]] + bc[5, 5] * tolerancy[Sp[i]] * Yakushima[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[i] + bc[6, 4] * tolerancy[Sp[i]] + bc[6, 5] * tolerancy[Sp[i]] * Yakushima[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]]) } # priors and hyper-priors for (k in 1:N.tau.err) { tau.err[k] ~ dgamma(Err.gamma, Err.gamma) # non-informative } 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) } }