Apparent pathological behavior

Got to the bottom of it. Turns out my priors weren’t informative enough (as you suggested) and the three level hierarchy wasn’t necessary. The below model finds a pretty good solution to the inverse problem without sacrificing too much robustness (due to the tight prior information).

with pm.Model() as ERTModel:
    pr_vec = pm.Normal('pr_vec', mu=0., sd=1., shape=np)
    yr = pm.Deterministic('yr', reducedOp(pr_vec))
    sigma = pm.HalfNormal('sigma', sd=0.5)
    y_rec = pm.Normal('y_rec', mu=yr, sd=sigma, observed=y_obs)
    trace = pm.sample(2000, tune=2000, cores=2, nuts_kwargs=dict(target_accept=.85, max_treedepth=10))
1 Like