in a situation where I’m using non-blocked compound metropolis-hastings (ie: it looks like this:
> Multiprocess sampling (8 chains in 8 jobs) > CompoundStep > Metropolis: [A] > Metropolis: [B] > Metropolis: [C] > Metropolis: [D]
etc), it’s not 100% clear to me exactly what’s going on under the hood as the backend code is a bit abstracted out.
Is this a component-wise MH algorithm, where each continuous variable has a separate and independent univariate proposal distribution, and the overall proposal vector is updated component-wise, with each element being accepted or rejected in a loop sequentially? Or is it something else?
If it’s doing something like the above, does each univariate proposal get a separate scaling factor (via
tune) to keep the acceptance probability in the right range? So basically, you’d keep acceptance statistics for each component separately over the tuning window, and then update each of the proposal scaling scalars (in this case, 4 of them) separately.