# multimodelClosedSCR: Multimodel inference for 'multimark' spatial population... In multimark: Capture-Mark-Recapture Analysis using Multiple Non-Invasive Marks

## 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

 ```1 2 3 4``` ```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.

`multimarkClosedSCR`, `processdataSCR`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25``` ```# 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")]) ```