As I read here, the discrete Metropolis sampler uses a ‘Poisson’ distribution as default.
As explained for the ‘Normal’ proposal distribution, could you give an example how the proposed new value of a variable - according to the Poisson distribution - is created?
Hello! Those are the docs for PyMC2, which is no longer under active development. Here are the docs for the samplers for PyMC3: it looks like we no longer have a DiscreteMetropolis sampler.
Any idea how a new proposed value is chosen for a variable X according to a normal- or Poisson distribution?
I give a try:
Suppose X^{(0)} = A and Val(X) = \{A,B,C\}. In order to sample X^{(1)} according to a normal distribution, we could consider a normal distribution being ‘centered’ on A as making a one-to-one representation of A \to 0, B \to -1 and C \to 1. Then, we can sample a random number u according to a (standard?) normal distribution. We set a border, say \alpha = 0.5 (how to choose a sophisticated one?). If u \leq -\alpha, X^{(1)} = B. If -\alpha \leq u \leq \alpha, X^{(1)} = A. If u \geq \alpha, X^{(1)} = C.
Does this approach make sense? Furthermore, how does the DiscreteMetropolis method work with a Poisson distribution?
In the current implementation the proposal is normal. You can use whatever proposal you want as long as you corrected for bias and make sure the proposal is reversible.