I wish to implement a MCMC procedure for a posterior density which has non-trivial prior support. To clarify, this means that the parameter space has certain regions (i.e., combinations of parameters) which are invalid and hence have zero prior probability density, resulting in immediate rejection. Unfortunately, it is not possible for me to delineate these regions in advance, but I can determine whether a proposal is within or outside the prior support for any given position of parameter space.
There has been a similar question on this stackexchange, but for a significantly more trivial support. An answer suggested several possible ways to address this issue, which can essentially be summarized as two different approaches:
- Construct a proposal which always remains within the prior support
- Simply reject all samples outside the prior support, but still append them to the chain
In my case, approach (1) is impossible to implement (since we cannot delineate the support), and approach (2) can yield extremely low acceptance rates, since many samples are rejected purely based on violating the prior support. Both approaches, however, seem to be conceptually very different: (1) avoids violating the prior support altogether, and (2) ignores the prior support for purpose of the proposal.
Now my question:
Would it be valid to combine approaches (1) and (2) by making indiscriminate proposals (like in (2)), but rejecting all samples outside the prior support without appending them to the chain?
Conceptually, another way to look at this is that it would essentially be a proposal within the support (like in (1)). In this case, however, we don't sample directly from the support, but sample indiscriminately and reject all proposals until we find one within the prior support. Similarly, for example, we could sample from a standard Gaussian whose support is truncated at zero and limited to the positive half-plane by simply sampling from a standard Gaussian until we get a sample which is positive.
If this approach is not valid, why?