MetropolisHastings: The modified Metropolis-Hastings algorithm

Description Usage Arguments Details Value

View source: R/MetropolisHastings.R

Description

The function implements the specific modified Metropolis-Hastings algorithm as described first by Au \& Beck and including another scaling parameter for an extended search in initial steps of the SMART algorithm.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
MetropolisHastings(
  x0,
  eval_x0 = -1,
  chain_length,
  modified = TRUE,
  sigma = 0.3,
  proposal = "Uniform",
  lambda = 1,
  limit_fun = function(x) {     -1 },
  burnin = 20,
  thinning = 4
)

Arguments

x0

the starting point of the Markov chain

eval_x0

the value of the limit-state function on x0

chain_length

the length of the Markov chain. At the end the chain will be chain_length + 1 long

modified

a boolean to use either the original Metropolis-Hastings transition kernel or the coordinate-wise one

sigma

a radius parameter for the Gaussian or Uniform proposal

proposal

either "Uniform" for a Uniform random variable in an interval [-sigma, sigma] or "Gaussian" for a centred Gaussian random variable with standard deviation sigma

lambda

the coefficient to increase the likelihood ratio

limit_fun

the limite-state function delimiting the domain to sample in

burnin

a burnin parameter, ie a number of initial discards samples

thinning

a thinning parameter, ie that one sample over thinning samples is kept along the chain

Details

The modified Metropolis-Hastings algorithm is supposed to be used in the Gaussian standard space. Instead of using a proposed point for the multidimensional Gaussian random variable, it applies a Metropolis step to each coordinate. Then it generates the multivariate candidate by checking if it lies in the right domain.

This version proposed by Bourinet et al. includes an scaling parameter lambda. This parameter is multiplied with the likelihood ratio in order to increase the chance of accepting the candidate. While it biases the output distribution of the Markov chain, the authors of SMART suggest its use (lambda > 1) for the exploration phase. Note such a value disable to possiblity to use the output population for Monte Carlo estimation.

Value

A list containing the following entries:

points

the generated Markov chain

eval

the value of the limit-state function on the generated samples

acceptation

the acceptation rate

Ncall

the total number of call to the limit-state function

samples

all the generated samples

eval_samples

the evaluation of the limit-state function on the samples samples


clemlaflemme/test documentation built on Jan. 3, 2020, 9:14 a.m.