Metropolis-Hastings Markov Chain Monte Carlo Sampling
The
Metropolis-Hastings Markov Chain Monte Carlo Sampling algorithm can draw samples from any
probability distribution
P(x), requiring only that the density can be calculated at
x. The algorithm generates a set of states x
t which is a
Markov chain because each state x
t depends only on the previous state x
t-1. The algorithm depends on the creation of a
proposal density Q(x
t;x') which depends on the current state x
t and which can generate a new proposed sample x'. For example, the proposal density could be a
Gaussian function centred on the current state x
t
This proposal density would generate samples centred around the current state with variance σ
2I. So we draw a new proposal state from Q(x
t,x') and then calculate a value
where
is the likelihood ratio between the proposed sample x' and the previous sample x
t, and
is the ratio of the proposal density in two directions (from x
t to x' and
vice versa). This is equal to 1 if the proposal density is symmetric. Then the new state x
t+1 is chosen with the rule
The Markov chain is started from a random initial value x
0 and the algorithm is run for a few thousand iterations so that this initial state is "forgotten". These samples, which are discarded, are known as
burn-in. The algorithm works best if the proposal density matches the shape of the target distribution P(x), but in most cases this is unknown. If a Gaussian proposal is used the variance parameter σ
2 has to be tuned during the burn-in period. This is usually done by calculating the
acceptance rate, which is the fraction of proposed samples that is accepted in a window of the last N samples. This is usually set to be around 60%. If the proposal steps are too small the chain will
mix slowly i.e. it will move around the space slowly and converge slowly to P(x). If the proposal steps are too large the acceptance rate will be very low because the proposals are likely to land in regions of much lower probability density so a
1 will be very small.