Learn R Programming

bssm (version 1.0.0)

run_mcmc.nongaussian: Bayesian Inference of Non-Gaussian State Space Models

Description

Methods for posterior inference of states and parameters.

Usage

# S3 method for nongaussian
run_mcmc(
  model,
  iter,
  nsim,
  output_type = "full",
  mcmc_type = "da",
  sampling_method = "psi",
  burnin = floor(iter/2),
  thin = 1,
  gamma = 2/3,
  target_acceptance = 0.234,
  S,
  end_adaptive_phase = TRUE,
  local_approx = TRUE,
  n_threads = 1,
  seed = sample(.Machine$integer.max, size = 1),
  max_iter = 100,
  conv_tol = 1e-08,
  ...
)

Arguments

model

Model model.

iter

Number of MCMC iterations.

nsim

Number of state samples per MCMC iteration. Ignored if mcmc_type is "approx".

output_type

Either "full" (default, returns posterior samples of states alpha and hyperparameters theta), "theta" (for marginal posterior of theta), or "summary" (return the mean and variance estimates of the states and posterior samples of theta).

mcmc_type

What MCMC algorithm to use? Possible choices are "pm" for pseudo-marginal MCMC, "da" for delayed acceptance version of PMCMC (default), "approx" for approximate inference based on the Gaussian approximation of the model, or one of the three importance sampling type weighting schemes: "is3" for simple importance sampling (weight is computed for each MCMC iteration independently), "is2" for jump chain importance sampling type weighting, or "is1" for importance sampling type weighting where the number of particles used for weight computations is proportional to the length of the jump chain block.

sampling_method

If "psi", \(\psi\)-auxiliary particle filter is used for state sampling (default). If "spdk", non-sequential importance sampling based on Gaussian approximation is used. If "bsf", bootstrap filter is used.

burnin

Length of the burn-in period which is disregarded from the results. Defaults to iter / 2.

thin

Thinning rate. Defaults to 1. Increase for large models in order to save memory. For IS-corrected methods, larger value can also be statistically more effective. Note: With output_type = "summary", the thinning does not affect the computations of the summary statistics in case of pseudo-marginal methods.

gamma

Tuning parameter for the adaptation of RAM algorithm. Must be between 0 and 1 (not checked).

target_acceptance

Target acceptance ratio for RAM. Defaults to 0.234.

S

Initial value for the lower triangular matrix of RAM algorithm, so that the covariance matrix of the Gaussian proposal distribution is \(SS'\). Note that for some parameters (currently the standard deviation and dispersion parameters of bsm_ng models) the sampling is done for transformed parameters with internal_theta = log(theta).

end_adaptive_phase

If TRUE (default), $S$ is held fixed after the burnin period.

local_approx

If TRUE (default), Gaussian approximation needed for importance sampling is performed at each iteration. If false, approximation is updated only once at the start of the MCMC.

n_threads

Number of threads for state simulation.

seed

Seed for the random number generator.

max_iter

Maximum number of iterations used in Gaussian approximation.

conv_tol

Tolerance parameter used in Gaussian approximation.

...

Ignored. set.seed(1) n <- 50 slope <- cumsum(c(0, rnorm(n - 1, sd = 0.001))) level <- cumsum(slope + c(0, rnorm(n - 1, sd = 0.2))) y <- rpois(n, exp(level)) poisson_model <- bsm_ng(y, sd_level = halfnormal(0.01, 1), sd_slope = halfnormal(0.01, 0.1), P1 = diag(c(10, 0.1)), distribution = "poisson") mcmc_is <- run_mcmc(poisson_model, iter = 1000, nsim = 10, mcmc_type = "is2") summary(mcmc_is, what = "theta", return_se = TRUE)