multimodelClosedSCR: Multimodel inference for 'multimark' spatial population...

View source: R/ClosedSCR.R

multimodelClosedSCRR Documentation

Multimodel inference for 'multimark' spatial population abundance models

Description

This function performs Bayesian multimodel inference for a set of 'multimark' spatial population abundance models using the reversible jump Markov chain Monte Carlo (RJMCMC) algorithm proposed by Barker & Link (2013).

Usage

multimodelClosedSCR(
  modlist,
  modprior = rep(1/length(modlist), length(modlist)),
  monparms = "N",
  miter = NULL,
  mburnin = 0,
  mthin = 1,
  M1 = NULL,
  pbetapropsd = 1,
  sigpropmean = 0.8,
  sigpropsd = 0.4,
  printlog = FALSE
)

Arguments

modlist

A list of individual model output lists returned by multimarkClosedSCR or markClosedSCR. The models must have the same number of chains and MCMC iterations.

modprior

Vector of length length(modlist) containing prior model probabilities. Default is modprior = rep(1/length(modlist), length(modlist)).

monparms

Parameters to monitor. Only parameters common to all models can be monitored (e.g., "pbeta[(Intercept)]", "N", "sigma2_scr"), but derived density ("D") as well as capture ("p") and recapture ("c") probabilities (at distance zero from activity centers) can also be monitored. Default is monparms = "N".

miter

The number of RJMCMC iterations per chain. If NULL, then the number of MCMC iterations for each individual model chain is used.

mburnin

Number of burn-in iterations (0 <= mburnin < miter).

mthin

Thinning interval for monitored parameters.

M1

Integer vector indicating the initial model for each chain, where M1_j=i initializes the RJMCMC algorithm for chain j in the model corresponding to modlist[[i]] for i=1,..., length(modlist). If NULL, the algorithm for all chains is initialized in the most general model. Default is M1=NULL.

pbetapropsd

Scaler specifying the standard deviation of the Normal(0, pbetapropsd) proposal distribution for "pbeta" parameters. Default is pbetapropsd=1. See Barker & Link (2013) for more details.

sigpropmean

Scaler specifying the mean of the inverse Gamma proposal distribution for sigma2_scr (or lambda if detection=``exponential''). Only applies if models do not have the same detection function (i.e., “half-normal” or “exponential”). Default is sigpropmean=0.8. See Barker & Link (2013) for more details.

sigpropsd

Scaler specifying the standard deviation of the inverse Gamma proposal distribution for sigma2_scr (or lambda if detection=``exponential''). Only applies if models do not have the same detection function (i.e., “half-normal” or “exponential”). Default is sigpropsd=0.4. See Barker & Link (2013) for more details.

printlog

Logical indicating whether to print the progress of chains and any errors to a log file in the working directory. Ignored when nchains=1. Updates are printed to log file as 1% increments of iter of each chain are completed. With >1 chains, setting printlog=TRUE is probably most useful for Windows users because progress and errors are automatically printed to the R console for "Unix-like" machines (i.e., Mac and Linux) when printlog=FALSE. Default is printlog=FALSE.

Details

Note that setting parms="all" is required when fitting individual multimarkClosedSCR or markClosedSCR models to be included in modlist.

Value

A list containing the following:

rjmcmc

Reversible jump Markov chain Monte Carlo object of class mcmc.list. Includes RJMCMC output for monitored parameters and the current model at each iteration ("M").

pos.prob

A list of calculated posterior model probabilities for each chain, including the overall posterior model probabilities across all chains.

Author(s)

Brett T. McClintock

References

Barker, R. J. and Link. W. A. 2013. Bayesian multimodel inference by RJMCMC: a Gibbs sampling approach. The American Statistician 67: 150-156.

See Also

multimarkClosedSCR, processdataSCR

Examples


# This example is excluded from testing to reduce package check time
# Example uses unrealistically low values for nchain, iter, and burnin

#Generate object of class "multimarkSCRsetup"
sim.data<-simdataClosedSCR()
Enc.Mat<-sim.data$Enc.Mat
trapCoords<-sim.data$spatialInputs$trapCoords
studyArea<-sim.data$spatialInputs$studyArea
setup<-processdataSCR(Enc.Mat,trapCoords,studyArea)
 
#Run single chain using the default model for simulated data. Note parms="all".
example.dot <- multimarkClosedSCR(mms=setup,parms="all",iter=1000,adapt=500,burnin=500)

#Run single chain for simulated data with behavior effects. Note parms="all".
example.c <- multimarkClosedSCR(mms=setup,mod.p=~c,parms="all",iter=1000,adapt=500,burnin=500)

#Perform RJMCMC using defaults
modlist <- list(mod1=example.dot,mod2=example.c)
example.M <- multimodelClosedSCR(modlist=modlist,monparms=c("N","D","sigma2_scr"))

#Posterior model probabilities
example.M$pos.prob
 
#multimodel posterior summary for abundance and density
summary(example.M$rjmcmc[,c("N","D")])


multimark documentation built on March 31, 2023, 9:33 p.m.