multimodelCJS {multimark} | R Documentation |
Multimodel inference for 'multimark' open population survival models
Description
This function performs Bayesian multimodel inference for a set of 'multimark' open population survival (i.e., Cormack-Jolly-Seber) models using the reversible jump Markov chain Monte Carlo (RJMCMC) algorithm proposed by Barker & Link (2013).
Usage
multimodelCJS(
modlist,
modprior = rep(1/length(modlist), length(modlist)),
monparms = "phi",
miter = NULL,
mburnin = 0,
mthin = 1,
M1 = NULL,
pbetapropsd = 1,
zppropsd = NULL,
phibetapropsd = 1,
zphipropsd = NULL,
sigppropshape = 1,
sigppropscale = 0.01,
sigphipropshape = 1,
sigphipropscale = 0.01,
printlog = FALSE
)
Arguments
modlist |
A list of individual model output lists returned by |
modprior |
Vector of length |
monparms |
Parameters to monitor. Only parameters common to all models can be monitored (e.g., " |
miter |
The number of RJMCMC iterations per chain. If |
mburnin |
Number of burn-in iterations ( |
mthin |
Thinning interval for monitored parameters. |
M1 |
Integer vector indicating the initial model for each chain, where |
pbetapropsd |
Scaler specifying the standard deviation of the Normal(0, pbetapropsd) proposal distribution for " |
zppropsd |
Scaler specifying the standard deviation of the Normal(0, zppropsd) proposal distribution for " |
phibetapropsd |
Scaler specifying the standard deviation of the Normal(0, phibetapropsd) proposal distribution for " |
zphipropsd |
Scaler specifying the standard deviation of the Normal(0, zphipropsd) proposal distribution for " |
sigppropshape |
Scaler specifying the shape parameter of the invGamma(shape = sigppropshape, scale = sigppropscale) proposal distribution for " |
sigppropscale |
Scaler specifying the scale parameter of the invGamma(shape = sigppropshape, scale = sigppropscale) proposal distribution for " |
sigphipropshape |
Scaler specifying the shape parameter of the invGamma(shape = sigphipropshape, scale = sigphipropscale) proposal distribution for " |
sigphipropscale |
Scaler specifying the scale parameter of the invGamma(shape = sigphipropshape, scale = sigphipropscale) proposal distribution for " |
printlog |
Logical indicating whether to print the progress of chains and any errors to a log file in the working directory. Ignored when |
Details
Note that setting parms="all"
is required when fitting individual multimarkCJS
models to be included in modlist
.
Value
A list containing the following:
rjmcmc |
Reversible jump Markov chain Monte Carlo object of class |
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
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 "multimarksetup" from simulated data
data_type = "always"
noccas <- 5
phibetaTime <- seq(2,0,length=noccas-1) # declining trend in survival
data <- simdataCJS(noccas=5,phibeta=phibetaTime,data.type=data_type)
setup <- processdata(data$Enc.Mat,data.type=data_type)
#Run single chain using the default model. Note parms="all".
sim.pdot.phidot <- multimarkCJS(mms=setup,parms="all",iter=1000,adapt=500,burnin=500)
#Run single chain with temporal trend for phi. Note parms="all".
sim.pdot.phiTime <- multimarkCJS(mms=setup,mod.phi=~Time,parms="all",iter=1000,adapt=500,burnin=500)
#Perform RJMCMC using defaults
modlist <- list(mod1=sim.pdot.phidot,mod2=sim.pdot.phiTime)
sim.M <- multimodelCJS(modlist=modlist)
#Posterior model probabilities
sim.M$pos.prob
#multimodel posterior summary for survival (display first cohort only)
summary(sim.M$rjmcmc[,paste0("phi[1,",1:(noccas-1),"]")])