Functions to set up MCMC samplers and change the starting values
of their parameters, for use in
hmc(Lmin = 5, Lmax = 10, epsilon = 0.1, diag_sd = 1) rwmh(proposal = c("normal", "uniform"), epsilon = 0.1, diag_sd = 1) slice(max_doublings = 5)
minimum number of leapfrog steps (positive integer, Lmin > Lmax)
maximum number of leapfrog steps (positive integer, Lmax > Lmin)
leapfrog stepsize hyperparameter (positive, will be tuned)
estimate of the posterior marginal standard deviations (positive, will be tuned).
the probability distribution used to generate proposal states
the maximum number of iterations of the 'doubling' algorithm used to adapt the size of the slice
sampler object that can be passed to
During the warmup iterations of
mcmc, some of these
sampler parameters will be tuned to improve the efficiency of the sampler,
so the values provided here are used as starting values.
hmc(), the number of leapfrog steps at each iteration is
selected uniformly at random from between
diag_sd is used to rescale the parameter space to make it more
uniform, and make sampling more efficient.
rwmh() creates a random walk Metropolis-Hastings sampler; a
a gradient-free sampling algorithm. The algorithm involves a proposal
proposal_state = current_state + perturb by a random
perturbation, followed by Metropolis-Hastings accept/reject step. The class
is implemented for uniform and normal proposals.
slice() implements a multivariate slice sampling algorithm.
Currently this algorithm can only be used with single-precision models (set
precision argument to
model()). The parameter
max_doublings is not tuned during warmup.