|
1 | 1 | { |
2 | 2 | "cells": [ |
| 3 | + { |
| 4 | + "cell_type": "markdown", |
| 5 | + "id": "01fcb38f", |
| 6 | + "metadata": {}, |
| 7 | + "source": [ |
| 8 | + "# Posterior Estimation for SIR-like Models" |
| 9 | + ] |
| 10 | + }, |
3 | 11 | { |
4 | 12 | "cell_type": "markdown", |
5 | 13 | "id": "thirty-canada", |
|
8 | 16 | }, |
9 | 17 | "source": [ |
10 | 18 | "<h1>Table of Contents<span class=\"tocSkip\"></span></h1>\n", |
11 | | - "<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Defining-the-Generative-Model\" data-toc-modified-id=\"Defining-the-Generative-Model-1\"><span class=\"toc-item-num\">1 </span>Defining the Generative Model</a></span><ul class=\"toc-item\"><li><span><a href=\"#Prior\" data-toc-modified-id=\"Prior-1.1\"><span class=\"toc-item-num\">1.1 </span>Prior</a></span></li><li><span><a href=\"#Simulator-(Implicit-Likelihood-Function)\" data-toc-modified-id=\"Simulator-(Implicit-Likelihood-Function)-1.2\"><span class=\"toc-item-num\">1.2 </span>Simulator (Implicit Likelihood Function)</a></span></li><li><span><a href=\"#Loading-Real-Data\" data-toc-modified-id=\"Loading-Real-Data-1.3\"><span class=\"toc-item-num\">1.3 </span>Loading Real Data</a></span></li><li><span><a href=\"#Generative-Model\" data-toc-modified-id=\"Generative-Model-1.4\"><span class=\"toc-item-num\">1.4 </span>Generative Model</a></span></li></ul></li><li><span><a href=\"#Prior-Checking\" data-toc-modified-id=\"Prior-Checking-2\"><span class=\"toc-item-num\">2 </span>Prior Checking</a></span></li><li><span><a href=\"#Defining-the-Neural-Approximator\" data-toc-modified-id=\"Defining-the-Neural-Approximator-3\"><span class=\"toc-item-num\">3 </span>Defining the Neural Approximator</a></span><ul class=\"toc-item\"><li><span><a href=\"#Summary-Network\" data-toc-modified-id=\"Summary-Network-3.1\"><span class=\"toc-item-num\">3.1 </span>Summary Network</a></span></li><li><span><a href=\"#Inference-Network\" data-toc-modified-id=\"Inference-Network-3.2\"><span class=\"toc-item-num\">3.2 </span>Inference Network</a></span></li><li><span><a href=\"#Amortized-Posterior\" data-toc-modified-id=\"Amortized-Posterior-3.3\"><span class=\"toc-item-num\">3.3 </span>Amortized Posterior</a></span></li></ul></li><li><span><a href=\"#Defining-the-Configurator\" data-toc-modified-id=\"Defining-the-Configurator-4\"><span class=\"toc-item-num\">4 </span>Defining the Configurator</a></span></li><li><span><a href=\"#Defining-the-Trainer\" data-toc-modified-id=\"Defining-the-Trainer-5\"><span class=\"toc-item-num\">5 </span>Defining the Trainer</a></span></li><li><span><a href=\"#Training-Phase\" data-toc-modified-id=\"Training-Phase-6\"><span class=\"toc-item-num\">6 </span>Training Phase</a></span><ul class=\"toc-item\"><li><span><a href=\"#Inspecting-the-Loss\" data-toc-modified-id=\"Inspecting-the-Loss-6.1\"><span class=\"toc-item-num\">6.1 </span>Inspecting the Loss</a></span></li></ul></li><li><span><a href=\"#Validation-Phase\" data-toc-modified-id=\"Validation-Phase-7\"><span class=\"toc-item-num\">7 </span>Validation Phase</a></span><ul class=\"toc-item\"><li><span><a href=\"#Inspecting-the-Latent-Space\" data-toc-modified-id=\"Inspecting-the-Latent-Space-7.1\"><span class=\"toc-item-num\">7.1 </span>Inspecting the Latent Space</a></span></li><li><span><a href=\"#Simulation-Based-Calibration---Rank-Histograms\" data-toc-modified-id=\"Simulation-Based-Calibration---Rank-Histograms-7.2\"><span class=\"toc-item-num\">7.2 </span>Simulation-Based Calibration - Rank Histograms</a></span></li><li><span><a href=\"#Simulation-Based-Calibration---Rank-ECDF\" data-toc-modified-id=\"Simulation-Based-Calibration---Rank-ECDF-7.3\"><span class=\"toc-item-num\">7.3 </span>Simulation-Based Calibration - Rank ECDF</a></span></li><li><span><a href=\"#Inferential-Adequacy-(Global)\" data-toc-modified-id=\"Inferential-Adequacy-(Global)-7.4\"><span class=\"toc-item-num\">7.4 </span>Inferential Adequacy (Global)</a></span></li></ul></li><li><span><a href=\"#Inference-Phase\" data-toc-modified-id=\"Inference-Phase-8\"><span class=\"toc-item-num\">8 </span>Inference Phase</a></span><ul class=\"toc-item\"><li><span><a href=\"#Bivariate-Posteriors\" data-toc-modified-id=\"Bivariate-Posteriors-8.1\"><span class=\"toc-item-num\">8.1 </span>Bivariate Posteriors</a></span><ul class=\"toc-item\"><li><span><a href=\"#Standalone\" data-toc-modified-id=\"Standalone-8.1.1\"><span class=\"toc-item-num\">8.1.1 </span>Standalone</a></span></li><li><span><a href=\"#Compared-to-Prior\" data-toc-modified-id=\"Compared-to-Prior-8.1.2\"><span class=\"toc-item-num\">8.1.2 </span>Compared to Prior</a></span></li></ul></li><li><span><a href=\"#Posterior-Retrodictive-Checks\" data-toc-modified-id=\"Posterior-Retrodictive-Checks-8.2\"><span class=\"toc-item-num\">8.2 </span>Posterior Retrodictive Checks</a></span></li></ul></li></ul></div>" |
| 19 | + "<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Introduction\" data-toc-modified-id=\"Introduction-1\"><span class=\"toc-item-num\">1 </span>Introduction</a></span></li><li><span><a href=\"#Defining-the-Generative-Model\" data-toc-modified-id=\"Defining-the-Generative-Model-2\"><span class=\"toc-item-num\">2 </span>Defining the Generative Model</a></span><ul class=\"toc-item\"><li><span><a href=\"#Prior\" data-toc-modified-id=\"Prior-2.1\"><span class=\"toc-item-num\">2.1 </span>Prior</a></span></li><li><span><a href=\"#Simulator-(Implicit-Likelihood-Function)\" data-toc-modified-id=\"Simulator-(Implicit-Likelihood-Function)-2.2\"><span class=\"toc-item-num\">2.2 </span>Simulator (Implicit Likelihood Function)</a></span></li><li><span><a href=\"#Loading-Real-Data\" data-toc-modified-id=\"Loading-Real-Data-2.3\"><span class=\"toc-item-num\">2.3 </span>Loading Real Data</a></span></li><li><span><a href=\"#Generative-Model\" data-toc-modified-id=\"Generative-Model-2.4\"><span class=\"toc-item-num\">2.4 </span>Generative Model</a></span></li></ul></li><li><span><a href=\"#Prior-Checking\" data-toc-modified-id=\"Prior-Checking-3\"><span class=\"toc-item-num\">3 </span>Prior Checking</a></span></li><li><span><a href=\"#Defining-the-Neural-Approximator\" data-toc-modified-id=\"Defining-the-Neural-Approximator-4\"><span class=\"toc-item-num\">4 </span>Defining the Neural Approximator</a></span><ul class=\"toc-item\"><li><span><a href=\"#Summary-Network\" data-toc-modified-id=\"Summary-Network-4.1\"><span class=\"toc-item-num\">4.1 </span>Summary Network</a></span></li><li><span><a href=\"#Inference-Network\" data-toc-modified-id=\"Inference-Network-4.2\"><span class=\"toc-item-num\">4.2 </span>Inference Network</a></span></li><li><span><a href=\"#Amortized-Posterior\" data-toc-modified-id=\"Amortized-Posterior-4.3\"><span class=\"toc-item-num\">4.3 </span>Amortized Posterior</a></span></li></ul></li><li><span><a href=\"#Defining-the-Configurator\" data-toc-modified-id=\"Defining-the-Configurator-5\"><span class=\"toc-item-num\">5 </span>Defining the Configurator</a></span></li><li><span><a href=\"#Defining-the-Trainer\" data-toc-modified-id=\"Defining-the-Trainer-6\"><span class=\"toc-item-num\">6 </span>Defining the Trainer</a></span></li><li><span><a href=\"#Training-Phase\" data-toc-modified-id=\"Training-Phase-7\"><span class=\"toc-item-num\">7 </span>Training Phase</a></span><ul class=\"toc-item\"><li><span><a href=\"#Inspecting-the-Loss\" data-toc-modified-id=\"Inspecting-the-Loss-7.1\"><span class=\"toc-item-num\">7.1 </span>Inspecting the Loss</a></span></li></ul></li><li><span><a href=\"#Validation-Phase\" data-toc-modified-id=\"Validation-Phase-8\"><span class=\"toc-item-num\">8 </span>Validation Phase</a></span><ul class=\"toc-item\"><li><span><a href=\"#Inspecting-the-Latent-Space\" data-toc-modified-id=\"Inspecting-the-Latent-Space-8.1\"><span class=\"toc-item-num\">8.1 </span>Inspecting the Latent Space</a></span></li><li><span><a href=\"#Simulation-Based-Calibration---Rank-Histograms\" data-toc-modified-id=\"Simulation-Based-Calibration---Rank-Histograms-8.2\"><span class=\"toc-item-num\">8.2 </span>Simulation-Based Calibration - Rank Histograms</a></span></li><li><span><a href=\"#Simulation-Based-Calibration---Rank-ECDF\" data-toc-modified-id=\"Simulation-Based-Calibration---Rank-ECDF-8.3\"><span class=\"toc-item-num\">8.3 </span>Simulation-Based Calibration - Rank ECDF</a></span></li><li><span><a href=\"#Inferential-Adequacy-(Global)\" data-toc-modified-id=\"Inferential-Adequacy-(Global)-8.4\"><span class=\"toc-item-num\">8.4 </span>Inferential Adequacy (Global)</a></span></li></ul></li><li><span><a href=\"#Inference-Phase\" data-toc-modified-id=\"Inference-Phase-9\"><span class=\"toc-item-num\">9 </span>Inference Phase</a></span><ul class=\"toc-item\"><li><span><a href=\"#Bivariate-Posteriors\" data-toc-modified-id=\"Bivariate-Posteriors-9.1\"><span class=\"toc-item-num\">9.1 </span>Bivariate Posteriors</a></span><ul class=\"toc-item\"><li><span><a href=\"#Standalone\" data-toc-modified-id=\"Standalone-9.1.1\"><span class=\"toc-item-num\">9.1.1 </span>Standalone</a></span></li><li><span><a href=\"#Compared-to-Prior\" data-toc-modified-id=\"Compared-to-Prior-9.1.2\"><span class=\"toc-item-num\">9.1.2 </span>Compared to Prior</a></span></li></ul></li><li><span><a href=\"#Posterior-Retrodictive-Checks\" data-toc-modified-id=\"Posterior-Retrodictive-Checks-9.2\"><span class=\"toc-item-num\">9.2 </span>Posterior Retrodictive Checks</a></span></li></ul></li></ul></div>" |
12 | 20 | ] |
13 | 21 | }, |
14 | 22 | { |
|
18 | 26 | "metadata": {}, |
19 | 27 | "outputs": [], |
20 | 28 | "source": [ |
21 | | - "import os\n", |
22 | | - "import sys\n", |
23 | | - "\n", |
24 | | - "sys.path.append(os.path.abspath(os.path.join(\"../../..\")))\n", |
25 | 29 | "import datetime\n", |
26 | 30 | "from functools import partial\n", |
27 | 31 | "\n", |
|
40 | 44 | "name": "stderr", |
41 | 45 | "output_type": "stream", |
42 | 46 | "text": [ |
43 | | - "C:\\Users\\Stefan Radev\\Desktop\\Projects\\BayesFlow\\bayesflow\\trainers.py:26: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console)\n", |
| 47 | + "D:\\Anaconda3\\envs\\TensorFlowDev\\lib\\site-packages\\bayesflow\\trainers.py:26: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console)\n", |
44 | 48 | " from tqdm.autonotebook import tqdm\n" |
45 | 49 | ] |
46 | 50 | } |
|
58 | 62 | "id": "polished-warning", |
59 | 63 | "metadata": {}, |
60 | 64 | "source": [ |
61 | | - "<h1>Introduction</h1>\n", |
62 | | - "<br>\n", |
| 65 | + "## Introduction\n", |
| 66 | + "\n", |
63 | 67 | "In this tutorial, we will illustrate how to perform posterior inference on simple, stationary SIR-like models (complex models will be tackled in a further notebook). SIR-like models comprise suitable illustrative examples, since they generate time-series and their outputs represent the results of solving a system of ordinary differential equations (ODEs).\n", |
64 | 68 | "\n", |
65 | 69 | "The details for tackling stochastic epidemiological models are described in our corresponding paper, which you can consult for a more formal exposition and a more comprehensive treatment of neural architectures:\n", |
|
1614 | 1618 | "source": [ |
1615 | 1619 | "That's it for this tutorial! You now know how to use the basic building blocks of `BayesFlow` to create amortized neural approximators. :)\n", |
1616 | 1620 | "\n", |
1617 | | - "In the [next tutorial](./PriorSensitivity_Covid19_Initial.ipynb), we will go through a <strong>prior sensitivity analysis</strong> with `BayesFlow`, which is as easy to perform as it is important for ascertaining the robustness of our inferences." |
| 1621 | + "<!-- In the [next tutorial](./PriorSensitivity_Covid19_Initial.ipynb), we will go through a <strong>prior sensitivity analysis</strong> with `BayesFlow`, which is as easy to perform as it is important for ascertaining the robustness of our inferences. -->" |
1618 | 1622 | ] |
1619 | 1623 | } |
1620 | 1624 | ], |
|
0 commit comments