Hi @michaelosthege ,
thank you for the quick response!
However, I am still a little puzzled and would like to ask some follow up questions for clarification.
First off, what I want is to perform Metropolis steps where all the parameters are updated at once instead of being updated sequentially one after another.
Could you elaborate on the detailed balance a little bit?
From my understand, at each step we compute the acceptance ratio

where in my case x={a1, a2} are the parameters of the previous step and x'={a1', a2'} are the new proposed parameters. P(x) is the likelihood and the priors and we already know P(x) from the previous step and need to compute P(x') which requires one forward calculation. Shouldn’t the ratios of the g’s take care of the detailed balance?
Also, you suggested that there will be two Metropolis steppers because I have two input variables a1 and a2 but I noticed the forward calculations is always performed twice, even if I have 3, or any arbitrary number really, of input parameters. If I omit the blocked keyword, I get a separate stepper for each parameter, but each stepper performs two forward calculations again.
Say I have 3 input parameters a1, a2 and a3, and an observed value a4. I will get 3 Metropolis steppers and 6 model evaluations (“Executed” printed to stdout 6 times) per step.
I am just trying to understand what is going on under the hood. I looked at the source code but it was a little overwhelming. So, would be great if you could elaborate a little bit.
Thank you!