nimble (version 0.7.0)

configureMCMC: Build the MCMCconf object for construction of an MCMC object

Description

Creates a defaut MCMC configuration for a given model. The resulting object is suitable as an argument to buildMCMC. The assignment of sampling algorithms may be controlled using the rules argument, if provided.

Usage

configureMCMC(model, nodes, control = list(), monitors, thin = 1,
  monitors2 = character(), thin2 = 1, useConjugacy = TRUE,
  onlyRW = FALSE, onlySlice = FALSE, multivariateNodesAsScalars = FALSE,
  enableWAIC = nimbleOptions("enableWAIC"), print = FALSE,
  autoBlock = FALSE, oldConf,
  rules = getNimbleOption("MCMCdefaultSamplerAssignmentRules"),
  warnNoSamplerAssigned = TRUE, ...)

Arguments

model

A NIMBLE model object, created from nimbleModel

nodes

An optional character vector, specifying the nodes and/or variables for which samplers should be created. Nodes may be specified in their indexed form, y[1, 3]. Alternatively, nodes specified without indexing will be expanded fully, e.g., x will be expanded to x[1], x[2], etc. If missing, the default value is all non-data stochastic nodes. If NULL, then no samplers are added.

control

An optional list of control arguments to sampler functions. If a control list is provided, the elements will be provided to all sampler functions which utilize the named elements given. For example, the standard Metropolis-Hastings random walk sampler (sampler_RW) utilizes control list elements adaptive, adaptInterval, and scale. (Internally it also uses targetNode, but this should not generally be provided as a control list element). The default values for control list arguments for samplers (if not otherwise provided as an argument to configureMCMC() ) are in the setup code of the sampling algorithms.

monitors

A character vector of node names or variable names, to record during MCMC sampling. This set of monitors will be recorded with thinning interval thin, and the samples will be stored into the mvSamples object. The default value is all top-level stochastic nodes of the model -- those having no stochastic parent nodes.

thin

The thinning interval for monitors. Default value is one.

monitors2

A character vector of node names or variable names, to record during MCMC sampling. This set of monitors will be recorded with thinning interval thin2, and the samples will be stored into the mvSamples2 object. The default value is an empty character vector, i.e. no values will be recorded.

thin2

The thinning interval for monitors2. Default value is one.

useConjugacy

A logical argument, with default value TRUE. If specified as FALSE, then no conjugate samplers will be used, even when a node is determined to be in a conjugate relationship.

onlyRW

A logical argument, with default value FALSE. If specified as TRUE, then Metropolis-Hastings random walk samplers (sampler_RW) will be assigned for all non-terminal continuous-valued nodes nodes. Discrete-valued nodes are assigned a slice sampler (sampler_slice), and terminal nodes are assigned a posterior_predictive sampler (sampler_posterior_predictive).

onlySlice

A logical argument, with default value FALSE. If specified as TRUE, then a slice sampler is assigned for all non-terminal nodes. Terminal nodes are still assigned a posterior_predictive sampler.

multivariateNodesAsScalars

A logical argument, with default value FALSE. If specified as TRUE, then non-terminal multivariate stochastic nodes will have scalar samplers assigned to each of the scalar components of the multivariate node. The default value of FALSE results in a single block sampler assigned to the entire multivariate node. Note, multivariate nodes appearing in conjugate relationships will be assigned the corresponding conjugate sampler (provided useConjugacy == TRUE), regardless of the value of this argument.

enableWAIC

A logical argument, specifying whether to enable WAIC calculations for the resulting MCMC algorithm. Defaults to the value of nimbleOptions('enableWAIC'), which in turn defaults to FALSE. Setting nimbleOptions('enableWAIC' = TRUE) will ensure that WAIC is enabled for all calls to configureMCMC and buildMCMC.

print

A logical argument, specifying whether to print the ordered list of default samplers.

autoBlock

A logical argument specifying whether to use an automated blocking procedure to determine blocks of model nodes for joint sampling. If TRUE, an MCMC configuration object will be created and returned corresponding to the results of the automated parameter blocking. Default value is FALSE.

oldConf

An optional MCMCconf object to modify rather than creating a new MCMCconf from scratch

rules

An object of class samplerAssignmentRules, which governs the assigment of MCMC sampling algorithms to stochastic model nodes. The default set of sampler assignment rules is specified by the nimble option \'MCMCdefaultSamplerAssignmentRules\'.

warnNoSamplerAssigned

A logical argument, with default value TRUE. This specifies whether to issue a warning when no sampler is assigned to a node, meaning there is no matching sampler assignment rule.

...

Additional named control list elements for default samplers, or additional arguments to be passed to the autoBlock() function when autoBlock = TRUE

Details

See MCMCconf for details on how to manipulate the MCMCconf object

See Also

samplerAssignmentRules buildMCMC runMCMC nimbleMCMC