['μ = pm.Normal(\'μ\', mu=0, sigma=10, shape=8)\n    sigma_μ = pm.HalfNormal(\'sigma_μ\', sigma=1)\n    \n    y_obs = pm.Normal(\'y_obs\', mu=μ, sigma=sigma, observed=y)\n    \n    trace = pm.sample(1000, tune=1000, chains=4, return_inferencedata=True, idata_kwargs={"log_likelihood": True})\n\naz.plot_trace(trace)\nplt.show()\n\naz.summary(trace)\naz.plot_posterior(trace, var_names=[\'μ\'])\nplt.show()\naz.plot_posterior(trace, var_names=[\'sigma\'])\nplt.show()\naz.plot_posterior(trace, var_names=[\'sigma_μ\'])\nplt.show()\naz.plot_posterior(trace, var_names=[\'y_obs\'])\nplt.show()\n\n# The code defines a hierarchical Bayesian model for the 8-schools data.\n# It assumes that the school effects (μ) are normally distributed with a mean of 0 and a standard deviation (σ) of 10.\n# The standard deviation of the school effects (σ_μ) is assumed to be half-normal distributed with a standard deviation of 1.\n# The observed outcomes (y) are assumed to be normally distributed with the school effects as the mean and the given standard deviations (σ) as the standard deviation.\n# The model is sampled using the No-U-Turn Sampler (NUTS) with 4 chains and 1000 tun']