If you check out the Prior/Posterior Predictive notebook you’ll see the conventional workflow. Something along these lines:
with pm.Model() as model:
a = pm.Normal("a", 0.0, 0.5)
b = pm.Normal("b", 0.0, 1.0)
sigma = pm.Exponential("sigma", 1.0)
obs = pm.Normal("obs", mu=a+b, sigma=sigma, observed=outcome_scaled)
# sample from the prior
idata = pm.sample_prior_predictive()
with model:
# sample from the posterior and add to the existing idata object
idata.extend(pm.sample())