DREAM {BayesianTools}R Documentation

DREAM

Description

DREAM

Usage

DREAM(bayesianSetup, settings = list(iterations = 10000, nCR = 3, gamma =
  NULL, eps = 0, e = 0.05, pCRupdate = TRUE, updateInterval = 10, burnin =
  0, thin = 1, adaptation = 0.2, DEpairs = 2, consoleUpdates = 10,
  startValue = NULL, currentChain = 1, message = TRUE))

Arguments

bayesianSetup

Object of class 'bayesianSetup' or 'bayesianOuput'.

settings

list with parameter values

iterations

Number of model evaluations

nCR

parameter determining the number of cross-over proposals. If nCR = 1 all parameters are updated jointly.

updateInterval

determining the intervall for the pCR update

gamma

Kurtosis parameter Bayesian Inference Scheme

eps

Ergodicity term

e

Ergodicity term

pCRupdate

Update of crossover probabilities

burnin

number of iterations treated as burn-in. These iterations are not recorded in the chain.

thin

thin thinning parameter. Determines the interval in which values are recorded.

adaptation

Number or percentage of samples that are used for the adaptation in DREAM (see Details).

DEpairs

Number of pairs used to generate proposal

startValue

eiter a matrix containing the start values (see details), an integer to define the number of chains that are run, a function to sample the start values or NUll, in which case the values are sampled from the prior.

consoleUpdates

Intervall in which the sampling progress is printed to the console

message

logical determines whether the sampler's progress should be printed

Details

Insted of a bayesianSetup, the function can take the output of a previous run to restart the sampler from the last iteration. Due to the sampler's internal structure you can only use the output of DREAM. If you provide a matrix with start values the number of rows determines the number of chains that are run. The number of coloumns must be equivalent to the number of parameters in your bayesianSetup.

There are several small differences in the algorithm presented here compared to the original paper by Vrugt et al. (2009). Mainly the algorithm implemented here does not have an automatic stopping criterion. Hence, it will always run the number of iterations specified by the user. Also, convergence is not monitored and left to the user. This can easily be done with coda::gelman.diag(chain). Further the proposed delayed rejectio step in Vrugt et al. (2009) is not implemented here.

During the adaptation phase DREAM is running two mechanisms to enhance the sampler's efficiency. First the disribution of crossover values is tuned to favor large jumps in the parameter space. The crossover probabilities determine how many parameters are updated simultaneously. Second outlier chains are replanced as they can largely deteriorate the sampler's performance. However, these steps destroy the detailed balance of the chain. Consequently these parts of the chain should be discarded when summarizing posterior moments. This can be done automatically during the sampling process (i.e. burnin > adaptation) or subsequently by the user. We chose to distinguish between the burnin and adaptation phase to allow the user more flexibility in the sampler's settings.

Value

mcmc.object containing the following elements: chains, X, pCR

Author(s)

Stefan Paul

References

Vrugt, Jasper A., et al. "Accelerating Markov chain Monte Carlo simulation by differential evolution with self-adaptive randomized subspace sampling." International Journal of Nonlinear Sciences and Numerical Simulation 10.3 (2009): 273-290.

See Also

DREAMzs


[Package BayesianTools version 0.1.7 Index]