# ST2195 Coursework Project, SUSS, Singapore: The Markov Chain Monte Carlo algorithm, in particular the Metropolis-Hastings algorithm

Part 1 In this part, you are asked to work with the Markov Chain Monte Carlo algorithm, in particular the Metropolis-Hastings algorithm. The aim is to simulate random numbers for the distribution with the probability density function given below

where x takes values in the real line and |x| denotes the absolute value of x. More specifically, you are asked to generate x0, x1, . . . , xN values and store them using the following version of the Metropolis-Hastings algorithm (also known as random walk Metropolis) that consists of the steps below:

##### Stuck with a lot of homework assignments and feeling stressed ? Take professional academic assistance & Get 100% Plagiarism free papers

Random walk Metropolis
Step 1 Set up an initial value x0 as well as a positive integer N and a positive real number s.
Step 2 Repeat the following procedure for i = 1, . . . , N :
• Simulate a random number x∗ from the Normal distribution with mean xi−1 and standard deviation s.
• Compute the ratio

• Generate a random number u from the uniform distribution between 0 and 1.
• If u < r (x∗, xi−1), set xi = x∗, else set xi = xi−1.

(a) Apply the random walk Metropolis algorithm using N = 10000 and s = 1. Use the generated samples (x1, . . . xN ) to construct a histogram and a kernel density plot in the same figure. Note that these provide estimates of f (x). Overlay a graph of f (x) on this figure to visualize the quality of these estimates. Also, report the sample mean and standard deviation of the generated samples (Note: these are also known as the Monte Carlo estimates of the mean and standard deviation respectively).

Practical tip: To avoid numerical errors, it is better to use the equivalent criterion log u < log r (x∗, xi−1) = log f (x∗) − log f (xi−1) instead of u < r (x∗, xi−1).