| zigzagHMC | R Documentation |
Generate MCMC samples from a d-dimensional truncated Gaussian distribution with element-wise truncations using the Zigzag Hamiltonian Monte Carlo sampler (Zigzag-HMC).
zigzagHMC(
nSample,
burnin = 0,
mean,
prec,
lowerBounds,
upperBounds,
init = NULL,
stepSize = NULL,
nutsFlg = FALSE,
precondition = FALSE,
seed = 1,
numThreads = 1,
diagnosticMode = FALSE
)
nSample |
number of samples after burn-in. |
burnin |
number of burn-in samples (default = 0). |
mean |
a d-dimensional mean vector. |
prec |
a d-by-d precision matrix of the Gaussian distribution. |
lowerBounds |
a d-dimensional vector specifying the lower bounds. |
upperBounds |
a d-dimensional vector specifying the upper bounds. |
init |
a d-dimensional vector of the initial value. |
stepSize |
step size for Zigzag-HMC or Zigzag-NUTS (if |
nutsFlg |
logical. If |
precondition |
logical. If |
seed |
random seed (default = 1). |
numThreads |
number of threads for parallel execution (default = 1). Set to 0 for automatic detection of available cores. |
diagnosticMode |
logical. |
When diagnosticMode = FALSE (default), returns an nSample-by-d matrix of samples.
When diagnosticMode = TRUE, returns a list with elements:
samples |
|
stepsize |
The step size used for sampling |
Nishimura, A., Zhang, Z., and Suchard, M. A. (2024). Zigzag path connects two Monte Carlo samplers: Hamiltonian counterpart to a piecewise deterministic Markov process. Journal of the American Statistical Association, 1-13.
Nishimura, A., Dunson, D. B., and Lu, J. (2020). Discontinuous Hamiltonian Monte Carlo for discrete parameters and discontinuous likelihoods. Biometrika, 107(2): 365-380.
getZigzagSample(), createEngine(), createNutsEngine(), setMean(), setPrecision()
set.seed(1)
d <- 10
A <- matrix(runif(d^2)*2-1, ncol=d)
precMat <- t(A) %*% A
initial <- rep(1, d)
results <- zigzagHMC(nSample = 1000, burnin = 1000, mean = rep(0, d), prec = precMat,
lowerBounds = rep(0, d), upperBounds = rep(Inf, d))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.