Metropolis Hastings with proposal of different support

25 Views Asked by At

I've been studying Metropolis Hastings and there is category of problems that troubles me. One approach that I usually use is the following:

Given a previous accepted sample $x_t$ I generate a new proposal $x^*$ as: $$x^*=x_t \ + \ u, \quad u\sim\mathbf{U}(-\delta, \delta)$$

Then I move on to the rest steps of the algorithm. This works for all cases when the domain of the function is $(-\infty, \infty)$.

Question

How do I alter the above approach if the domain (of the distribution that I want to simulate) is bounded, like $(0, \infty)$.

If possible in the alternative approach, I'd rather keep using the uniform distribution for the generation. My main question is how to account for different domains between the proposal and the desired distribution.

Some Ideas

Forcing the domain

From some examples that I've seen (which I'm having trouble to find), I came up with the following approach. This may or may not be correct so I would like some feedback here.

Given a previous accepted sample $x_t$ I generate a new proposal $x^*$ as: $$x^*=x_t \ + \ u_b \\ u_b \sim \mathbf{U}(-\delta, \delta),\quad \text{if} \quad x_t - \delta > 0 \\ u_b \sim \mathbf{U}(0, 2\delta),\quad \text{if} \quad x_t - \delta \leq 0 $$

This way I'm making sure that no invalid proposal will appear.

Rejecting invalid proposals

If a proposal in $(-\infty, 0)$ is indeed drawn, I think I'm safe because in the next step, the ratio $a$ will force me to accept the previous $x_t$ as the next sample (correct me if I'm wrong). However, in this way I might be increasing the "density" of samples around $x=0$ even though they could belong to an area of the distribution that has low probability densities (observations unlikely to occur).

One simple adjustment, instead of accepting $x_t$ again, would be to keep generating until I draw a valid $x^*$.

1

There are 1 best solutions below

0
On BEST ANSWER

Both of those are valid. You can avoid proposing in the region $(-\infty, 0)$ and propose points around $0$ by tweaking the "forcing the domain" example. You could use $$\textrm{Given } x_t > 0, \textrm{ propose } x^* = x_t + u_b,$$ where $$u_b \sim \begin{cases} U(-\delta, \delta) & \text{if } x_t - \delta > 0,\\ U(-x_t, -x_t + 2\delta) & \text{if } x_t - \delta \leq 0. \end{cases}$$