|
3218 | 3218 | }
|
3219 | 3219 | ],
|
3220 | 3220 | "source": [
|
3221 |
| - "test_scores = pd.read_csv(pm.get_data('test_scores.csv'), index_col=0)\n", |
| 3221 | + "test_scores = pd.read_csv(pm.get_data(\"test_scores.csv\"), index_col=0)\n", |
3222 | 3222 | "test_scores.head()"
|
3223 | 3223 | ]
|
3224 | 3224 | },
|
|
3295 | 3295 | "metadata": {},
|
3296 | 3296 | "outputs": [],
|
3297 | 3297 | "source": [
|
3298 |
| - "D0 = int(D/2)" |
| 3298 | + "D0 = int(D / 2)" |
3299 | 3299 | ]
|
3300 | 3300 | },
|
3301 | 3301 | {
|
|
3347 | 3347 | "source": [
|
3348 | 3348 | "import aesara.tensor as at\n",
|
3349 | 3349 | "\n",
|
3350 |
| - "with pm.Model(coords={\"predictors\":X.columns.values}) as test_score_model:\n", |
| 3350 | + "with pm.Model(coords={\"predictors\": X.columns.values}) as test_score_model:\n", |
3351 | 3351 | "\n",
|
3352 | 3352 | " # Prior on error SD\n",
|
3353 | 3353 | " sigma = pm.HalfNormal(\"sigma\", 25)\n",
|
|
3357 | 3357 | " # Local shrinkage prior\n",
|
3358 | 3358 | " lam = pm.HalfStudentT(\"lam\", 2, dims=\"predictors\")\n",
|
3359 | 3359 | " c2 = pm.InverseGamma(\"c2\", 1, 0.1)\n",
|
3360 |
| - " z = pm.Normal(\"z\", 0., 1., dims=\"predictors\")\n", |
| 3360 | + " z = pm.Normal(\"z\", 0.0, 1.0, dims=\"predictors\")\n", |
3361 | 3361 | " # Shrunken coefficients\n",
|
3362 |
| - " beta = pm.Deterministic(\"beta\", z * tau * lam * at.sqrt(c2 / (c2 + tau**2 * lam**2)), dims=\"predictors\")\n", |
| 3362 | + " beta = pm.Deterministic(\n", |
| 3363 | + " \"beta\", z * tau * lam * at.sqrt(c2 / (c2 + tau**2 * lam**2)), dims=\"predictors\"\n", |
| 3364 | + " )\n", |
3363 | 3365 | " # No shrinkage on intercept\n",
|
3364 |
| - " beta0 = pm.Normal(\"beta0\", 100, 25.)\n", |
3365 |
| - " \n", |
| 3366 | + " beta0 = pm.Normal(\"beta0\", 100, 25.0)\n", |
| 3367 | + "\n", |
3366 | 3368 | " scores = pm.Normal(\"scores\", beta0 + at.dot(X.values, beta), sigma, observed=y.values)"
|
3367 | 3369 | ]
|
3368 | 3370 | },
|
|
3579 | 3581 | }
|
3580 | 3582 | ],
|
3581 | 3583 | "source": [
|
3582 |
| - "az.plot_dist(test_scores[\"score\"].values, kind=\"hist\", color=\"C1\", hist_kwargs=dict(alpha=0.6), label=\"observed\")\n", |
3583 |
| - "az.plot_dist(prior_samples.prior_predictive[\"scores\"], kind=\"hist\", hist_kwargs=dict(alpha=0.6), label=\"simulated\");\n", |
| 3584 | + "az.plot_dist(\n", |
| 3585 | + " test_scores[\"score\"].values,\n", |
| 3586 | + " kind=\"hist\",\n", |
| 3587 | + " color=\"C1\",\n", |
| 3588 | + " hist_kwargs=dict(alpha=0.6),\n", |
| 3589 | + " label=\"observed\",\n", |
| 3590 | + ")\n", |
| 3591 | + "az.plot_dist(\n", |
| 3592 | + " prior_samples.prior_predictive[\"scores\"],\n", |
| 3593 | + " kind=\"hist\",\n", |
| 3594 | + " hist_kwargs=dict(alpha=0.6),\n", |
| 3595 | + " label=\"simulated\",\n", |
| 3596 | + ")\n", |
3584 | 3597 | "plt.xticks(rotation=45);"
|
3585 | 3598 | ]
|
3586 | 3599 | },
|
|
3941 | 3954 | "source": [
|
3942 | 3955 | "with pm.Model() as disaster_model:\n",
|
3943 | 3956 | "\n",
|
3944 |
| - " switchpoint = pm.DiscreteUniform(\n", |
3945 |
| - " \"switchpoint\", lower=years.min(), upper=years.max()\n", |
3946 |
| - " )\n", |
| 3957 | + " switchpoint = pm.DiscreteUniform(\"switchpoint\", lower=years.min(), upper=years.max())\n", |
3947 | 3958 | "\n",
|
3948 | 3959 | " # Priors for pre- and post-switch rates number of disasters\n",
|
3949 | 3960 | " early_rate = pm.Exponential(\"early_rate\", 1.0)\n",
|
|
4071 | 4082 | " labels = [label.get_text() for label in ax.get_xticklabels()]\n",
|
4072 | 4083 | " ax.set_xticklabels(labels, rotation=45, ha=\"right\")\n",
|
4073 | 4084 | " break\n",
|
4074 |
| - "plt.draw()\n" |
| 4085 | + "plt.draw()" |
4075 | 4086 | ]
|
4076 | 4087 | },
|
4077 | 4088 | {
|
|
4146 | 4157 | "metadata": {},
|
4147 | 4158 | "outputs": [],
|
4148 | 4159 | "source": [
|
4149 |
| - "\n", |
4150 | 4160 | "from aesara.compile.ops import as_op\n",
|
4151 | 4161 | "\n",
|
| 4162 | + "\n", |
4152 | 4163 | "@as_op(itypes=[at.lscalar], otypes=[at.lscalar])\n",
|
4153 | 4164 | "def crazy_modulo3(value):\n",
|
4154 | 4165 | " if value > 0:\n",
|
|
4218 | 4229 | " raise NotImplementedError(\"Cannot sample from beta variable\")\n",
|
4219 | 4230 | "\n",
|
4220 | 4231 | "\n",
|
4221 |
| - "beta = BetaRV()\n" |
| 4232 | + "beta = BetaRV()" |
4222 | 4233 | ]
|
4223 | 4234 | },
|
4224 | 4235 | {
|
|
4232 | 4243 | " rv_op = beta\n",
|
4233 | 4244 | "\n",
|
4234 | 4245 | " @classmethod\n",
|
4235 |
| - " def dist(cls, mu=0, **kwargs): \n", |
| 4246 | + " def dist(cls, mu=0, **kwargs):\n", |
4236 | 4247 | " mu = at.as_tensor_variable(mu)\n",
|
4237 | 4248 | " return super().dist([mu], **kwargs)\n",
|
4238 | 4249 | "\n",
|
4239 |
| - "\n", |
4240 | 4250 | " def logp(self, value):\n",
|
4241 | 4251 | " mu = self.mu\n",
|
4242 | 4252 | " return beta_logp(value - mu)\n",
|
|
0 commit comments