0

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:

  1. Construct a proposal which always remains within the prior support
  2. 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?

J.Galt
  • 409
  • 2
  • 9
  • 4
    I'm not sure what scheme you are describing. I'll assume you are using Metropolis-Hastings. If you sample from a proposal $q(\theta \mid \theta_0)$ repeatedly until you get a $\theta \in S$, then you are really using the truncated proposal $q(\theta \mid \theta_0) I(\theta \in S) / Q(\theta \in S \mid \theta_0)$. The acceptance ratio would then depend on $Q(\theta \in S \mid \theta_0) / Q(\theta_0 \in S \mid \theta)$, which presumably would not be easy to calculate. There may be clever ways of getting around this issue, but it's not as simple as just ignoring the rejected proposals. – guy Mar 11 '21 at 23:59
  • Good point, I hadn't thought of the possibility that this process might break the symmetry of the proposal, and that it would be difficult to quantify this asymmetry. Thanks for the answer! – J.Galt Mar 12 '21 at 00:17
  • 1
    You cannot reject without repeating the previous value, unless you know the constant in the truncated distribution. Which is a rather rare situation. – Xi'an Mar 13 '21 at 18:44

1 Answers1

1

If $\mathfrak R$ denotes the (non-trivial) support of the target distribution, $\pi(\cdot)$, i.e.$$\int_{\mathfrak R}\pi(x)\,\text dx = 1,$$ and if $q(x,x^\prime)$ is the density of the proposal distribution, "rejecting all samples outside the prior support without appending them to the chain"${}^1$ means simulating from $q(x,x^\prime)$ until $x^\prime\in\mathfrak R$, i.e., simulating from $q(x,x^\prime)$ restricted to $\mathfrak R$, with density $$q(x,x^\prime)\big/\mathbb P(X^\prime\in\mathfrak R|x)$$ Therefore the acceptance probability should be $$ \dfrac{\pi(x^\prime)}{\pi(x)} \times \dfrac{q(x^\prime,x)}{q(x,x^\prime)}\times\dfrac{\mathbb P(X^\prime\in\mathfrak R|x)}{\mathbb P(X\in\mathfrak R|x^\prime)}$$ Unfortunately the probabilities $\mathbb P(X^\prime\in\mathfrak R|x)$ and $\mathbb P(X\in\mathfrak R|x^\prime)$ are generally intractable (but can be estimated by unbiased estimators, leading to a pseudo-marginal resolution).


${}^1$which I understand as rejecting proposals outside the prior support $\mathfrak R$ without duplicating the current value of the Markov chain.

Xi'an
  • 90,397
  • 9
  • 157
  • 575