Hi Everyone,

Based on my understanding, the value of mh_jscale is used to adjust the acceptance ratio. if the ratio is too low, we decrease the value of mh_jscale. if it is too high, we increase the value. I tried many times, and this worked well. However, there are several times, when I decreased the value, the ration was even lower than before. I was wondering why this happened.

Second, what role does mh_jscale play except for affecting acceptance ratio?

Thank you,

Alex

During Bayesian estimation your goal is to find the posterior distribution of parameters as a combination of your prior knowledge (distribution) and the data. For this, and no matter what estimation algorithm you are using, you want to change your parameters at each step and see whether the likelihood increases or not, in very simple terms. This is where the mh_jscale parameter comes in. Usually, researchers try to aim for an acceptance ratio of ~30%. This means that around 30% of the time when you update your parameters you accept them, think Metropolis-Hastings. Each new draw must come from a positive definite covariance matrix and what mh_jscale does is to premultiply this matrix to scale the size of the updates for each parameter to achieve the desired goal of ~30% acceptance. This means that, like you said, increasing this scale parameter increases the step size and thus makes it more unlikely that updates are getting accepted, thus lowering the acceptance ratio, and vice-versa.

Now, of course it matters a great deal in practice what covariance matrix you are using, which is why people spend a lot of time finding one that works well.

I hope this helped

1 Like

Thank you stefan for answering my questions. I really appreciate it. Alex