|
27 | 27 | "import pandas as pd\n",
|
28 | 28 | "import pymc3 as pm\n",
|
29 | 29 | "\n",
|
30 |
| - "print(f'Running on PyMC3 v{pm.__version__}')" |
| 30 | + "print(f\"Running on PyMC3 v{pm.__version__}\")" |
31 | 31 | ]
|
32 | 32 | },
|
33 | 33 | {
|
|
37 | 37 | "outputs": [],
|
38 | 38 | "source": [
|
39 | 39 | "%config InlineBackend.figure_format = 'retina'\n",
|
40 |
| - "az.style.use('arviz-darkgrid')" |
| 40 | + "az.style.use(\"arviz-darkgrid\")" |
41 | 41 | ]
|
42 | 42 | },
|
43 | 43 | {
|
|
94 | 94 | }
|
95 | 95 | ],
|
96 | 96 | "source": [
|
| 97 | + "# fmt: off\n", |
97 | 98 | "drug = (101,100,102,104,102,97,105,105,98,101,100,123,105,103,100,95,102,106,\n",
|
98 | 99 | " 109,102,82,102,100,102,102,101,102,102,103,103,97,97,103,101,97,104,\n",
|
99 | 100 | " 96,103,124,101,101,100,101,101,104,100,101)\n",
|
100 | 101 | "placebo = (99,101,100,101,102,100,97,101,104,101,102,102,100,105,88,101,100,\n",
|
101 | 102 | " 104,100,100,100,101,102,103,97,101,101,100,101,99,101,100,100,\n",
|
102 | 103 | " 101,100,99,101,100,102,99,100,99)\n",
|
| 104 | + "# fmt: on\n", |
103 | 105 | "\n",
|
104 | 106 | "y1 = np.array(drug)\n",
|
105 | 107 | "y2 = np.array(placebo)\n",
|
106 |
| - "y = pd.DataFrame(dict(value=np.r_[y1, y2], group=np.r_[['drug']*len(drug), ['placebo']*len(placebo)]))\n", |
| 108 | + "y = pd.DataFrame(\n", |
| 109 | + " dict(value=np.r_[y1, y2], group=np.r_[[\"drug\"] * len(drug), [\"placebo\"] * len(placebo)])\n", |
| 110 | + ")\n", |
107 | 111 | "\n",
|
108 |
| - "y.hist('value', by='group', figsize=(12, 4));" |
| 112 | + "y.hist(\"value\", by=\"group\", figsize=(12, 4));" |
109 | 113 | ]
|
110 | 114 | },
|
111 | 115 | {
|
|
146 | 150 | "μ_s = y.value.std() * 2\n",
|
147 | 151 | "\n",
|
148 | 152 | "with pm.Model() as model:\n",
|
149 |
| - " group1_mean = pm.Normal('group1_mean', mu=μ_m, sd=μ_s)\n", |
150 |
| - " group2_mean = pm.Normal('group2_mean', mu=μ_m, sd=μ_s)" |
| 153 | + " group1_mean = pm.Normal(\"group1_mean\", mu=μ_m, sd=μ_s)\n", |
| 154 | + " group2_mean = pm.Normal(\"group2_mean\", mu=μ_m, sd=μ_s)" |
151 | 155 | ]
|
152 | 156 | },
|
153 | 157 | {
|
|
176 | 180 | "σ_high = 10\n",
|
177 | 181 | "\n",
|
178 | 182 | "with model:\n",
|
179 |
| - " group1_std = pm.Uniform('group1_std', lower=σ_low, upper=σ_high)\n", |
180 |
| - " group2_std = pm.Uniform('group2_std', lower=σ_low, upper=σ_high)" |
| 183 | + " group1_std = pm.Uniform(\"group1_std\", lower=σ_low, upper=σ_high)\n", |
| 184 | + " group2_std = pm.Uniform(\"group2_std\", lower=σ_low, upper=σ_high)" |
181 | 185 | ]
|
182 | 186 | },
|
183 | 187 | {
|
|
210 | 214 | ],
|
211 | 215 | "source": [
|
212 | 216 | "with model:\n",
|
213 |
| - " ν = pm.Exponential('ν_minus_one', 1/29.) + 1\n", |
| 217 | + " ν = pm.Exponential(\"ν_minus_one\", 1 / 29.0) + 1\n", |
214 | 218 | "\n",
|
215 |
| - "pm.kdeplot(np.random.exponential(30, size=10000), fill_kwargs={'alpha': 0.5});" |
| 219 | + "pm.kdeplot(np.random.exponential(30, size=10000), fill_kwargs={\"alpha\": 0.5});" |
216 | 220 | ]
|
217 | 221 | },
|
218 | 222 | {
|
|
234 | 238 | "outputs": [],
|
235 | 239 | "source": [
|
236 | 240 | "with model:\n",
|
237 |
| - " λ1 = group1_std**-2\n", |
238 |
| - " λ2 = group2_std**-2\n", |
| 241 | + " λ1 = group1_std ** -2\n", |
| 242 | + " λ2 = group2_std ** -2\n", |
239 | 243 | "\n",
|
240 |
| - " group1 = pm.StudentT('drug', nu=ν, mu=group1_mean, lam=λ1, observed=y1)\n", |
241 |
| - " group2 = pm.StudentT('placebo', nu=ν, mu=group2_mean, lam=λ2, observed=y2)" |
| 244 | + " group1 = pm.StudentT(\"drug\", nu=ν, mu=group1_mean, lam=λ1, observed=y1)\n", |
| 245 | + " group2 = pm.StudentT(\"placebo\", nu=ν, mu=group2_mean, lam=λ2, observed=y2)" |
242 | 246 | ]
|
243 | 247 | },
|
244 | 248 | {
|
|
262 | 266 | "outputs": [],
|
263 | 267 | "source": [
|
264 | 268 | "with model:\n",
|
265 |
| - " diff_of_means = pm.Deterministic('difference of means', group1_mean - group2_mean)\n", |
266 |
| - " diff_of_stds = pm.Deterministic('difference of stds', group1_std - group2_std)\n", |
267 |
| - " effect_size = pm.Deterministic('effect size', \n", |
268 |
| - " diff_of_means / np.sqrt((group1_std**2 + group2_std**2) / 2))" |
| 269 | + " diff_of_means = pm.Deterministic(\"difference of means\", group1_mean - group2_mean)\n", |
| 270 | + " diff_of_stds = pm.Deterministic(\"difference of stds\", group1_std - group2_std)\n", |
| 271 | + " effect_size = pm.Deterministic(\n", |
| 272 | + " \"effect size\", diff_of_means / np.sqrt((group1_std ** 2 + group2_std ** 2) / 2)\n", |
| 273 | + " )" |
269 | 274 | ]
|
270 | 275 | },
|
271 | 276 | {
|
|
369 | 374 | }
|
370 | 375 | ],
|
371 | 376 | "source": [
|
372 |
| - "pm.plot_posterior(trace, var_names=['group1_mean','group2_mean', 'group1_std', 'group2_std', 'ν_minus_one'],\n", |
373 |
| - " color='#87ceeb');" |
| 377 | + "pm.plot_posterior(\n", |
| 378 | + " trace,\n", |
| 379 | + " var_names=[\"group1_mean\", \"group2_mean\", \"group1_std\", \"group2_std\", \"ν_minus_one\"],\n", |
| 380 | + " color=\"#87ceeb\",\n", |
| 381 | + ");" |
374 | 382 | ]
|
375 | 383 | },
|
376 | 384 | {
|
|
412 | 420 | }
|
413 | 421 | ],
|
414 | 422 | "source": [
|
415 |
| - "pm.plot_posterior(trace, var_names=['difference of means','difference of stds', 'effect size'],\n", |
416 |
| - " ref_val=0,\n", |
417 |
| - " color='#87ceeb');" |
| 423 | + "pm.plot_posterior(\n", |
| 424 | + " trace,\n", |
| 425 | + " var_names=[\"difference of means\", \"difference of stds\", \"effect size\"],\n", |
| 426 | + " ref_val=0,\n", |
| 427 | + " color=\"#87ceeb\",\n", |
| 428 | + ");" |
418 | 429 | ]
|
419 | 430 | },
|
420 | 431 | {
|
|
454 | 465 | }
|
455 | 466 | ],
|
456 | 467 | "source": [
|
457 |
| - "pm.forestplot(trace, var_names=['group1_mean',\n", |
458 |
| - " 'group2_mean']);" |
| 468 | + "pm.forestplot(trace, var_names=[\"group1_mean\", \"group2_mean\"]);" |
459 | 469 | ]
|
460 | 470 | },
|
461 | 471 | {
|
|
488 | 498 | }
|
489 | 499 | ],
|
490 | 500 | "source": [
|
491 |
| - "pm.forestplot(trace, var_names=['group1_std',\n", |
492 |
| - " 'group2_std',\n", |
493 |
| - " 'ν_minus_one']);" |
| 501 | + "pm.forestplot(trace, var_names=[\"group1_std\", \"group2_std\", \"ν_minus_one\"]);" |
494 | 502 | ]
|
495 | 503 | },
|
496 | 504 | {
|
|
607 | 615 | }
|
608 | 616 | ],
|
609 | 617 | "source": [
|
610 |
| - "pm.summary(trace, varnames=['difference of means', 'difference of stds', 'effect size'])" |
| 618 | + "pm.summary(trace, varnames=[\"difference of means\", \"difference of stds\", \"effect size\"])" |
611 | 619 | ]
|
612 | 620 | },
|
613 | 621 | {
|
|
0 commit comments