It depends on whether each coeffcient was a separate parameter or if you have a parameter array (e.g., betas=pm.Normal("betas, dims="obs_id")). If they are separate, you could just do something along these lines:
mu_pp = (
post["a"] +
post["b1"] * xr.DataArray(predictor_1, dims=["obs_id"] +
post["b2"] * xr.DataArray(predictor_2, dims=["obs_id"] +
post["b3"] * xr.DataArray(predictor_3, dims=["obs_id"]
)
Following that example, however, it would be easier to just save the predicted means like this:
with pm.Model() as model_1:
a = pm.Normal("a", 0.0, 0.5)
b = pm.Normal("b", 0.0, 1.0)
mu = pm.Deterministic("mu", a + b * predictor_scaled)
sigma = pm.Exponential("sigma", 1.0)
pm.Normal("obs", mu=mu, sigma=sigma, observed=outcome_scaled)
idata = pm.sample_prior_predictive(samples=50, random_seed=rng)
And then you should be able to do something like this:
plt.scatter(predictor_scaled, post["mu"].mean(("chain", "draw")))
Not 100% on any of that code running as-is, but should get you started. If not, feel free to ask.