Supplement 2 Code for R and Bugs models setwd("C:/Data/Documents/R") #Working Directory require(R2WinBUGS) require(BRugs) y0000=read.csv(file="C:/Data/Documents/R/TTI_Seagrass.csv", header = TRUE) y000<- subset(y00000,ZONE=="Gulf") # Use only offshore data y00<- subset(y0000,SPP=="Sf") # Choose Species y0<- subset(y000,SEASON=="Spring") # Choose Season y<-y0$DROPS # Number of camera drops y.strata<-c(1,2,3,4,5,y0$Strata) # "unknown" data from each stratum to estimate histograms y.observed<-c(NA,NA,NA,NA,NA,as.numeric(gsub(8,NA,y))) # observations with 0-7 drops y.censored<-c(0,0,0,0,0,((as.logical(y-8)-1)*(-8))) # observations with 8 positive drops num.y<-length(y.observed) num.strata = 5 nChains = 5 nThin = 7 nBurn = 140000 nUpdate = 140000 # model specification in WinBUGS modelFilename = 'seagrass_bugs.txt' cat(' model { for (i in 1:num.y) { y.observed[i] ~ dpois(poisson.lambda.ind[i])I(y.censored[i],100) poisson.lambda0.ind[i] ~ dgamma(gamma.r.ind[i],gamma.mu.ind[i]) poisson.lambda.ind[i] <- max(.001,(poisson.lambda0.ind[i]*(1-u[i]) )) gamma.mu.ind[i]<-gamma.mu.strata[y.strata[i]] gamma.r.ind[i]<-gamma.r.strata[y.strata[i]] u[i]~ dbern(p0.strata[y.strata[i]]) } for (j in 1:num.strata) { gamma.mu0[j] ~ dunif(.001,1000) gamma.mu.strata[j]<-sqrt(gamma.mu0[j]) gamma.r0[j] ~ dunif(.001,1000) gamma.r.strata[j] <-sqrt(gamma.r0[j]) p0.strata[j] ~ dunif(0,1) nb.mu[j] <- cut(gamma.r.strata[j])/ cut(gamma.mu.strata[j]) nb.p[j] <- 1-pow((8/(nb.mu[j]+8)),8) expected[j] <- (nb.p[j]*(1-cut(p0.strata[j]))) observed.strata[j] <- cut(y.observed[j]) } #differences between adjacent strata d54<-expected[5]-expected[4] d43<-expected[4]-expected[3] d32<-expected[3]-expected[2] d21<-expected[2]-expected[1] } ', fill=TRUE, file=modelFilename) bugs.data(data=list( num.y=num.y, y.observed=y.observed,num.strata=num.strata, y.censored=y.censored,y.strata=y.strata), dir = getwd(), digits = 5) inits = function() { p0.strata = c(.5,.5,.5,.5,.5) gamma.r0 = runif(5,.001,1000) gamma.mu0 = runif(5,.001,1000) list(p0.strata=p0.strata,gamma.r0=gamma.r0,gamma.mu0=gamma.mu0) } bugsInits(inits, numChains=nChains ,fileName = file.path(getwd(), paste("inits", 1:nChains, ".txt", sep = ""))) modelCheck(modelFilename) modelData("data.txt") modelCompile(numChains=nChains) modelGenInits() modelInits(fileName = file.path(getwd(), paste("inits", 1:nChains, ".txt", sep = "")) ) modelUpdate(nBurn) samplesSet(c('gamma.r.strata','gamma.mu.strata','p0.strata','nb.mu','nb.p','expected', 'd54','d43','d32','d21','observed.strata')) modelUpdate(nUpdate) samplesDensity("*", thin = nThin) samplesHistory("*", thin = nThin) write.csv (samplesStats("*",thin = nThin),file="TTI_Seagrass_BugsOut_Sf_Spring.csv")