I am self-studying MCMC in the context of graphical models. I understand that if we run MCMC on a graphical model (e.g. a belief net) that the model will hopefully converge to a stationary distribution for all the relevant paramters in my model (after burn-in). My question is, if I want to have 100 unbiased samples from the posterior distribution, then do I 1) need to run 100 seperate MCMC chains, initaliazed at different random values, and take one sample from the parameter distributions upon convergence, or 2) I only have to run one MCMC chain, and can take 100 samples from the stationary distribution upon convergence of that chain?

  • $\begingroup$ Can you give an example of what exactly is not clear for you? Do you have in mind any practical example? In most cases you run one or few chains, but I am not sure if I understand your question. $\endgroup$ – Tim Dec 20 '15 at 19:10
  • 2
    $\begingroup$ Both option 1 and 2 should work in theory. In the latter case, however, after taking the first sample you will have to run the MCMC long enough before recording the second sample to make sure that the two consecutive samples are not correlated (ideally you want i.i.d. samples). The number of iterations you have to wait in between two consecutive samples depends on how you transit between states. $\endgroup$ – Sobi Dec 20 '15 at 20:34
  • $\begingroup$ The issue is covered in textbooks on MCMC methods, as for instance my book Introducing Monte Carlo Methods with R. Using different chains in parallel suffers from a possible lack of uniform ergodicity. That is, the starting point may still impact the realised value after many iterations. The single chain approach requires to evaluate the number of steps to produce almost independent values. $\endgroup$ – Xi'an Dec 20 '15 at 20:48
  • $\begingroup$ There are different opinions on what works best. Are you looking for 100 samples from the posterior, or 100 effective samples from the posterior? If the Markov chain is not great, 100 samples from one chain will give you very little information. However working with 100 different chains means that you have to chop off burin for all of them separately, which can be exhaustive and impractical. If you are looking for 100 effective samples from the posterior, you can some existing software to find that information. The coda and mcmcse packages in R have functions that calculates this for you. $\endgroup$ – Greenparker Jan 21 '16 at 0:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.