{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Discrete parameters\n", "\n", "In this notebook, we discuss pyABC's abilities to deal with discrete parameters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In its Sequential Monte Carlo algorithm, pyABC uses transition kernels $g_t$ that propose parameters for generation $t$ by slightly perturbing parameters that were accepted in generation $t-1$. Thus gradually sampling from a better and better approximation of the posterior, instead of the prior, we can reduce the acceptance threshold $\\varepsilon$ while maintaining high acceptance rates. To account for no longer sampling from the prior $\\pi$, we need to weight particles by $\\pi(\\theta) / g_t(\\theta)$.\n", "\n", "A formal requirement for any transition is that the prior is absolutely continuous with respect to it, i.e. $g_t\\gg\\pi$. This means that any value that has positive mass under the prior can still be sampled under the transition. Other than that, the transition can be arbitrary. Commonly, it should be close to the underlying posterior in order to achieve high acceptance rates. pyABC offers various transitions kernels that adjust automatically to the problem structure and thus deliver high-quality proposals. The default transition kernel `pyabc.MultivariateNormalTransition` as well as the `pyabc.LocalTransition` kernel both employ (localized/recscaled) multivariate normal kernels with adaptive covariance matrices. Therefore, they can learn about parameter scales and correlations.\n", "\n", "However, they can only deal with continuous parameters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sometimes, parameters can only take discrete values and should thus also be modeled as such, e.g. via a discrete integer-valued prior. In that case, the above transitions cannot be applied, as they propose non-integer parameters. The, as far as implementation is concerned, most straightforward way to deal with this is to just round the suggested parameters to the next integer. However, to then obtain statistically correct weights, one would need to integrate the transition density over all values that are rounded to the same value. This can be computationally non-trivial and is also not implemented in pyABC, where one would instead just take the density value at the actually sampled parameters as an approximation, which is not strictly correct.\n", "\n", "To efficiently and correctly deal with discrete parameters, pyABC also implements discrete transitions as classes derived from `pyabc.transition.DiscreteTransition`. Let us show an example:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# install if not done yet\n", "!pip install pyabc --quiet" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "import pyabc\n", "\n", "%matplotlib inline\n", "pyabc.settings.set_figure_params('pyabc') # for beautified plots" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We assume that we have a model with two parameters: A continuous variance parameter, and a mean parameter that can for some reason only take integer values from 0 to 6. To spice things up a little and get a non-trivial posterior distribution, the model randomly perturbs the mean by an offset of $\\pm 2$." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "n_data = 100\n", "\n", "\n", "def model(p):\n", " return {\n", " 'y': p['p_discrete']\n", " + np.random.choice([-2, 0, 2], p=[0.2, 0.5, 0.3])\n", " + p['p_continuous'] * np.random.normal(size=n_data)\n", " }\n", "\n", "\n", "distance = lambda x, x0: sum((x['y'] - x0['y']) ** 2)\n", "p_true = {'p_discrete': 2, 'p_continuous': 0.5}\n", "obs = model(p_true)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot the data\n", "ax = plt.hist(obs['y'])\n", "plt.xlabel(\"Observable y_i\")\n", "plt.ylabel(\"Frequency\")\n", "plt.title(\"Data\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Currently, there are two classes offered. First, there is the `pyabc.DiscreteRandomWalkTransition`, which is similarly also implemented in other tools. First it samples a parameter value from the weighted last generation and then performs a random walk of a fixed number of steps. While it can deal with unbounded discrete domains, it has the disadvantage, that it violates the absolute contiunuity condition and will thus not be further considered here. Let us know if you would like to discuss further details on this.\n", "\n", "Here, we will in the following focus on the second implemented discrete transition, the `pyabc.DiscreteJumpTransition`, which requires a finite domain. It also first samples a parameter value from the weighted last generation, and ensures absolute positivity by with a positive probability `1 - p_stay` move to an arbitrary other value within the domain.\n", "\n", "As we here also have another, continuous, parameter (for which we just use a `pyabc.MultivariateNormalTransition`), we use a `pyabc.AggregatedTransition` to combine both." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# domain of possible discrete values\n", "discrete_domain = np.arange(7)\n", "\n", "# priors\n", "prior = pyabc.Distribution(\n", " p_discrete=pyabc.RV('rv_discrete', values=(discrete_domain, [1 / 7] * 7)),\n", " p_continuous=pyabc.RV('uniform', 0, 2),\n", ")\n", "\n", "# transition kernels\n", "transition = pyabc.AggregatedTransition(\n", " mapping={\n", " 'p_discrete': pyabc.DiscreteJumpTransition(\n", " domain=discrete_domain, p_stay=0.7\n", " ),\n", " 'p_continuous': pyabc.MultivariateNormalTransition(),\n", " }\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The transition kernels adjust to the problem structure via `fit()` functions that are called after each generation.\n", "\n", "Let's run it:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:Sampler:Parallelizing the sampling on 4 cores.\n", "INFO:History:Start \n", "INFO:ABC:Calibration sample before t=0.\n", "INFO:Epsilon:initial epsilon is 532.8985207147157\n", "INFO:ABC:t: 0, eps: 532.8985207147157.\n", "INFO:ABC:Acceptance rate: 1000 / 1943 = 5.1467e-01, ESS=1.0000e+03.\n", "INFO:ABC:t: 1, eps: 246.51277130629907.\n", "INFO:ABC:Acceptance rate: 1000 / 2957 = 3.3818e-01, ESS=9.3208e+02.\n", "INFO:ABC:t: 2, eps: 139.40880503967205.\n", "INFO:ABC:Acceptance rate: 1000 / 4961 = 2.0157e-01, ESS=9.2875e+02.\n", "INFO:ABC:t: 3, eps: 97.37696808219137.\n", "INFO:ABC:Acceptance rate: 1000 / 5822 = 1.7176e-01, ESS=8.5079e+02.\n", "INFO:ABC:t: 4, eps: 43.89834541733582.\n", "INFO:ABC:Acceptance rate: 1000 / 7134 = 1.4017e-01, ESS=9.0801e+02.\n", "INFO:pyabc.util:Stopping: maximum number of generations.\n", "INFO:History:Done \n" ] } ], "source": [ "abc = pyabc.ABCSMC(\n", " model, prior, distance, transitions=transition, population_size=1000\n", ")\n", "abc.new(pyabc.create_sqlite_db_id(), obs)\n", "history = abc.run(max_nr_populations=5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see in the result that we perfectly reproduce the 3 likely mean parameters with their respective probabilities. Over time, the posterior approximation get gradually more accurate." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# some visualizations\n", "fig, axes = plt.subplots(history.max_t + 1, 2, figsize=(6, 12))\n", "for t in range(history.max_t + 1):\n", " pyabc.visualization.plot_kde_1d_highlevel(\n", " history,\n", " 'p_continuous',\n", " t=t,\n", " refval=p_true,\n", " xmin=0,\n", " xmax=2,\n", " ax=axes[t, 0],\n", " )\n", " pyabc.visualization.plot_histogram_1d(\n", " history,\n", " 'p_discrete',\n", " t=t,\n", " bins=np.arange(8),\n", " align='left',\n", " ax=axes[t, 1],\n", " )\n", " axes[t, 0].set_ylabel(f\"Posterior t={t}\")\n", "fig.tight_layout()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 4 }