smcmc-class

Share:

Description

Object representing the results of MCMC estimation on an object of class synlik, from which it inherits.

Slots

initPar

Vector of initial parameters where the MCMC chain will start (numeric).

niter

Number of MCMC iterations (integer).

nsim

Number of simulations from the simulator at each step of the MCMC algorithm (integer).

burn

Number of initial MCMC iterations that are discarded (integer).

priorFun

Function that takes a vector of parameters as input and the log-density of the prior as output. If the output is not finite the proposed point will be discarded. (function). The function needs to have signature fun(x, ...), where x represents the input parameters (function).

propCov

Matrix representing the covariance matrix to be used to perturb the parameters at each step of the MCMC chain (matrix).

targetRate

Target rate for the adaptive MCMC sampler. Should be in (0, 1), default is NULL (no adaptation). The adaptation uses the approach of Vihola (2011). (numeric)

recompute

If TRUE the synthetic likelihood will be evaluated at the current and proposed positions in the parameter space (thus doubling the computational effort). If FALSE the likelihood of the current position won't be re-estimated (logical).

multicore

If TRUE the object@simulator and object@summaries functions will be executed in parallel. That is the nsim simulations will be divided in multiple cores (logical).

ncores

Number of cores to use if multicore == TRUE (integer).

accRate

Acceptance rate of the MCMC chain, between 0 and 1 (numeric).

chains

Matrix of size niter by length(initPar) where the i-th row contains the position of the MCMC algorithm in the parameter space at the i-th (matrix).

llkChain

Vector of niter elements where the i-th element is contains the estimate of the synthetic likelihood at the i-th iteration (numeric).

control

Control parameters used by the MCMC sampler:

  • theta = controls the speed of adaption. Should be between 0.5 and 1. A lower gamma leads to faster adaption.

  • adaptStart = iteration where the adaption starts. Default 0.

  • adaptStop = iteration where the adaption stops. Default burn + niter

  • saveFile = path to the file where the intermediate results will be stored (ex: "~/Res.RData").

  • saveFreq = frequency with which the intermediate results will be saved on saveFile. Default 100.

  • verbose = if TRUE intermediate posterior means will be printer.

  • verbFreq = frequency with which the intermediate posterior means will be printer. Default 500.

Author(s)

Matteo Fasiolo <matteo.fasiolo@gmail.com>

References

Vihola, M. (2011) Robust adaptive Metropolis algorithm with coerced acceptance rate. Statistics and Computing.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# Load "synlik" object
data(ricker_sl)

plot(ricker_sl)

# MCMC estimation
set.seed(4235)
ricker_sl <- smcmc(ricker_sl,
                   initPar = c(3.2, -1, 2.6),
                   niter = 50,
                   burn = 3,
                   priorFun = function(input, ...) 1,
                   propCov = diag( c(0.1, 0.1, 0.1) )^2,
                   nsim = 200,
                   multicore = FALSE)

# Continue with additional 50 iterations
ricker_sl <- continue(ricker_sl, niter = 50)

plot(ricker_sl)