data { #these are all data elements int nind; #number of unique individuals int nplot; #number of seedling plots int nspe; #number of species int ncensus; #number of censuses int n; #number of survival observations int ncov; #number of covariates int plot[n]; #plot for each survival observation int spe[n]; #species of each survival observation int census[n]; #census for each survival observation int ind[n]; #individual ID for each survival observation vector[nspe] meanT; #trait values for each species matrix[n,ncov] COV; #covariate values for each observation, where first column is all equal to ‘1’ for intercept, second column is root collar diameter, third column is NCI, fourth column is NCIS (trait similarity with neighbors) int status[n]; #survival observations } parameters { real t[2]; #second level regression of trait effects, i.e. beta1 and beta2 in main text real b[nspe,ncov]; #species specific parameters for each covariate effect, including intercept real int2[nplot]; #plot random effects real int3[ncensus]; #census random effects real int4[nind]; #individual random effects real sigmab[ncov]; #standard deviations of hyperdistributions for species-specific covariate effects real int1[ncov]; # hyperdistribution means for species-specific covariate effects real sigmaplot; #standard deviation of plot random effects real sigmacensus; #standard deviation of census random effects real sigmaind; #standard deviation of individual random effects } model { sigmacensus~gamma(100,100); #prior for census random effects standard deviation sigmaind~gamma(100,100); #prior for individual seedling random effects standard deviation sigmaplot~gamma(100,100) ; #prior for plot random effects standard deviation for(i in 1:2) { t[i]~normal(0,100); #priors for second level regression of trait effects, i.e. beta1 and beta2 in main text } for(i in 1:ncov) { int1[i]~normal(0,100); #priors for hyperdistribution means for species-specific covariate effects sigmab[i]~gamma(100,100); #priors for standard deviations of hyperdistributions for species-specific covariate effects } for(j in 1:nspe) { b[j,1]~normal(int1[1]+t[1]*meanT[j],sigmab[1]); #species specific intercept, including second level regression giving trait effect b[j,2]~normal(int1[2],sigmab[2]); #species specific covariate effect of root collar diameter b[j,3]~normal(int1[3]+t[2]*meanT[j] ,sigmab[3]); #species specific covariate effect for NCI, including second level regression giving trait effect b[j,4]~normal(int1[4],sigmab[4]); #species specific effect of NCIS, i.e. trait similarity with neighbors } for(i in 1:nplot) { int2[i]~normal(0,sigmaplot); #plot random effects } for(i in 1:nind) { int4[i]~normal(0,sigmaind); #individual random effects } for(i in 1:ncensus) { int3[i]~normal(0,sigmacensus); #census random effects } for(i in 1:n) { status[i]~bernoulli_logit(int2[plot[i]]+b[spe[i],1]*COV[i,1]+b[spe[i],2]*COV[i,2]+b[spe[i],3]*COV[i,3]+b[spe[i],4]*COV[i,4]+int3[census[i]]+int4[ind[i]]); #likelihood of each observation of survival } }