['μ = pm.Normal(\'μ\', mu=0, sd=10)\n    σ = pm.HalfNormal(\'σ\', sd=10)\n    \n    # Define the likelihood\n    likelihood = pm.Poisson(\'likelihood\', mu=μ + σ, observed=r)\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# Plot the trace\naz.plot_trace(trace)\nplt.show()\n\n# Plot the posterior predictive checks\nwith trace.posterior.stack(chain=True) as sel:\n    az.plot_posterior(sel, kind=\'kde\', fill_kwargs={\'alpha\': 0.5})\n\naz.plot_ppc(trace, alpha=0.2, plot_kwargs={\'color\': \'k\'})\nplt.show()\n\n# Calculate and display the summary statistics\nsummary = az.summary(trace, round_to=2)\nprint(summary)\n\n']