['μ = pm.Normal(\'μ\', mu=0, sd=10)\n    σ = pm.HalfNormal(\'σ\', sd=10)\n    \n    # Define the likelihood\n    likelihood = pm.Poisson(\'likelihood\', mu=N, observed=C)\n    \n    # Sample from the posterior\n    trace = pm.sample(1000, tune=1000, chains=4, return_inferencedata=True, idata_kwargs={"log_likelihood": True})\n    \n# Visualize the posterior distributions\naz.plot_posterior(trace, var_names=[\'μ\', \'σ\'], hdi_prob=0.95);\nplt.show()\n\n# Visualize the observed data and the posterior predictive distribution\nwith m:\n    ppc = pm.sample_posterior_predictive(trace, samples=500, model=m)\n    \nplt.figure(figsize=(10, 6))\nplt.scatter(year, C, label=\'Observed\', color=\'blue\')\nplt.plot(year, az.hdi(ppc[\'likelihood\'], hdi_prob=0.95), label=\'95% HDI\', color=\'red\')\nplt.xlabel(\'Year\')\nplt.ylabel(\'Peregrine Count\')\nplt.title(\'Peregrine Counts with Posterior Predictive Distribution\')\nplt.legend()\nplt.show()\n\n']