Hi Marco,
I wonder if the addition in pi_obs, mu_obs and sigma_obs of the sigma=1. term is causing this? It could be introducing so much noise that there is only a weak link to the parent distributions. May I ask why you don’t directly define pi_obs = 1 - ((1-pi_real)*(1-pi_bias))? Is it to keep some kinds of constraints? If so, I wonder if there would be a neater way of doing that.
For a start, though, to see if this is really the issue perhaps you could try setting sigma to something really small, maybe sigma=0.00001, so:
# combination of parameters (prod of lognormally distributed)
pi_obs = confinedNormal('pi_obs', mu=1-((1-pi_real)*(1-pi_bias)), sigma=1e-5, shape=n_raters)
mu_obs = positiveNormal('mu_obs', mu=mu_real + mu_bias, sigma=1e-5, shape=n_raters)
sigma_obs = positiveNormal('sigma_obs', mu=pm.math.sqrt(pm.math.sqr(sigma_real)+pm.math.sqr(sigma_bias)),
sigma=1e-5, shape=n_raters)
Curious to hear if that makes a difference!
Best wishes,
Martin