The function implements the specific modified Metropolis-Hastings algorithm
as described first by Au and Beck and including another scaling parameter for an extended
search in initial steps of the SMART
algorithm.
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
)
A list containing the following entries:
the generated Markov chain
the value of the limit-state function on the generated samples
the acceptation rate
the total number of call to the limit-state function
all the generated samples
the evaluation of the limit-state function on the
samples
samples
the starting point of the Markov chain
the value of the limit-state function on x0
the length of the Markov chain. At the end the chain will be chain_length + 1 long
a boolean to use either the original Metropolis-Hastings transition kernel or the coordinate-wise one
a radius parameter for the Gaussian or Uniform 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
the coefficient to increase the likelihood ratio
the limite-state function delimiting the domain to sample in
a burnin parameter, ie a number of initial discards samples
a thinning parameter, ie that one sample over thinning
samples is kept along the chain
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.