if (FALSE) {
# Create and fit model
data("camtraps")
# create camera operation matrix
camop_no_problem <- cameraOperation(CTtable = camtraps,
stationCol = "Station",
setupCol = "Setup_date",
retrievalCol = "Retrieval_date",
hasProblems = FALSE,
dateFormat = "dmy"
)
data("recordTableSample")
# make list of detection histories
species_to_include <- unique(recordTableSample$Species)
DetHist_list <- detectionHistory(
recordTable = recordTableSample,
camOp = camop_no_problem,
stationCol = "Station",
speciesCol = "Species",
recordDateTimeCol = "DateTimeOriginal",
species = species_to_include,
occasionLength = 7,
day1 = "station",
datesAsOccasionNames = FALSE,
includeEffort = TRUE,
scaleEffort = TRUE,
timeZone = "Asia/Kuala_Lumpur"
)
# create some fake covariates for demonstration
sitecovs <- camtraps[, c(1:3)]
sitecovs$elevation <- c(300, 500, 600)
# scale numeric covariates
sitecovs[, c(2:4)] <- scale(sitecovs[,-1])
# bundle input data for communityModel
data_list <- list(ylist = DetHist_list$detection_history,
siteCovs = sitecovs,
obsCovs = list(effort = DetHist_list$effort))
# create community model for JAGS
modelfile1 <- tempfile(fileext = ".txt")
mod.jags <- communityModel(data_list,
occuCovs = list(fixed = "utm_y", ranef = "elevation"),
detCovsObservation = list(fixed = "effort"),
intercepts = list(det = "ranef", occu = "ranef"),
modelFile = modelfile1)
summary(mod.jags)
# fit in JAGS
fit.jags <- fit(mod.jags,
n.iter = 1000,
n.burnin = 500,
chains = 3)
summary(fit.jags)
# create predictions for p and psi
draws <- 100
p <- predict(object = mod.jags,
mcmc.list = fit.jags,
type = "p_array",
draws = draws)
# output is in order [station, species, draw, occasion]
psi <- predict(object = mod.jags,
mcmc.list = fit.jags,
type = "psi_array",
draws = draws)
# output is in order [station, species, draw]
ppc_comm <- PPC.community(
p = p,
psi = psi,
y = mod.jags@input$ylist,
model = "Occupancy",
type = "FT")
# Bayesian p-values
ppc_comm$BP
str(ppc_comm$residuals)
# get individual species PPC results
ppc_species <- ppc_comm$residuals[[1]] # first species
plot(apply(ppc_species$res.obs, 2, mean), apply(ppc_species$res.new, 2, mean),
xlab = "Observed residuals",
ylab = "Predicted residuals"
)
abline(0,1) # diagonal line is not visible due to tiny data set
}
Run the code above in your browser using DataLab