From 8e21327ebe420fa1cd9e0b1c1c95fe42330a76c8 Mon Sep 17 00:00:00 2001 From: Ricardo Vieira Date: Tue, 15 Nov 2022 17:34:32 +0100 Subject: [PATCH 1/3] Update PyMC dependency --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 48d2355a..8d19789a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -pymc>=4.3.0 +pymc>=4.4.0 From 1c4315b287e0efc0407eb5e9b0516a9a9713ebfe Mon Sep 17 00:00:00 2001 From: Ricardo Vieira Date: Tue, 22 Nov 2022 11:38:19 +0100 Subject: [PATCH 2/3] Add pytest slow mark --- conftest.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 conftest.py diff --git a/conftest.py b/conftest.py new file mode 100644 index 00000000..3178a8fd --- /dev/null +++ b/conftest.py @@ -0,0 +1,19 @@ +import pytest + + +def pytest_addoption(parser): + parser.addoption("--runslow", action="store_true", default=False, help="run slow tests") + + +def pytest_configure(config): + config.addinivalue_line("markers", "slow: mark test as slow to run") + + +def pytest_collection_modifyitems(config, items): + if config.getoption("--runslow"): + # --runslow given in cli: do not skip slow tests + return + skip_slow = pytest.mark.skip(reason="need --runslow option to run") + for item in items: + if "slow" in item.keywords: + item.add_marker(skip_slow) From c0f622cb7cd2aca2d547d86ec0d58be58b4a4a9f Mon Sep 17 00:00:00 2001 From: Ricardo Vieira Date: Mon, 14 Nov 2022 18:57:24 +0100 Subject: [PATCH 3/3] Automatic logp marginalization of finite discrete variables --- .../marginalized_changepoint_model.ipynb | 821 ++++++++++++++++++ pymc_experimental/__init__.py | 1 + pymc_experimental/marginal_model.py | 477 ++++++++++ .../tests/test_marginal_model.py | 410 +++++++++ 4 files changed, 1709 insertions(+) create mode 100644 notebooks/marginalized_changepoint_model.ipynb create mode 100644 pymc_experimental/marginal_model.py create mode 100644 pymc_experimental/tests/test_marginal_model.py diff --git a/notebooks/marginalized_changepoint_model.ipynb b/notebooks/marginalized_changepoint_model.ipynb new file mode 100644 index 00000000..e0bd9cb1 --- /dev/null +++ b/notebooks/marginalized_changepoint_model.ipynb @@ -0,0 +1,821 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pymc as pm\n", + "from pymc_experimental.marginal_model import MarginalModel\n", + "import pandas as pd\n", + "import numpy as np\n", + "import arviz as az" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The original model" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# TODO: Try to handle np.nan\n", + "# fmt: off\n", + "disaster_data = pd.Series(\n", + " [4, 5, 4, 0, 1, 4, 3, 4, 0, 6, 3, 3, 4, 0, 2, 6,\n", + " 3, 3, 5, 4, 5, 3, 1, 4, 4, 1, 5, 5, 3, 4, 2, 5,\n", + " 2, 2, 3, 4, 2, 1, 3, np.nan, 2, 1, 1, 1, 1, 3, 0, 0,\n", + " 1, 0, 1, 1, 0, 0, 3, 1, 0, 3, 2, 2, 0, 1, 1, 1,\n", + " 0, 1, 0, 1, 0, 0, 0, 2, 1, 0, 0, 0, 1, 1, 0, 2,\n", + " 3, 3, 1, np.nan, 2, 1, 1, 1, 1, 2, 4, 2, 0, 0, 1, 4,\n", + " 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1]\n", + ")\n", + "# fmt: on\n", + "\n", + "years = np.arange(1851, 1962)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/ricardo/Documents/Projects/pymc/pymc/model.py:1378: ImputationWarning: Data in disasters contains missing values and will be automatically imputed from the sampling distribution.\n", + " warnings.warn(impute_message, ImputationWarning)\n" + ] + } + ], + "source": [ + "with MarginalModel() as disaster_model:\n", + " switchpoint = pm.DiscreteUniform(\"switchpoint\", lower=years.min(), upper=years.max())\n", + "\n", + " early_rate = pm.Exponential(\"early_rate\", 1.0)\n", + " late_rate = pm.Exponential(\"late_rate\", 1.0)\n", + " rate = pm.math.switch(switchpoint >= years, early_rate, late_rate)\n", + "\n", + " disasters = pm.Poisson(\"disasters\", rate, observed=disaster_data)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "cluster2\n", + "\n", + "2\n", + "\n", + "\n", + "cluster109\n", + "\n", + "109\n", + "\n", + "\n", + "cluster111\n", + "\n", + "111\n", + "\n", + "\n", + "\n", + "switchpoint\n", + "\n", + "switchpoint\n", + "~\n", + "DiscreteUniform\n", + "\n", + "\n", + "\n", + "disasters_missing\n", + "\n", + "disasters_missing\n", + "~\n", + "Poisson\n", + "\n", + "\n", + "\n", + "switchpoint->disasters_missing\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "disasters_observed\n", + "\n", + "disasters_observed\n", + "~\n", + "Poisson\n", + "\n", + "\n", + "\n", + "switchpoint->disasters_observed\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "early_rate\n", + "\n", + "early_rate\n", + "~\n", + "Exponential\n", + "\n", + "\n", + "\n", + "early_rate->disasters_missing\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "early_rate->disasters_observed\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "late_rate\n", + "\n", + "late_rate\n", + "~\n", + "Exponential\n", + "\n", + "\n", + "\n", + "late_rate->disasters_missing\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "late_rate->disasters_observed\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "disasters\n", + "\n", + "disasters\n", + "~\n", + "Deterministic\n", + "\n", + "\n", + "\n", + "disasters_missing->disasters\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "disasters_observed->disasters\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pm.model_to_graphviz(disaster_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Multiprocess sampling (4 chains in 4 jobs)\n", + "CompoundStep\n", + ">CompoundStep\n", + ">>Metropolis: [switchpoint]\n", + ">>Metropolis: [disasters_missing]\n", + ">NUTS: [early_rate, late_rate]\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + " 100.00% [8000/8000 00:05<00:00 Sampling 4 chains, 0 divergences]\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Sampling 4 chains for 1_000 tune and 1_000 draw iterations (4_000 + 4_000 draws total) took 6 seconds.\n" + ] + } + ], + "source": [ + "with disaster_model:\n", + " trace = pm.sample()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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7JOamqp33333rDe7zubll1/W0aNHK7y+d+/esqfvK7tRV9dU97N9++23tW/fvgrHOXXqlH7//fcK+9e0q6++WoGBgYqLi9MTTzxR7vt67969+ve//11r5wYANCyspVhLVQVrKQAAAAAAAACofxjvBdO5urrqiy++0BVXXKFXXnlF8+fPV48ePZScnKzo6GiNHTtWmzdvrtKIh5iYGN1///3y8vJS165dFRQUpJycHG3ZskVHjhyRt7d3uRsE06ZN0+uvv66tW7eqRYsWGjBggOzt7bVq1Srl5OTovvvu0+uvv17uHKmpqbrtttt09913q3PnzmrRooUk6/iKrVu3ymKx6KWXXpK9vX3Ze6688ko988wz+t///qedO3cqJCREdnZ2GjdunMaNGyc7OzvNnz9fo0eP1pw5czRv3jx16tRJzZs3V35+vg4fPqwdO3aoqKhIU6dOlYND1f/Xfe655/TQQw8pIiJC7dq1k6urq06cOKHVq1ersLBQkydPVteuXat8PLNU97N9//33dc8996hFixbq0KGDvLy8lJiYWPbZDh06VOPGjau1vG5ubvr88881evRovfjii/ruu+/UvXt3paSkKDo6WuPHj9eGDRt09OjRsu4FAABcCNZSrKWqgrUUAAAAAAAAANQ/FP2gThg0aJA2bNigGTNmKDo6Wt9//73Cw8P173//Ww8++KBatWpVpeOMHTtW6enpWrVqlQ4cOKD169fL1dVVISEhevTRR3XPPfeUPSkuST4+Pvr99981Y8YMLVmyRD///LMaN26sESNGaMaMGVq9enWFc7Rs2VKvvfaaVqxYoZ07d2rRokUyDEPNmjXT5MmTNX36dHXr1q3ce6KiovTtt9/q5Zdf1oYNG7Rs2TIZhqHg4OCymyVBQUFav369Zs+era+//loxMTHauHGjfH19FRQUpDvvvFPjxo2Ti4tLtb62b731lpYtW6ZNmzZpxYoVysrKUkBAgC677DLdfvvtGj9+fLWOZ5bqfrYzZ87UwoULtX79eq1fv17p6eny9/dXr169NG3aNF133XXVuuF3IYYOHaoNGzbo6aef1ooVKzR//nyFh4dr5syZmj59ujw9PWVnZydfX99azQEAqP9YS7GWOh/WUgAAAAAAAABQ/1gMwzDMDgEADc3KlSs1aNAgdezYUTExMWbHAQAAsCmspQAAAAAAAABAsjM7AADUV4mJiYqNja3w+s6dO3XbbbdJso5FAQAAQEWspQAAAAAAAADg3Oj0AwC1JDo6WkOGDFH79u0VHh4uV1dXxcbGasuWLSouLtZll12mRYsW1fpoDAAAAFvEWgoAAAAAAAAAzo2iHwCSpP/+97/au3dvlfaNiIjQo48+WsuJbN+JEyf0/PPPa8WKFYqPj1dmZqY8PT0VGRmp66+/Xrfddhs3qQAAqCdYS9U81lIAAAAAAAAAcG4U/QCQJA0ePFgrVqyo0r6DBg1SdHR07QYCAACwIaylAAAAAAAAAACXGkU/AAAAAAAAAIBqmT17tqZNm6YpU6Zo9uzZZscBAAC4YGFhYTpy5IhiY2MVFhZmdhwAqBY7swMAAAAAAAAAAGC2uLg4WSwWbvYBAIALZrFYZLFYzI5RawYPHiyLxUIXa6AOoegHAAAAAAAAAAAAAAAAsDEU/QAN1Ny5czV48GA1atRI7u7u6tSpk1588UUVFBSYHQ0AAKBO27dvn9544w1NnTpVHTt2lIODgywWi5577jmzowEAAAAAAAAAGhCKfoAG6B//+If+9re/ac2aNerZs6dGjRqlo0eP6pFHHtHQoUOVk5NjdkQAAIA665133tH06dM1Z84c7dy5U0VFRWZHAgAADUhOTo5eeeUV9e7dWz4+PnJxcVHbtm318MMPKzk5udy+BQUF+vzzz3XDDTcoIiJCXl5ecnV1Vdu2bTV9+nSdOHGi0nP8eWzDqlWrNHbsWDVp0kR2dnaaPXv2WbN98sknslgsGjly5Fn3OXHihBwdHeXq6lohb1X8eQRXUVGRZs2apS5dusjDw6PcKI3du3drxowZ6tevn5o1ayYnJyc1btxYw4cP1zfffFPhuFOnTlWLFi0kSUeOHCkbzXG2ER2bN2/WDTfcoObNm8vZ2Vm+vr4aOXKkFi1aVO1rAgAAdc+RI0f0wgsvaOjQoWV/3/v4+Kh///567733VFxcXG7/p59+utya4a9ribi4uHL779+/X3fccYdatmwpFxcXeXt7a+DAgfr8888vOntV1nKZmZn64IMPdNVVV6l169Zyd3eXu7u7OnbsqCeeeEJpaWnljhkdHS2LxaIVK1ZIkoYMGVLu+v66RkxNTdWMGTPUuXNneXp6ys3NTR07dtRzzz2n7Ozsi75GAH9wMDsAgEtr/vz5ev311+Xh4aEVK1aoa9eukqSkpCQNHTpUq1ev1lNPPaWXX37Z5KQAAAB1U4cOHfTggw+qS5cu6tq1q55//nl99tlnZscCAAANwIkTJzRq1Cjt2LFDvr6+6tGjhzw9PbVlyxa99NJLmjt3rqKjoxUaGipJOn36tG666SZ5e3urXbt2ioqKUlZWlrZt26Y33nhDX331ldauXatWrVpVer65c+fq3XffVUREhIYPH66UlBQ5OzufNd/111+vRx55RL/88ov279+vNm3aVNjnvffeU2FhoW666SY1btz4gr8WhmHoqquu0uLFizVgwAC1a9dOu3btKts+a9YsffTRR4qIiFDHjh3l4+Ojo0ePavny5Vq2bJnWr1+vWbNmle3fv39/nTlzRt9++63c3d01adKks5779ddf1z//+U8VFxerc+fO6tWrl06dOqXo6GgtXbpUzzzzjP71r39d8LUBAADzffbZZ3rqqafUokULtWnTRv369dPJkye1bt06rVmzRkuXLtW8efPKCn06d+6sKVOmaM6cOZKkKVOmlDueh4dH2b/PnTtXkydPVm5uriIiInTFFVcoPT1dGzZs0E033aTffvtNH3/88UVfw7nWctu3b9ftt9+uJk2aqG3bturWrZtSU1O1efNmPf/88/rmm2+0fv36svVaQECApkyZosWLF+v06dMaOXKkAgICys715/Xk7t27NWrUKB07dkyBgYHq37+/HB0dtXHjRj311FP69ttvFR0dLW9v74u+RgCSDAANSo8ePQxJxnPPPVdh26pVqwxJhrOzs5GWlmZCOgAAANszZcoUQ5Lx7LPPmh0FAADUY8XFxUa/fv0MScYtt9xiZGRklG0rKCgwHnjgAUOSMWTIkLLXMzIyjB9++MHIy8srd6z8/HzjscceMyQZV1xxRYVzDRo0yJBkSDLeeuutSvN88sknhiRjypQp5V5/4oknDEnG9OnTK7wnPz/fCAgIMCQZmzdvrs7ll4mNjS3LFhwcbOzbt6/S/aKjo41Dhw5VeH3v3r1GcHCwIcnYsGFDpccODQ096/kXL15sWCwWw8/Pz1ixYkW5bTExMWXHjo6Orv7FAQAAU4SGhhqSjNjY2LLXNm7caOzYsaPCvvHx8UanTp0MScY333xTYXvpOuVsYmJiDGdnZ8PFxcX49ttvy22Li4szOnbsaEgy5syZc8HXU5W13LFjx4xff/3VKCoqKvd6VlaWMXnyZEOScffdd5/12MuXL6/0uNnZ2UbLli0NScaTTz5Zbh2alZVlXHfddYYkY9q0aRd8fQDKY7wX0IDEx8dr06ZNkqxPXv1V//79FRISory8PFoRAwAAAAAA1CFLlizRmjVr1LlzZ7377rvy9PQs2+bg4KAXX3xRHTp00PLly7Vz505Jkqenp8aNGycnJ6dyx3J0dNTzzz+voKAgLV68WJmZmZWec+jQobr77rurlfPuu++Wo6Oj5syZo6ysrHLbvv32W506dUp9+vQp6z59MZ5//vlKuwlJ0qBBgxQeHl7h9bZt2+qpp56SJM2bN6/a55wxY4YMw9C7776rgQMHltvWsWPHsu5Bb7zxRrWPDQAA6o4ePXqoQ4cOFV4PCgrSiy++KMnaSae6Zs6cqby8PD333HO66qqrym0LDQ3VRx99JEn63//+dwGpyzvXWi44OFjDhg2TnV35cgE3Nze98847cnBwuKDrmzNnjg4dOqQxY8bo2WefLbcOdXNz0/vvvy9/f3999tlnSk1NrfbxAVTEeC+gAdm6daskydfXt2xG+V91795dx44d09atW3XdddddyngAAAAAAAA4i4ULF0qSJk6cKAeHir/WtbOz08CBA7Vz506tXbu23E2q7du3a9myZYqNjVVWVpaKi4slSYWFhSouLtbBgwfVpUuXCsc814irswkKCtKkSZP0f//3f/rss8905513lm176623JEl///vfq33cykycOPGc28+cOaOff/5ZW7duVVJSkvLz8yVJJ0+elCTt27evWudLSkrSxo0b5erqqrFjx1a6z+DBgyVJa9eurdaxAQBA3ZOXl6elS5dq06ZNSkhIUF5engzDKCuYru5aori4WD///LMk6Zprrql0n+7du8vDw0Nbt25Vbm6uXFxcLjh/VdZya9eu1apVq3T06FFlZ2fLMAxJkpOTkxITE5WamqpGjRpV+Zyla9azXZ+Hh4e6d++uRYsWadOmTRoxYkSVjw2gchT9AA1IbGysJKl58+Zn3SckJKTcvgAAAAAAADDf4cOHJUlPPfVUWaeas0lMTJQkZWVl6aabbtL3339/zv0zMjIqfT0sLKz6QSVNnz5d//d//6e33nqrrOgnJiZGq1evVtOmTS+omOiv/P395ebmdtbtCxYs0LRp05ScnHzWfc523WcTGxsrwzCUk5MjZ2fnc+5b+hkAAADbtH79el1zzTU6evToWfep7loiOTm57D2l9+POt3+zZs2qdY4/O9daLiEhQRMnTtTq1avPeYyMjIxqFf2Urllvuukm3XTTTefcl/USUDMo+gEakNLKY3d397Pu4+HhIan6CxUAAAAAAADUntLuPP3791fLli3PuW9kZKQk6bHHHtP333+viIgI/fe//1WPHj3k5+dXNmahb9++WrduXdkT3X/l6up6QVl79+6tnj17auPGjVqxYoUGDRpU1uXn9ttvrzBu7EKcK1t8fLyuueYa5eTk6OGHH9YNN9ygsLAweXh4yM7OTkuXLtXIkSPPet1nU/oZeHh4nLfLEAAAsF3Z2dm68sordfr0aU2bNk133XWXWrVqJS8vL9nb22v//v1q27btBa8lJGnKlCnn3f98Rcbnc6710q233qrVq1erT58+euaZZ9SpUyc1atRIjo6OkqzdG0+ePHnB1zhq1Cg1bdr0nPuGhoZW69gAKkfRDwAAAAAAAADUcaVPg48fP14PPvhgld7zzTffSJK+/vprRUVFVdh+4MCBmgv4F9OnT9eNN96oN998U506ddIXX3whBweHcuO+asuCBQuUk5OjCRMm6IUXXqiw/UKvu/QzsFgs+vjjj2VnZ3dROQEAQN20cuVKnT59Wl27dtXHH39cYfuFriX8/Pzk6uqqnJwcvfzyy/Lz87vYqBckKytLixYtkp2dnRYtWiQfH58K20+dOnVBxw4JCdHevXt1yy231Eh3RwDnx08lQAPi6ekpyfqX9dmcOXNGkuTl5XVJMgEAAAAAAOD8Lr/8cknS3Llzq/zEdUpKiqTKn6JesmSJkpKSai7gX/ztb39TYGCg5s+fr5kzZyorK0sTJkxQUFBQrZ2z1Lmu2zAMffnll5W+r7QDUWFhYaXbg4KCFBUVpczMTC1evLiG0gIAgLqmdC3RvHnzSrd//vnnZ31vaaecytYT9vb2uuyyyyT9UZxthvT0dBUVFcnLy6tCwY9kvb6zrTfPt14qXbOaeX1AQ0PRD9CAlM7uPHbs2Fn3Kd12oTPbAQAAAAAAUPPGjx+vHj16aOPGjZo2bZoSExMr7JOamqp333237CZMu3btJElvvPFGuf327dtX6x13HB0dddddd6mwsFAvv/yyJOnvf/97rZ6zVOl1z5s3TydPnix7vaioSP/617+0du3aSt/XpEkTOTk56dSpU2U3+/7queeekyRNmzZNCxYsqLDdMAxt2LBBS5cuvdjLAAAAJildSyxbtky7d+8ut+3999/X119/fdb3BgcHS5J27dpV6fYZM2bIyclJDz30kObMmVNu5FepnTt36rvvvrvQ+OfVtGlTNWrUSGlpafrss8/KbVu/fr0ee+yxs773fNd3++23KzQ0VHPnztUjjzyizMzMCvucOnVKH3zwwUVcAYA/o+gHaEC6dOkiSUpOTlZsbGyl+/z++++SpK5du16yXAAAAAAAADg3Ozs7zZ8/X507d9acOXPUokUL9evXT9ddd50mTpyoLl26qEmTJmWFNpL1ppLFYtFTTz2lqKgoXXfddRo2bJg6duyo8PBw9e3bt1Yz33HHHXJ2dpYkRUVFaeDAgbV6vlJjx45Vt27ddPz4cbVp00ZjxozRNddco5YtW+qFF17QI488Uun7HB0dNW7cOBUVFalz5866/vrrdeutt+rWW28td+zXX39dKSkpGjdunFq3bq0xY8bohhtu0IgRIxQQEKDevXvrt99+uyTXCgAAal6XLl00fvx4ZWZmqkuXLho5cqSuu+46tWvXTnfeeacef/zxs7534sSJkqThw4frmmuuKVtLJCcnS7LefyvtFDR16lSFhoZq5MiRuvHGG3XFFVcoJCREHTt2rNVOOfb29vrXv/4lSZo8ebJ69+6t66+/Xv3791ffvn01ZsyYSjsm/vn6Hn74YY0dO1a33HKLbr311rKiand3dy1cuFBhYWF68cUX1bx5cw0aNEg33HCDJkyYoMjISAUFBempp56qtesDGhqKfoAGJDg4WD169JCkStsYr169WseOHZOzs7OuuOKKSx0PAAAAAAAA5xAUFKT169fr3XffVc+ePbVv3z7NmzdPq1evliTdeeedWrJkiVxcXCRJV111lVasWKFhw4bp5MmT+vHHH5WQkKCnn35aP//8c9n4idri7++vzp07S5LuueeeWj3Xnzk4OCg6OlqPP/64mjVrpmXLlik6OlpdunTRunXrNGrUqLO+97333tMdd9whi8WiefPm6aOPPtJHH31Ubp/p06dr69atuv3222WxWLRs2TLNnz9fhw4dUpcuXfS///1P06dPr+3LBAAAtWju3Ll66aWX1LZtW61evVpLly5V8+bNtWTJknIFwX/17LPP6uGHH5aPj4/mz59f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s/Wf//xHXbp0UfOmjXX45YnK/PoRbVk2v9IMq1at0t///ndFRUWpUaNGcnV1VUREhB599FGlpaVV2D86OloWi0VTp05VSkqK7rrrLgUGBsrZ2VkdOnTQxx9/XFNfnvOys7PosvZNJUm/H8uQJDk5OV2y8wMAgPqnptdnOflF+nlrnNLXfaO5T9wgDw8PeXh4qHfv3uU64PyZLa3PFi5cKEmaNGlShW1du3ZVeHi4du7cqbi4uLLXW/l7akTJGu7dFYfLXk9PT9ehQ9buP4MHD65wvCFDhkiSlixZory8vCrls1gssre3l8ViYZ0I1BKH8+8CnNsNN9ygNWvWyNnZWb1791ZAQIAOHz6sJUuWaMmSJbr//vs1a9asKh9v+PDhio+PL/sL19fXV7t379b333+v+fPna9asWfrHP/5RexcEAABwiaxbt07Dhg1TTk6OevbsqbCwMK1cuVL333+/1q5dq6+//loWi6VKxyqdt/3TTz/Jw8ND/fv3V3FxsdauXauJEydqxowZlc7cvu+++7R9+/YavjIAAADbkp+fr2HDhik2NlYDBw5UUlKSVq5cqQkTJmjx4sXasWOHHn74YQ0aNEgjR47UypUr9cYbbyg5OVlffPFF2XESEhJ02WWXKSYmRgEBAXJt3kF2hUXKSzygqVOn6vfff9cbb7xR7twPPfSQtm/frqioKA0bNky5ubnasmWLXnjhBf30009av369PDw8KmROS0tTnz59dObMGQ0YMKAs8y233KLi4mLdeuuttf51k6SRkQH6fPV+/TDb+iT56NGjL8l5AQBA/VZT67Nv1+zSoY/uV0FinFwCAjRo0CAZhqG1a9fWi/VZ6e/1unbtWun2rl276vDhw4qJiSn3oN+dg1pqya7Tmr81Xg+NbKumXi7Kysoq296oUaMKx2rcuLEkKScnR/v371fHjh3Pmc0wDL3wwgvKysrS0KFD5erqWt3LA1AFdPrBRQsODtYbb7yhxMRERUdH66uvvtLGjRv1008/ycHBQa+++qqWLl1a5eNFRETo008/VWJion755Rd9/fXX2rFjh959910ZhqEHH3xQu3fvrsUrAgAAqH3Vnbd9Phcyb1uSRowYoeeee05LlizRrl27avISAQAAbMa6devk7u6uw4cPa+7cuVq+fLk++ugjFRUV6a677tKzzz6rdevW6ddff9V3332n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gq1bt+qNN95QZGSkOnTooKFDhyr5SLpWrlytrT98rHZdFmrX5rUKCQk57fu02+26+eabNWXKFPn5+WnIkCEKDg7WgQMHNHfuXPXu3VtDhgypw70CgNNXVFSks846S6tXr1ZUVJTGjx+v/fv367PPPtPPP/+s1atXq3Xr1qd1X23atNH1119f7bpjx45pzpw5knTCZ+AHH3ygt99++4TbPHJuB1mttPUCcHK5ubm64oorTlge6u+lD6/trZs/X68fNx+Sn5e7XrqoyylbBSYkJOi6666rq7hoQCj6AQAAAAAAAEzg4eGhW265Rffee686duxYuTw1NVVjx47Vpk2bdO+992rGjBl/ez/5xWV68ZftkqRLW1t0y/VXKyAgQH/88YcGDRpUuZ3dbtfGjRvrZmcAmK537976888/1blz5yrLf1i7R1defqnSkzbr2rse1i9ffnza9/ncc89pypQpuuCCCzR16lQ1adKkcl1WVpYyMjIclh8AztQLL7yg1atXa+DAgZo3b578/f0lSW+88YYeeOAB3XDDDVq8ePFp3deQIUNOWtT4wQcfaM6cORo8ePAJRURdu3bVww8/rNgO3fT6xlLt//IJlR1NVotQvzPaNwCuz8PDQxMnTlSfPn3Ut29f7dq1S5MnT5YkjewQobeu7KF/fLVJX609oEBvdz1yXoe/LfwJCAjQjTfeqL59+6pv37765Zdf9NRTT9XX7qAeUfQDAAAAAAAAmOD666+v9gryqKgovf/++xo0aJBmz56tkpISeXp6nvR+3lmYoCM5xWrRxFfrv3lVRUVFmjVrVpWCH0myWq3q06ePw/cDQMMQFRWlqKioE5aP79dGt9//iN685yrNX7BQaxIz1b916CnvLzk5WS+//LJatGihmTNnysfHp8r6kJCQGs0aBAB1qaSkRO+9954k6f33368s+JGk+++/X9OmTdOSJUu0YcMG9e7d+4we64svvpAkTZw48YR1N954o8psdl3x8WqV+mbJx8Oq2jdXBNCY+Pn5VWkZmJSUVGX9uG7Ryi8u08OztuqjpYkK8HbXXWe1Pen9xcXF6dNPP63873nz5jk+NBoEq9kBAAAAAAAAAFTVvXt3SVJxcbEyMzNPut32Qzn6dNk+SdLtfYL0x7x5at26tc4///x6yQnAOVzeL7b8H1Z33f7lRh08WnDK20ybNk0lJSW66aabTij4AYCGZsWKFTp27Jji4uLUs2fPE9ZfeumlkqSffvrpjB5n3759WrlypTw9PXX55ZdXu82HS/ZqQ1KW/L3cFRHgfUaPBwB/dUXfFnpibPkssa/N263PVuwzOREaAmb6AQAAAAAAABqYxMRESeVTvP+1nc5f2eyGHp29RTa7ofO6RKosZZvsdrsGDRqksrIyzZ49WytWrJDNZlOXLl10xRVXMCsH0AgVFBTopZdekiTF9hyio/klunHaOn13+yAFenuc9HYLFy6UJA0aNEipqan68ssvtWfPHgUFBWnkyJEaM2bM37aUAID6tHnzZklSr169ql1fsXzLli1n9DgVs/yMHTu22nHVluRsvTU/QZL03PjOemwmn5MAHOumoa2VV1ymt+Yn6Nmftstqsej6QbFmx4KJKPoBAAAAAAAAGpi3335bknTuuefKy8ur2m2mrtyvzcnHFODtrmcv7Kw3X/5OkuTv76+hQ4dq9erVVbZ//PHH9d1332nkyJF1Gx6AqbKysnTfffdJktLT07VmzRplZmZqwoQJev2DV3XlfzZq95E83TVjk6Zc30fubtU3BNi+fXvl35dccomOHTtWue7VV1/ViBEj9P333ys4OLjO9wkATuXAgQOSpJiYmGrXVyz/33Y5NfV3rb3yi8t078x4ldkNje0apYt6NtNjZ/RoAFC9e0a1VWGJTR8tTdTTP25TSZldNw9rbXYsmIT2XgAAAAAAAEADMnfuXP3nP/+Rh4eHnn/++Wq3Sc4q0OvzdkmSHj2voyICvZWVlSVJ+vTTT7Vz507NmDFDR48e1a5du3Tttdfq6NGjuuiii5SSklJv+wKg/uXn52vatGmaNm2a5s6dq8zMTF1++eX6+OOP1Tqyif5zfV/5eLhp6e50Pf3jNhmGUe39VHym3H///erWrZs2btyonJwczZ8/X61atdLixYt188031+euAcBJ5eXlSZJ8fX2rXe/n5ydJys3NrfVjrF27Vrt371aTJk00duzYKusMw9Ajs7cqMT1fkYHeevGiLsyGBqDOWCwWPXJeB919VhtJ0otzd+jdBQkmp4JZmOkHAAAAAM7AD/GcOHWU8T2amR0BAEy3c+dOXXvttTIMQ//617/UvXv3E7ax2w099O0WFZTY1C+2ia7s2/z4crskqaysTB999JEuv/xySVJISIimT5+uXbt2ad26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nOk4jPcRYB5HHXuaOXOmLBaLLrnkEu3atUvvvvuuXn31Vf34448qKSlxaGacyFGvY8X36v+2YsvOztaKFSsUGRnJ7+0Gju9U18WxV+dWb69aQkKCJFXbxy8yMlL+/v6V26B2Dhw4oPnz5ysqKkpdu3Y1O47TKC4u1nXXXacePXro//7v/8yO45Q2bNggSXJzc1O3bt20e/fuynVWq1X33XefXnvtNbPiOZXQ0FC98soreuCBB9ShQweNHz9egYGB2rx5sxYuXKg77rhDd911l9kxndLffQ9VLP/999+VkJCg5s2b12c0wDSMz+AsGOfWXklJiV566SUZhqHMzEwtWLBAO3fu1OTJkykkrgF+MzjO4cOHNXny5CrL+vbtq6+++kpxcXEmpQJcR22/M2fMmKEZM2ZU/re7u7vuvvtu/etf/2JmszN0Jt/F+fn5Sk1NVZcuXap9HSrG8YzZz4yjxku8j+rGmY7DeB8B5nLEsaeSkhJt3bpV4eHhevfdd/X000/LbrdXrm/durXmzJnD8YI65KhjiA899JB++ukn3Xffffrtt9/UrVs35eTkaM6cOfL19dX3338vHx8fh+eHY/Cd6tqmTJkiqfriPjR89Vb0c+zYMUk6oV1NhcDAwMptUHOlpaWaOHGiiouL9c9//pMfkjXw1FNPKSEhQRs2bOB5q6W0tDRJ0htvvKFevXpp7dq16tixozZt2qRbbrlFr7/+uuLi4nT77bebnNQ53HfffWrWrJluuukmffjhh5XLhwwZoquvvpoq21o6ne+hv24HNAaMz+AMGOeemZKSEj377LOV/22xWPTggw/q5ZdfNjGV8+E3g2NMnjxZQ4cOVZcuXeTv76/du3frjTfe0PTp0zVq1Cht3bpVAQEBZscEnFZtvjPDw8P1yiuvaNy4cYqNjVV+fr5WrVqlRx55RG+++aYsFotef/31ekjvus7ku5jfsfXjTMdLvI/q1pmOw3gfAeZyxLGno0ePymazKTMzU88995xeffVVTZw4UaWlpfroo4/0wgsv6IILLtDOnTvl7e3t8H2A444hNm3aVKtWrdK1116rX3/9tXJmPR8fH912223q3r2740LD4fhOdV3x8fF69tlnFRERwcVuTqre2nuh7tjtdk2aNElLly7VzTffrIkTJ5odyWmsWrVKr732mp544gnaG5yBiqp6T09PzZkzR3379pW/v7+GDh2qb7/9VlarlYMbNfDcc8/p2muv1WOPPaaDBw8qNzdXy5YtU1FRkUaMGKEff/zR7IgAANQLxrlnzt/fX4ZhyGaz6eDBg3r//ff16aefasSIESe0EkX1+M3gOE8//bTOOussRUREyNfXVz169NDnn3+uiRMnKikpSZ988onZEQGnVdvvzM6dO+vhhx9W586d5efnp4iICI0fP16LFi1SeHi43nnnncoLfVA7fBc3fGf6GvE+qjuMwwBI/z3/YLPZdMcdd+iBBx5QRESEmjVrpueee06XXXaZkpKS9N1335mcFKeyZ88eDR48WOnp6Vq2bJlyc3N18OBBPfXUU3r++ec1atQo2Ww2s2MCjUpiYqLGjh0rm82mr7/+WmFhYWZHQi3UW9FPRdXfyar7cnJyTloZiJOz2+264YYbNGPGDF177bVVZgXB3ysrK9P111+vbt266ZFHHjE7jlOreO/26dNH0dHRVdZ16dJFrVu31t69e5WdnW1COucyf/58Pf3007rrrrv0yCOPKCYmRv7+/hoyZIh++ukneXh46IEHHjA7plM6ne+hv24HNAaMz9CQMc51LKvVqpiYGN1+++36+OOPtWLFCr344otmx2rw+M1QP2699VZJ0ooVK0xOAjinuvjOjIyM1Pjx41VWVqY1a9Y4ICVq813M79j65ejxEu+jM+OocRjvI8Bcjjj29Nf1F1544QnrK5atX7++tjFxCo46hjhp0iQlJSXpp59+0pAhQ+Tv76+YmBg98sgjuvvuu7Vq1Sp9/fXXDs0Ox+E71fXs27dPI0eOVEZGhr777juNHDnS7EiopXor+vm7Pn6HDx9WXl5etb0gcXJ2u12TJ0/WtGnTdNVVV2nq1KmyWpm86XTl5eUpISFB8fHx8vT0lMViqfwzbdo0SdLAgQNlsVg0Z84cc8M2cO3bt5ckBQcHV7u+YnlhYWE9JXJev/76qyRV+8UaGRmpDh06aM+ePcrLy6vvaE7vVP1k/64vMeCqGJ+hoWKcW7cqenMvXrzY3CBOgN8M9aPiKrL8/HyTkwDOpy6/M3lv1p3T/S728/NTVFSU9u3bV+1V7/yOrTuOGi/xPqo9R43DeB8B5nLEsSc/Pz81a9ZMUvXnIDj/UPcc8Trm5uZqxYoV6tixoyIjI09YX3FOZNOmTQ5IjLrAd6prSUxM1IgRI5SamqpvvvlG48aNMzsSzoB7fT3Q8OHD9fLLL2vevHm68sorq6z7/fffK7fB6ak4qPP555/riiuu0PTp02vV07gx8/Ly0o033ljtuqVLlyohIUEXXnihwsPDFRsbW7/hnEzFYGzHjh0nrCstLdWePXvk5+en8PDw+o7mdEpKSiRJ6enp1a5PT0+X1WqVh4dHfcZyCW3btlV0dLRWrFih/Px8+fn5Va7Lz8/XihUr1KpVKzVv3tzElED9YnyGhohxbt07dOiQJDGeOA38ZqgfFbMf8BwCNVPX35m8N+tOTb6Lhw8frq+//lorVqzQsGHDqqyrGLP/73KcOUeNl3gf1Z4jx2G8jwDzOOrY01lnnaXp06dr+/bt6tWrV5V127dvl8RnbV1yxOtYce4jIyOj2vUV50S8vLzONC7qEN+priExMVEjR45UamqqZs6cqfHjx5sdCWfKqCelpaVG69atDS8vL2PTpk2Vy7Ozs4127doZnp6exr59++orjlOz2WzG9ddfb0gyLrvsMqO0tNTsSC6n4vldtWqV2VGcxujRow1JxieffFJl+XPPPWdIMq699lqTkjmXr776ypBkdO7c2cjOzq6y7oMPPjAkGYMHDzYpXcP38ssvG5KMzz77rNr1Tz31lCHJePjhh6ssf/jhhw1JxksvvVQPKYGGg/FZ3TjVZxFOjnGu42zbts3Iz88/YXl+fr5x7rnnGpKMF1980YRkroPfDDWzY8eOav+f3LFjhxEZGWlIMpYsWWJCMsA51fQ7Mz093dixY4eRnp5eZfn69eur3f6tt94yJBlt27Y1ysrKHJa7Manpd/HJXqOFCxcakoxhw4YZxcXFlcvnzp1rSDJGjx5ddzvh4hz1GvE+qn8nG4fxPgIanpoeezp06JCxY8eOE46Nr1ixovK4eVZWVuXy1NRUo1mzZobVajV27dpVx3vTeDnqdWzfvn2155GysrKMDh06GJKMP/74oy53Bced6vgl36kNX21fw8TERKNFixaGu7u7MWvWrHpIivpgMQzDqIfaIknSokWLNGbMGHl7e+vKK69UQECAZs2apaSkJL322mt64IEH6iuKU3vmmWf07LPPyt/fX/fcc4/c3U+csGnChAnq0aNH/YdzEZMmTdK0adO0atUqDRgwwOw4TmHv3r0aNGiQ0tLSNHbsWHXo0EGbNm3SwoUL1bJlS61evbraKRtRlc1m01lnnaWlS5cqIiJCF154oYKDg7Vx40YtXLhQPj4+Wrx4sfr162d21Abj008/1fLlyyVJW7du1caNGzV48GC1adNGkjRkyBDddNNNkspn9Bk8eLA2b96s0aNHq1evXtq4caPmzZunvn37asmSJfLx8TFtXwAzMD5zjJp8FuHkGOc6zjPPPKM33nhDQ4YMUWxsrAIDA5WSkqJff/1VmZmZGjp0qH7//Xe+984AvxlqpuL/yWHDhqlly5by8/PT7t27NXfuXJWWlurRRx/VSy+9ZHZMwGnU9DuzYvunn35azzzzTOU2sbGx8vDwUJ8+fRQTE6P8/HytXr1amzZtUnBwsP6/nfsHiTMJ4wA8HCviH0SwMcqKjSJsJahYpBGLCKIWYmwEbaxsBCsrO7USxEoQbC1E0CbY2Ynap0qjVmqhpBIU3hSHBx7xchs3u37J88B2y7czvMzOzMdv5vDw0P7zJxU7F79Uo5RSmp2dTVtbW6lQKKTh4eF/TuTW19en4+Pj1NnZWYEeZl+pamQcld9L6zDjCN6mYt49PY3v7e3tNDMz8+w5CwsLaW1tLeXz+TQyMpIeHh7S/v5+ur6+TsvLy2lxcbHMPfuzlKKOnz59SqOjo+nx8TENDg6m7u7udHt7mw4ODtLNzU0aHx9Pu7u7Fejdn6GY95fm1LepFDVsb29P5+fnqb+/P3348OG7v/PvmpMB5U4ZnZycxNDQUDQ0NERNTU309fXFzs5OuZuRaU8nGf7r42T56zi1+3MuLi5iZmYmmpubo6qqKvL5fMzNzcXV1VWlm5Yp9/f3sbKyEt3d3VFbWxu5XC5aW1tjamoqPn/+XOnmvTk/+k+cnp5+9v27u7uYn5+PfD4fVVVV0dbWFgsLC/H169fKdADeAOuz1yv2v4jvs84tnbOzs5idnY1CoRCNjY2Ry+WiqakpBgYGYnNz0y1KJWDPUJyjo6P4+PFjdHR0RENDQ+RyuWhubo6xsbE4PDysdPMgc4qdM5eWliKlFEtLS8+es7q6GgMDA9HS0hLV1dVRU1MTXV1dMT8/H5eXl+Xt1G+m2Ln4pRpF/H2z0/r6ehQKhaiuro6mpqaYnJyML1++lKk3v6dS1cg4Kr+X1mHGEbxd//fd09P4fmnvv729HT09PVFbWxt1dXXx/v372Nvb+8Wt50kp6nh6ehoTExPx7t27yOVyUV9fH729vbGxseFmvF+smPeX5tS3qRQ1/NE+sgLxEUqgrDf9AAAAAAAAAAAAr/dXpRsAAAAAAAAAAAAUR+gHAAAAAAAAAAAyRugHAAAAAAAAAAAyRugHAAAAAAAAAAAyRugHAAAAAAAAAAAyRugHAAAAAAAAAAAyRugHAAAAAAAAAAAyRugHAAAAAAAAAAAyRugHAAAAAAAAAAAyRugHAAAAAAAAAAAyRugHAAAAAAAAAAAyRugHAAAAAAAAAAAyRugHAAAAAAAAAAAy5hsrajwHghJr+wAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "az.plot_posterior(trace, var_names=[\"~switchpoint\", \"~disasters\"]);" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
meansdhdi_3%hdi_97%mcse_meanmcse_sdess_bulkess_tailr_hat
disasters_missing[0]2.2031.8690.0005.0000.0950.067373.0417.01.01
disasters_missing[1]0.9130.9670.0003.0000.0370.027723.0932.01.00
early_rate3.0810.2892.5513.6460.0060.0042427.02785.01.00
late_rate0.9300.1160.7131.1490.0020.0022725.02749.01.00
\n", + "
" + ], + "text/plain": [ + " mean sd hdi_3% hdi_97% mcse_mean mcse_sd \\\n", + "disasters_missing[0] 2.203 1.869 0.000 5.000 0.095 0.067 \n", + "disasters_missing[1] 0.913 0.967 0.000 3.000 0.037 0.027 \n", + "early_rate 3.081 0.289 2.551 3.646 0.006 0.004 \n", + "late_rate 0.930 0.116 0.713 1.149 0.002 0.002 \n", + "\n", + " ess_bulk ess_tail r_hat \n", + "disasters_missing[0] 373.0 417.0 1.01 \n", + "disasters_missing[1] 723.0 932.0 1.00 \n", + "early_rate 2427.0 2785.0 1.00 \n", + "late_rate 2725.0 2749.0 1.00 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "az.summary(trace, var_names=[\"~switchpoint\", \"~disasters\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Marginalized model" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/ricardo/Documents/Projects/pymc-experimental/pymc_experimental/marginal_model.py:117: UserWarning: There are multiple dependent variables in a FiniteDiscreteMarginalRV.\n", + "Their joint logp terms will be assigned to the first RV: disasters_missing\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "disaster_model.marginalize([switchpoint])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "cluster2\n", + "\n", + "2\n", + "\n", + "\n", + "cluster109\n", + "\n", + "109\n", + "\n", + "\n", + "cluster111\n", + "\n", + "111\n", + "\n", + "\n", + "\n", + "early_rate\n", + "\n", + "early_rate\n", + "~\n", + "Exponential\n", + "\n", + "\n", + "\n", + "disasters_missing\n", + "\n", + "disasters_missing\n", + "~\n", + "Poisson\n", + "\n", + "\n", + "\n", + "early_rate->disasters_missing\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "disasters_observed\n", + "\n", + "disasters_observed\n", + "~\n", + "Poisson\n", + "\n", + "\n", + "\n", + "early_rate->disasters_observed\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "late_rate\n", + "\n", + "late_rate\n", + "~\n", + "Exponential\n", + "\n", + "\n", + "\n", + "late_rate->disasters_missing\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "late_rate->disasters_observed\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "disasters\n", + "\n", + "disasters\n", + "~\n", + "Deterministic\n", + "\n", + "\n", + "\n", + "disasters_missing->disasters\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "disasters_observed->disasters\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pm.model_to_graphviz(disaster_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Multiprocess sampling (4 chains in 4 jobs)\n", + "CompoundStep\n", + ">NUTS: [early_rate, late_rate]\n", + ">Metropolis: [disasters_missing]\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + " 100.00% [8000/8000 01:16<00:00 Sampling 4 chains, 0 divergences]\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Sampling 4 chains for 1_000 tune and 1_000 draw iterations (4_000 + 4_000 draws total) took 77 seconds.\n" + ] + } + ], + "source": [ + "with disaster_model:\n", + " trace = pm.sample()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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/d0++OCDOvfccxUdHa1x48bJw8ND/fr10/333681a9bU5ONJklq1alXpAydJZTsDnPg5Sv++rup306xZs2r/fQ0AwKmwnmI9xXoKAAAAAAAAAJomij9odO666y7t27dPH330kSZPnixbW1t9++23uvbaa9W5c+dy32xet26dbrnlFuXl5emll17S9u3bdfz4cRUXF8swDH344YeSJMMwyt1j6NChio+P19y5c3XnnXcqKChIixcv1n333aeQkBAtXbq0RpmLi4slSUOGDNGUKVNO+n9dunSp8H5nZ+cqr+3n56e1a9dq2bJlevzxxzVgwACtX79eM2fOVJcuXfTSSy/VKGtlThy7cDrHq6smv1sXFxf98ccfWr16tZ555hmNGjVKu3fv1uuvv67+/fvrjjvuqNG9T/cz/Peb+dU9BgCAmVhPlcd6ivUUAAAAAAAAANRXFffAB86ygIAASVJ8fHylx9PS0pSenl6ja/r6+uqmm27STTfdJEnauXOnrr/+eq1atUqPPPKI5syZI0maO3euDMPQXXfdpYceeqjCdfbs2VPlPZydnXXppZfq0ksvlWT95vgTTzyhjz76SNdff7327dtX7bxt2rSRJE2cOFEPPPBAtd9XXRaLRSNGjNCIESMkWb9JPXv2bN1xxx167LHHdOmll6pdu3a1ft+6UN3fbal+/fqpX79+kqTCwkLNnz9fkydP1nvvvadLL71UI0eOrJOcp/r7Oj09XWlpaXVybwBA08N6ivVUTbCeAgAAAAAAAIDGgx1/YLrhw4dLkr7//nsVFBRUOP7FF1+c8T3CwsL08MMPS5I2btxY9npKSookKTAwsMJ7cnNz9cMPP1T7Hj4+Pnr55ZclSQkJCUpNTS075uDgIMn6oKQy5513nqR/H5zVNScnJ916663q3r27iouLtXnz5jq/Z12p6ndbGTs7O1166aUaO3Zstc4/E8OGDZNk/Z1W9nv/5ptv6uzeAICmh/UU66kzwXoKAAAAAAAAABouij8w3aWXXqqAgAAlJCTo0UcfLRvTIElbt27Vc889V+1r/fXXX1q0aFGFB16GYWjhwoWSyj+U6tSpkyRpzpw5yszMLHs9NzdXt99+u+Li4ircY9++ffrkk0+UkZFR4diCBQskSc2bN5eHh0fZ661bt5Ykbdu2rdLcEydOVL9+/bR69WpNmzZNiYmJFc5JTU3VBx98UOXDrqq8+uqrSkhIqPD6zp07y76BX9mDuvqmpr/b9957T7t27apwnSNHjmjt2rUVzq9tl112mVq1aqX4+Hg9/vjj5f6+3rlzp5555pk6uzcAoOlhPcV6qjpYTwEAAAAAAABA48OoL5jO2dlZX3/9tc4//3y99tprmj9/vvr166fk5GRFREToggsu0Lp166o16mHz5s2699575eHhod69e8vf3185OTlav3699u3bJ09Pz3IPCKZNm6a33npLGzZsUHBwsIYOHSpbW1v9888/ysnJ0d1336233nqr3D1SU1N100036fbbb1fPnj0VHBwsyTrGYsOGDbJYLHrllVdka2tb9p6LLrpITz/9tN5++21t3bpVbdq0kY2NjS688EJdeOGFsrGx0fz58zV+/HjNmTNH8+bNU48ePdS2bVvl5+crNjZWW7ZsUVFRkaZOnSo7u+r/v+5zzz2nBx98UGFhYerUqZOcnZ116NAhLV++XIWFhZo8ebJ69+5d7euZpaa/248++kh33HGHgoOD1bVrV3l4eCgxMbHsd3vOOefowgsvrLO8Li4u+uqrrzR+/Hi9/PLL+vHHH9W3b1+lpKQoIiJCEydOVHR0tBISEsp2MAAA4HSxnmI9VR2spwAAAAAAAACg8aH4g3ph+PDhio6O1owZMxQREaGffvpJISEheuaZZ/TAAw8oNDS0Wte54IILlJ6ern/++Ud79uxRVFSUnJ2d1aZNGz3yyCO64447yr4tLknNmjXT2rVrNWPGDC1evFi//fabWrRooTFjxmjGjBlavnx5hXu0a9dOb775piIjI7V161YtWrRIhmEoICBAkydP1vTp09WnT59y7+nevbt++OEHvfrqq4qOjtbSpUtlGIZat25d9rDE399fUVFRmj17tr777jtt3rxZq1evlpeXl/z9/XXrrbfqwgsvlJOTU41+tu+++66WLl2qNWvWKDIyUllZWfLz89Po0aN18803a+LEiTW6nllq+rudOXOmfv31V0VFRSkqKkrp6elq2bKlBgwYoGnTpumqq66q0QO/03HOOecoOjpaTz31lCIjIzV//nyFhIRo5syZmj59utzd3WVjYyMvL686zQEAaBpYT7GeOhXWUwAAAAAAAADQ+FgMwzDMDgEATc3ff/+t4cOHq1u3btq8ebPZcQAAABoc1lMAAAAAAAAAINmYHQAAGqvExETFxcVVeH3r1q266aabJFnHowAAAKByrKcAAAAAAAAA4OTY8QcA6khERIRGjhypzp07KyQkRM7OzoqLi9P69etVXFys0aNHa9GiRXU+IgMAAKChYj0FAAAAAAAAACdH8QeAJOnFF1/Uzp07q3VuWFiYHnnkkTpO1PAdOnRIzz//vCIjI3Xw4EFlZmbK3d1dXbp00dVXX62bbrqJh1QAADQirKdqH+spAAAAAAAAADg5ij8AJEkjRoxQZGRktc4dPny4IiIi6jYQAABAA8N6CgAAAAAAAABwtlH8AQAAAAAAAADUyOzZszVt2jRNmTJFs2fPNjsOAADAGQkKCtK+ffsUFxenoKAgs+MAQI3YmB0AAAAAAAAAAACzxcfHy2Kx8LAPAACcEYvFIovFYnaMOjNixAhZLBZ2swbqEYo/AAAAAAAAAAAAAAAAQANE8QdowubOnasRI0aoefPmcnV1VY8ePfTyyy+roKDA7GgAAAD11q5duzRr1ixNnTpV3bp1k52dnSwWi5577jmzowEAAAAAAAAAmhiKP0ATdc899+jyyy/XihUr1L9/f40bN04JCQl6+OGHdc455ygnJ8fsiAAAAPXS+++/r+nTp2vOnDnaunWrioqKzI4EAACakJycHL322msaOHCgmjVrJicnJ3Xs2FEPPfSQkpOTy51bUFCgr776Stdcc43CwsLk4eEhZ2dndezYUdOnT9ehQ4cqvceJ4xv++ecfXXDBBfLx8ZGNjY1mz55dZbbPP/9cFotFY8eOrfKcQ4cOyd7eXs7OzhXyVseJ47iKior0+uuvq1evXnJzcys3UmP79u2aMWOGwsPDFRAQIAcHB7Vo0ULnnnuuvv/++wrXnTp1qoKDgyVJ+/btKxvRUdWojnXr1umaa65R27Zt5ejoKC8vL40dO1aLFi2q8WcCAAD10759+/TSSy/pnHPOKft3frNmzTRkyBB9+OGHKi4uLnf+U089VW7d8N/1RHx8fLnzd+/erVtuuUXt2rWTk5OTPD09NWzYMH311VdnnL0667nMzEx9/PHHuuSSS9S+fXu5urrK1dVV3bp10+OPP660tLRy14yIiJDFYlFkZKQkaeTIkeU+33/XiampqZoxY4Z69uwpd3d3ubi4qFu3bnruueeUnZ19xp8RwL/szA4A4OybP3++3nrrLbm5uSkyMlK9e/eWJCUlJemcc87R8uXL9eSTT+rVV181OSkAAED907VrVz3wwAPq1auXevfureeff15ffvml2bEAAEATcOjQIY0bN05btmyRl5eX+vXrJ3d3d61fv16vvPKK5s6dq4iICAUGBkqSjh49quuuu06enp7q1KmTunfvrqysLG3cuFGzZs3St99+q5UrVyo0NLTS+82dO1cffPCBwsLCdO655yolJUWOjo5V5rv66qv18MMP648//tDu3bvVoUOHCud8+OGHKiws1HXXXacWLVqc9s/CMAxdcskl+v333zV06FB16tRJ27ZtKzv++uuv69NPP1VYWJi6deumZs2aKSEhQcuWLdPSpUsVFRWl119/vez8IUOG6Pjx4/rhhx/k6uqqSy+9tMp7v/XWW7rvvvtUXFysnj17asCAATpy5IgiIiK0ZMkSPf300/q///u/0/5sAACgfvjyyy/15JNPKjg4WB06dFB4eLgOHz6sVatWacWKFVqyZInmzZtXVvbp2bOnpkyZojlz5kiSpkyZUu56bm5uZf977ty5mjx5snJzcxUWFqbzzz9f6enpio6O1nXXXae//vpLn3322Rl/hpOt5zZt2qSbb75ZPj4+6tixo/r06aPU1FStW7dOzz//vL7//ntFRUWVrdn8/Pw0ZcoU/f777zp69KjGjh0rPz+/snuduKbcvn27xo0bp/3796tVq1YaMmSI7O3ttXr1aj355JP64YcfFBERIU9PzzP+jAAkGQCanH79+hmSjOeee67CsX/++ceQZDg6OhppaWkmpAMAAGhYpkyZYkgynn32WbOjAACARqy4uNgIDw83JBk33HCDkZGRUXasoKDAuP/++w1JxsiRI8tez8jIMH7++WcjLy+v3LXy8/ONRx991JBknH/++RXuNXz4cEOSIcl49913K83z+eefG5KMKVOmlHv98ccfNyQZ06dPr/Ce/Px8w8/Pz5BkrFu3riYfv0xcXFxZttatWxu7du2q9LyIiAgjJiamwus7d+40WrdubUgyoqOjK712YGBglff//fffDYvFYnh7exuRkZHljm3evLns2hERETX/cAAAwDSBgYGGJCMuLq7stdWrVxtbtmypcO7BgweNHj16GJKM77//vsLx0rVKVTZv3mw4OjoaTk5Oxg8//FDuWHx8vNGtWzdDkjFnzpzT/jzVWc/t37/f+PPPP42ioqJyr2dlZRmTJ082JBm33357lddetmxZpdfNzs422rVrZ0gynnjiiXJr0aysLOOqq64yJBnTpk077c8HoDxGfQFNzMGDB7VmzRpJ1m9h/deQIUPUpk0b5eXlsTUxAAAAAABAPbF48WKtWLFCPXv21AcffCB3d/eyY3Z2dnr55ZfVtWtXLVu2TFu3bpUkubu768ILL5SDg0O5a9nb2+v555+Xv7+/fv/9d2VmZlZ6z3POOUe33357jXLefvvtsre315w5c5SVlVXu2A8//KAjR45o0KBBZTtQn4nnn3++0l2FJGn48OEKCQmp8HrHjh315JNPSpLmzZtX43vOmDFDhmHogw8+0LBhw8od69atW9kuQrNmzarxtQEAQP3Sr18/de3atcLr/v7+evnllyVZd9SpqZkzZyovL0/PPfecLrnkknLHAgMD9emnn0qS3n777dNIXd7J1nOtW7fWqFGjZGNTvjLg4uKi999/X3Z2dqf1+ebMmaOYmBhNmDBBzz77bLm1qIuLiz766CO1bNlSX375pVJTU2t8fQAVMeoLaGI2bNggSfLy8iqbW/5fffv21f79+7VhwwZdddVVZzMeAAAAAAAAKvHrr79KkiZNmiQ7u4p/rGtjY6Nhw4Zp69atWrlyZbmHVJs2bdLSpUsVFxenrKwsFRcXS5IKCwtVXFysvXv3qlevXhWuebJxV1Xx9/fXpZdeqv/973/68ssvdeutt5Yde/fddyVJd955Z42vW5lJkyad9Pjx48f122+/acOGDUpKSlJ+fr4k6fDhw5KkXbt21eh+SUlJWr16tZydnXXBBRdUes6IESMkSStXrqzRtQEAQP2Ul5enJUuWaM2aNTp27Jjy8vJkGEZZcbqm64ni4mL99ttvkqQrrrii0nP69u0rNzc3bdiwQbm5uXJycjrt/NVZz61cuVL//POPEhISlJ2dLcMwJEkODg5KTExUamqqmjdvXu17lq5bq/p8bm5u6tu3rxYtWqQ1a9ZozJgx1b42gMpR/AGamLi4OElS27ZtqzynTZs25c4FAAAAAACAuWJjYyVJTz75ZNmONVVJTEyUJGVlZem6667TTz/9dNLzMzIyKn09KCio5kElTZ8+Xf/73//07rvvlhV/Nm/erOXLl8vX1/e0CkX/1bJlS7m4uFR5fMGCBZo2bZqSk5OrPKeqz12VuLg4GYahnJwcOTo6nvTc0t8BAABouKKionTFFVcoISGhynNqup5ITk4ue0/p87hTnR8QEFCje5zoZOu5Y8eOadKkSVq+fPlJr5GRkVGj4k/puvW6667Tddddd9JzWTMBtYPiD9DElDaQXV1dqzzHzc1NUs0XKwAAAAAAAKgbpbv0DBkyRO3atTvpuV26dJEkPfroo/rpp58UFhamF198Uf369ZO3t3fZuIXBgwdr1apVZd/q/i9nZ+fTyjpw4ED1799fq1evVmRkpIYPH16228/NN99cYfTY6ThZtoMHD+qKK65QTk6OHnroIV1zzTUKCgqSm5ubbGxstGTJEo0dO7bKz12V0t+Bm5vbKXcbAgAADVt2drYuuugiHT16VNOmTdNtt92m0NBQeXh4yNbWVrt371bHjh1Pez0hSVOmTDnl+acqG5/KydZMN954o5YvX65Bgwbp6aefVo8ePdS8eXPZ29tLsu7kePjw4dP+jOPGjZOvr+9Jzw0MDKzRtQFUjuIPAAAAAAAAANRzpd8Inzhxoh544IFqvef777+XJH333Xfq3r17heN79uypvYD/MX36dF177bV655131KNHD3399deys7MrN/qrrixYsEA5OTm6+OKL9dJLL1U4frqfu/R3YLFY9Nlnn8nGxuaMcgIAgPrr77//1tGjR9W7d2999tlnFY6f7nrC29tbzs7OysnJ0auvvipvb+8zjXpasrKytGjRItnY2GjRokVq1qxZheNHjhw5rWu3adNGO3fu1A033FArOz0CODX+ywRoYtzd3SVZ/4VdlePHj0uSPDw8zkomAAAAAAAAnNx5550nSZo7d261v3WdkpIiqfJvUi9evFhJSUm1F/A/Lr/8crVq1Urz58/XzJkzlZWVpYsvvlj+/v51ds9SJ/vchmHom2++qfR9pTsRFRYWVnrc399f3bt3V2Zmpn7//fdaSgsAAOqj0vVE27ZtKz3+1VdfVfne0h1zKltT2NraavTo0ZL+LWmbIT09XUVFRfLw8KhQ+pGsn6+qNeep1kyl61YzPx/Q1FD8AZqY0lme+/fvr/Kc0mOnO8cdAAAAAAAAtWvixInq16+fVq9erWnTpikxMbHCOampqfrggw/KHsJ06tRJkjRr1qxy5+3atavOd96xt7fXbbfdpsLCQr366quSpDvvvLNO71mq9HPPmzdPhw8fLnu9qKhI//d//6eVK1dW+j4fHx85ODjoyJEjZQ/7/uu5556TJE2bNk0LFiyocNwwDEVHR2vJkiVn+jEAAICJStcTS5cu1fbt28sd++ijj/Tdd99V+d7WrVtLkrZt21bp8RkzZsjBwUEPPvig5syZU278V6mtW7fqxx9/PN34p+Tr66vmzZsrLS1NX375ZbljUVFRevTRR6t876k+380336zAwEDNnTtXDz/8sDIzMyucc+TIEX388cdn8AkAnIjiD9DE9OrVS5KUnJysuLi4Ss9Zu3atJKl3795nLRcAAAAAAACqZmNjo/nz56tnz56aM2eOgoODFR4erquuukqTJk1Sr1695OPjU1a2kawPlSwWi5588kl1795dV111lUaNGqVu3bopJCREgwcPrtPMt9xyixwdHSVJ3bt317Bhw+r0fqUuuOAC9enTRwcOHFCHDh00YcIEXXHFFWrXrp1eeuklPfzww5W+z97eXhdeeKGKiorUs2dPXX311brxxht14403lrv2W2+9pZSUFF144YVq3769JkyYoGuuuUZjxoyRn5+fBg4cqL/++uusfFYAAFA3evXqpYkTJyozM1O9evXS2LFjddVVV6lTp0669dZb9dhjj1X53kmTJkmSzj33XF1xxRVl64nk5GRJ1udvpTsGTZ06VYGBgRo7dqyuvfZanX/++WrTpo26detWpzvm2Nra6v/+7/8kSZMnT9bAgQN19dVXa8iQIRo8eLAmTJhQ6e6JJ36+hx56SBdccIFuuOEG3XjjjWXlaldXV/36668KCgrSyy+/rLZt22r48OG65pprdPHFF6tLly7y9/fXk08+WWefD2hqKP4ATUzr1q3Vr18/Sap0W+Ply5dr//79cnR01Pnnn3+24wEAAAAAAKAK/v7+ioqK0gcffKD+/ftr165dmjdvnpYvXy5JuvXWW7V48WI5OTlJki655BJFRkZq1KhROnz4sH755RcdO3ZMTz31lH777beyMRR1pWXLlurZs6ck6Y477qjTe53Izs5OEREReuyxxxQQEKClS5cqIiJCvXr10qpVqzRu3Lgq3/vhhx/qlltukcVi0bx58/Tpp5/q008/LXfO9OnTtWHDBt18882yWCxaunSp5s+fr5iYGPXq1Utvv/22pk+fXtcfEwAA1LG5c+fqlVdeUceOHbV8+XItWbJEbdu21eLFi8sVg//r2Wef1UMPPaRmzZpp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c+dqwIABcnV1la+vr267406tjz0qqfwDrOzsbL3wwgvq1auX3Nzc5ObmpoEDB1b5re1//vlHd955p7p3767mzZvL2dlZYWFheuSRR5SWllbh/IiICFksFk2dOlUpKSm67bbb1KpVKzk6Oqpr16767LPPaveHVIkwPw+Fh7ZQsSF9uWqfJJWVdhwcmu43+AEAaKpOtab65ZdfygrT+XtWlltTTZ8+XTk5ORWu2ZjXVEe2rpQk2YUO0qYD5Ys1vXv3VkhIiLZu3ar4+PhTXis9PV0xMTGSpBEjRlQ4PnLkSEnS4sWLlZeXV618FotFtra2slgsrO2AOkLxBzVyzTXXaPr06YqIiFBYWJgmTZqkkJAQLV68WBMnTtR9991Xo+v9/fffevfdd3XkyBF17txZl1xyifr166eNGzdq+vTpGj16NLO4AQBAg7Nz0zo9cO14rfzzV/m2bqt+w8coMy1Vn736lF595PY6n6ktSV9//bWGDBmiX375RYGBgTr//POVl5en559/XoMHD1ZGRkYtfVoAAAD8V35+vkaNGqWvv/5aAwcO1MCBA7Vp0yZdfPHF+vPPP/XGG2/o6quvlru7u8aOHauioiJ98N67OrroLbXxclYbLxdJ0rFjxzRo0CA99thjOnLkiIYPH65hw4Zp586dmjp1qu66664K937wwQf16aefytnZWaNGjdKoUaOUkZGhl156SUOGDNHx48crzZyWlqZBgwbpl19+0dChQxUeHq6dO3fqhhtu0CeffFKnPy9Juj48WJL0v9UJSkzNKBvxNX78+Dq/NwAAqJ+qWlNdcsklitkUpax1P+u5B24tt6aaNWuWbrzxxnLXaexrqm1bt0iSHH3b6eeNBysc7927tyTrhgyncuIXBps3b17heIsWLSRJOTk52r179ymvZxiGXnrpJWVlZWnkyJFydnY+5XsA1BzFH9RI69atNWvWLCUmJioiIkLffvutVq9erYULF8rOzk5vvPGGlixZUu3rnX/++YqJiVF8fLz+/PNP/e9//9Off/6p+Ph4de3aVZGRkfroo4/q8BMBAADUrsKCAr3x+F3Kz83V9ffP0CtfLtSDL72v937+Rx2799HKPxbqrwVzq32905mpfeDAAd14440qKirSp59+qnXr1unHH3/Unj17dNVVV2nz5s168MEHa/ujAwAAoMSqVavk6uqq2NhY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JRUXF+uJJ55QQkKCXn311VrvJ19fXwuSuaaDBw/K4XBo2LBhioiIOGHf5MmTJUkZGRlWRLPc+PHj1b59+989nWmaeueddxQaGqpHHnnkhH2PPPKIQkND9c477zRWTJdxqvdX69atddtttykkJOSE7SEhIbr33nslST/99FOjZITnoh6r26k+N70NNWndbDab/P39T9ru6+urCy64QJK0b9++po7lkqjNcSp4fwJnvea8/fbbkqSnnnrqhN/T55xzjkaPHq358+fr0KFDzgvuwagDXI+z6g+eJ85DTejaTqcO5XkCNJyzPn/6v//7Px06dEjPP/+8evfufdJ+3h80HWc9ptWjn/7whz+csD0yMrJmddfMzEznBcdvcsbnobxeuhZnPKYPPvigWrVqdcI2wzBqjutxXMq1NUnjz5IlSyRJEyZMOGnfxIkTJfGDcqr8/PwkUdTUZcOGDXrmmWf02GOPqXv37lbHcVnz589Xdna2zj//fNntds2aNUvPP/+83nzzTT6QqEWnTp3k7++vFStWKC8v74R93333nSRp3LhxVkRzG3v37tWRI0c0bNiwWptZhg0bpqSkJKWkpFiU0H3wOoCGoh6DM/G7qHYOh0M//PCDJHnlCNBfozavXWlpqaZPn65nn31W//73v7VmzRqrI1mO9yf4LfV5zVmyZEnN+4tfo95xnobUAXv37tUrr7yi5557Th988IFSU1MbK57XqW/9wfOk8TW0JuR54jynW4fyPAEazlmfP3366acyDEMXXXSRdu/erddff10vvPCCvvnmG5WVlTk1M36bsx7T6tfEX49oy8nJ0YoVKxQXF8dnB26G10vvwWfB7qFJHp29e/dKUq1z/OLi4hQaGlpzGtTt0KFDWrBggVq2bKlevXpZHcfllJaW6tprr1WfPn30wAMPWB3Hpa1fv16S5OPjo969e2vPnj01+2w2m+655x699NJLVsVzOc2aNdPzzz+v++67T127dtWUKVMUHh6uzZs3a9GiRbrtttt0xx13WB3Tpf3W60D19nnz5mnv3r1q27ZtU0ZzO++++66k2t9oAb+FegzOQk36P2VlZXr22WdlmqaysrK0cOFC7dq1S9dff73XNwVTm9ft6NGjuv7660/YNnDgQH388cdKTEy0KJW1eH+CutTnNaewsFBpaWnq2bNnrSs7VNdA1Dunp6F1wMyZMzVz5sya//v6+urOO+/Uiy++yIpw9XQ69QfPk8bhrJqQ54lznG4dyvMEOD3O+PyprKxMW7duVUxMjF5//XU99thjcjgcNfsTEhI0e/Zsr/9Moqk46zPFv/zlL/r22291zz336IcfflDv3r2Vl5en2bNnKzg4WF999ZWCgoKcnh+Ng9dL78JxKffQJI0/ubm5knTSiJxq4eHhNadB7crLy3XNNdeotLRU//jHP3izV4tHH31Ue/fu1fr167l/fkd6erok6eWXX1a/fv20du1adevWTRs3btQtt9yif/7zn0pMTNSf/vQni5O6jnvuuUetW7fWTTfdpDfffLNm+/Dhw3XllVfS5fo7TuV14JenQ+3eeustzZ07V2PHjj1pSVTg91CPwRmoSU9UVlamJ554oub/hmHo/vvv13PPPWdhKtdAbV6766+/XiNGjFDPnj0VGhqqPXv26OWXX9YHH3ygcePGaevWrQoLC7M6ZpPj/QlqU9/XHN5zNL6G1AExMTF6/vnnNXnyZMXHx6uwsFCrVq3SQw89pH/9618yDEP//Oc/myC95zid+oPnSeM43ZqQ54lznW4dyvMEOD3O+Pzp+PHjstvtysrK0pNPPqkXXnhB11xzjcrLy/Wf//xHTz/9tM4991zt2rVLgYGBTr8NOJGzPlNs0aKFVq1apauvvlpz586tWR0vKChIf/zjH3XGGWc4LzQaHa+X3mPTpk164oknFBsby5f7XFyTjPrC6XE4HJo6daqWLl2qm2++Wddcc43VkVzOqlWr9NJLL+nhhx9mrMIpqO6O9/f31+zZszVw4ECFhoZqxIgR+vzzz2Wz2fhA4VeefPJJXX311frb3/6mlJQU5efna9myZSopKdHo0aP1zTffWB0RHu67777THXfcofbt2+vDDz+0Og4AL0RNerLQ0FCZpim73a6UlBRNmzZN77zzjkaPHn3SeFBvQm1et8cee0xjx45VbGysgoOD1adPH73//vu65pprlJycrLffftvqiJbg/Ql+jdcc19PQx6RHjx568MEH1aNHD4WEhCg2NlZTpkzR4sWLFRMTo9dee62m+Q+nhvrD9ZzuY8LzxHmoQwHPUP3+wG6367bbbtN9992n2NhYtW7dWk8++aQuueQSJScn64svvrA4Kepj3759GjZsmDIyMrRs2TLl5+crJSVFjz76qJ566imNGzdO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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "az.plot_posterior(trace, var_names=\"~disasters\");" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
meansdhdi_3%hdi_97%mcse_meanmcse_sdess_bulkess_tailr_hat
disasters_missing[0]2.2721.9060.0006.0000.0790.060618.0685.01.01
disasters_missing[1]0.9901.0450.0003.0000.0400.030712.0652.01.01
early_rate3.0850.2832.5383.5920.0050.0033770.03235.01.00
late_rate0.9290.1180.7111.1470.0020.0013214.02258.01.00
\n", + "
" + ], + "text/plain": [ + " mean sd hdi_3% hdi_97% mcse_mean mcse_sd \\\n", + "disasters_missing[0] 2.272 1.906 0.000 6.000 0.079 0.060 \n", + "disasters_missing[1] 0.990 1.045 0.000 3.000 0.040 0.030 \n", + "early_rate 3.085 0.283 2.538 3.592 0.005 0.003 \n", + "late_rate 0.929 0.118 0.711 1.147 0.002 0.001 \n", + "\n", + " ess_bulk ess_tail r_hat \n", + "disasters_missing[0] 618.0 685.0 1.01 \n", + "disasters_missing[1] 712.0 652.0 1.01 \n", + "early_rate 3770.0 3235.0 1.00 \n", + "late_rate 3214.0 2258.0 1.00 " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "az.summary(trace, var_names=\"~disasters\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "hide_input": false, + "kernelspec": { + "display_name": "pymcx", + "language": "python", + "name": "pymcx" + }, + "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.10.6" + }, + "toc": { + "base_numbering": 1, + "nav_menu": {}, + "number_sections": true, + "sideBar": true, + "skip_h1_title": false, + "title_cell": "Table of Contents", + "title_sidebar": "Contents", + "toc_cell": false, + "toc_position": {}, + "toc_section_display": true, + "toc_window_display": false + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/pymc_experimental/__init__.py b/pymc_experimental/__init__.py index 838149d4..ed021a51 100644 --- a/pymc_experimental/__init__.py +++ b/pymc_experimental/__init__.py @@ -28,3 +28,4 @@ from pymc_experimental import distributions, gp, utils from pymc_experimental.inference.fit import fit +from pymc_experimental.marginal_model import MarginalModel diff --git a/pymc_experimental/marginal_model.py b/pymc_experimental/marginal_model.py new file mode 100644 index 00000000..0d94dcc9 --- /dev/null +++ b/pymc_experimental/marginal_model.py @@ -0,0 +1,477 @@ +import warnings +from typing import Sequence, Tuple, Union + +import aesara.tensor as at +import numpy as np +from aeppl import factorized_joint_logprob +from aeppl.abstract import _get_measurable_outputs +from aeppl.logprob import _logprob +from aesara import Mode +from aesara.compile import SharedVariable +from aesara.compile.builders import OpFromGraph +from aesara.graph import Constant, FunctionGraph, ancestors, clone_replace +from aesara.scan import map as scan_map +from aesara.tensor import TensorVariable +from aesara.tensor.elemwise import Elemwise +from pymc import SymbolicRandomVariable +from pymc.aesaraf import constant_fold, inputvars +from pymc.distributions.discrete import Bernoulli, Categorical, DiscreteUniform +from pymc.model import Model + +__all__ = ["MarginalModel"] + + +class MarginalModel(Model): + """Subclass of PyMC Model that implements functionality for automatic + marginalization of variables in the logp transformation + + After defining the full Model, the `marginalize` method can be used to indicate a + subset of variables that should be marginalized + + Notes + ----- + Marginalization functionality is still very restricted. Only finite discrete + variables can be marginalized. Deterministics and Potentials cannot be conditionally + dependent on the marginalized variables. + + Furthermore, not all instances of such variables can be marginalized. If a variable + has batched dimensions, it is required that any conditionally dependent variables + use information from an individual batched dimension. In other words, the graph + connecting the marginalized variable(s) to the dependent variable(s) must be + composed strictly of Elemwise Operations. This is necessary to ensure an efficient + logprob graph can be generated. If you want to bypass this restriction you can + separate each dimension of the marginalized variable into the scalar components + and then stack them together. Note that such graphs will grow exponentially in the + number of marginalized variables. + + For the same reason, it's not possible to marginalize RVs with multivariate + dependent RVs. + + Examples + -------- + + Marginalize over a single variable + + .. code-block:: python + import pymc as pm + from pymc_experimental import MarginalModel + + with MarginalModel() as m: + p = pm.Beta("p", 1, 1) + x = pm.Bernoulli("x", p=p, shape=(3,)) + y = pm.Normal("y", pm.math.switch(x, -10, 10), observed=[10, 10, -10]) + + m.marginalize([x]) + + idata = pm.sample() + + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.marginalized_rvs = [] + + def _delete_rv_mappings(self, rv: TensorVariable) -> None: + """Remove all model mappings referring to rv + + This can be used to "delete" an RV from a model + """ + assert rv in self.basic_RVs, "rv is not part of the Model" + + name = rv.name + self.named_vars.pop(name) + if name in self.named_vars_to_dims: + self.named_vars_to_dims.pop(name) + + value = self.rvs_to_values.pop(rv) + self.values_to_rvs.pop(value) + + self.rvs_to_transforms.pop(rv) + if rv in self.free_RVs: + self.free_RVs.remove(rv) + self.rvs_to_initial_values.pop(rv) + else: + self.observed_RVs.remove(rv) + if rv in self.rvs_to_total_sizes: + self.rvs_to_total_sizes.pop(rv) + + def _transfer_rv_mappings(self, old_rv: TensorVariable, new_rv: TensorVariable) -> None: + """Transfer model mappings from old_rv to new_rv""" + + assert old_rv in self.basic_RVs, "old_rv is not part of the Model" + assert new_rv not in self.basic_RVs, "new_rv is already part of the Model" + + self.named_vars.pop(old_rv.name) + new_rv.name = old_rv.name + self.named_vars[new_rv.name] = new_rv + if old_rv in self.named_vars_to_dims: + self._RV_dims[new_rv] = self._RV_dims.pop(old_rv) + + value = self.rvs_to_values.pop(old_rv) + self.rvs_to_values[new_rv] = value + self.values_to_rvs[value] = new_rv + + self.rvs_to_transforms[new_rv] = self.rvs_to_transforms.pop(old_rv) + if old_rv in self.free_RVs: + index = self.free_RVs.index(old_rv) + self.free_RVs.pop(index) + self.free_RVs.insert(index, new_rv) + self.rvs_to_initial_values[new_rv] = self.rvs_to_initial_values.pop(old_rv) + elif old_rv in self.observed_RVs: + index = self.observed_RVs.index(old_rv) + self.observed_RVs.pop(index) + self.observed_RVs.insert(index, new_rv) + if old_rv in self.rvs_to_total_sizes: + self.rvs_to_total_sizes[new_rv] = self.rvs_to_total_sizes.pop(old_rv) + + def _marginalize(self, user_warnings=False): + fg = FunctionGraph(outputs=self.basic_RVs + self.marginalized_rvs, clone=False) + + toposort = fg.toposort() + rvs_left_to_marginalize = self.marginalized_rvs + for rv_to_marginalize in sorted( + self.marginalized_rvs, + key=lambda rv: toposort.index(rv.owner), + reverse=True, + ): + # Check that no deterministics or potentials dependend on the rv to marginalize + for det in self.deterministics: + if is_conditional_dependent( + det, rv_to_marginalize, self.basic_RVs + rvs_left_to_marginalize + ): + raise NotImplementedError( + f"Cannot marginalize {rv_to_marginalize} due to dependent Deterministic {det}" + ) + for pot in self.potentials: + if is_conditional_dependent( + pot, rv_to_marginalize, self.basic_RVs + rvs_left_to_marginalize + ): + raise NotImplementedError( + f"Cannot marginalize {rv_to_marginalize} due to dependent Potential {pot}" + ) + + old_rvs, new_rvs = replace_finite_discrete_marginal_subgraph( + fg, rv_to_marginalize, self.basic_RVs + rvs_left_to_marginalize + ) + + if user_warnings and len(new_rvs) > 2: + warnings.warn( + "There are multiple dependent variables in a FiniteDiscreteMarginalRV. " + f"Their joint logp terms will be assigned to the first RV: {old_rvs[1]}", + UserWarning, + ) + + rvs_left_to_marginalize.remove(rv_to_marginalize) + + for old_rv, new_rv in zip(old_rvs, new_rvs): + new_rv.name = old_rv.name + if old_rv in self.marginalized_rvs: + idx = self.marginalized_rvs.index(old_rv) + self.marginalized_rvs.pop(idx) + self.marginalized_rvs.insert(idx, new_rv) + if old_rv in self.basic_RVs: + self._transfer_rv_mappings(old_rv, new_rv) + if user_warnings: + transform = self.rvs_to_transforms[new_rv] + if transform is not None: + warnings.warn( + "Transforms for variables that depend on marginalized RVs are currently not working, " + f"rv={new_rv}, transform={transform}", + UserWarning, + ) + return self + + def _logp(self, *args, **kwargs): + return super().logp(*args, **kwargs) + + def logp(self, vars=None, **kwargs): + m = self.clone()._marginalize() + if vars is not None: + if not isinstance(vars, Sequence): + vars = (vars,) + vars = [m[var.name] for var in vars] + return m._logp(vars=vars, **kwargs) + + def clone(self): + m = MarginalModel() + vars = self.basic_RVs + self.potentials + self.deterministics + self.marginalized_rvs + cloned_vars = clone_replace(vars) + vars_to_clone = {var: cloned_var for var, cloned_var in zip(vars, cloned_vars)} + + m.named_vars = {name: vars_to_clone[var] for name, var in self.named_vars.items()} + m.named_vars_to_dims = self.named_vars_to_dims + m.values_to_rvs = {i: vars_to_clone[rv] for i, rv in self.values_to_rvs.items()} + m.rvs_to_values = {vars_to_clone[rv]: i for rv, i in self.rvs_to_values.items()} + m.rvs_to_transforms = {vars_to_clone[rv]: i for rv, i in self.rvs_to_transforms.items()} + # Special logic due to bug in pm.Model + m.rvs_to_total_sizes = { + vars_to_clone[rv]: i for rv, i in self.rvs_to_total_sizes.items() if rv in vars_to_clone + } + m.rvs_to_initial_values = { + vars_to_clone[rv]: i for rv, i in self.rvs_to_initial_values.items() + } + m.free_RVs = [vars_to_clone[rv] for rv in self.free_RVs] + m.observed_RVs = [vars_to_clone[rv] for rv in self.observed_RVs] + m.potentials = [vars_to_clone[pot] for pot in self.potentials] + m.deterministics = [vars_to_clone[det] for det in self.deterministics] + + m.marginalized_rvs = [vars_to_clone[rv] for rv in self.marginalized_rvs] + return m + + def marginalize(self, rvs_to_marginalize: Union[TensorVariable, Sequence[TensorVariable]]): + if not isinstance(rvs_to_marginalize, Sequence): + rvs_to_marginalize = (rvs_to_marginalize,) + + supported_dists = (Bernoulli, Categorical, DiscreteUniform) + for rv_to_marginalize in rvs_to_marginalize: + if rv_to_marginalize not in self.free_RVs: + raise ValueError( + f"Marginalized RV {rv_to_marginalize} is not a free RV in the model" + ) + if not isinstance(rv_to_marginalize.owner.op, supported_dists): + raise NotImplementedError( + f"RV with distribution {rv_to_marginalize.owner.op} cannot be marginalized. " + f"Supported distribution include {supported_dists}" + ) + + self._delete_rv_mappings(rv_to_marginalize) + self.marginalized_rvs.append(rv_to_marginalize) + + # Raise errors and warnings immediately + self.clone()._marginalize(user_warnings=True) + + +class MarginalRV(SymbolicRandomVariable): + """Base class for Marginalized RVs""" + + +class FiniteDiscreteMarginalRV(MarginalRV): + """Base class for Finite Discrete Marginalized RVs""" + + +def find_conditional_input_rvs(output_rvs, all_rvs): + """Find conditionally indepedent input RVs""" + blockers = [other_rv for other_rv in all_rvs if other_rv not in output_rvs] + return [ + var + for var in ancestors(output_rvs, blockers=blockers) + if var in blockers + or (var.owner is None and not isinstance(var, (Constant, SharedVariable))) + ] + + +def is_conditional_dependent( + dependent_rv: TensorVariable, dependable_rv: TensorVariable, all_rvs +) -> bool: + """Check if dependent_rv is conditionall dependent on dependable_rv, + given all conditionally independent all_rvs""" + + return dependable_rv in find_conditional_input_rvs((dependent_rv,), all_rvs) + + +def find_conditional_dependent_rvs(dependable_rv, all_rvs): + """Find rvs than depend on dependable""" + return [ + rv + for rv in all_rvs + if (rv is not dependable_rv and is_conditional_dependent(rv, dependable_rv, all_rvs)) + ] + + +def is_elemwise_subgraph(rv_to_marginalize, other_input_rvs, output_rvs): + # TODO: No need to consider apply nodes outside the subgraph... + fg = FunctionGraph(outputs=output_rvs, clone=False) + + non_elemwise_blockers = [ + o for node in fg.apply_nodes if not isinstance(node.op, Elemwise) for o in node.outputs + ] + blocker_candidates = [rv_to_marginalize] + other_input_rvs + non_elemwise_blockers + blockers = [var for var in blocker_candidates if var not in output_rvs] + + truncated_inputs = [ + var + for var in ancestors(output_rvs, blockers=blockers) + if ( + var in blockers + or (var.owner is None and not isinstance(var, (Constant, SharedVariable))) + ) + ] + + # Check that we reach the marginalized rv following a pure elemwise graph + if rv_to_marginalize not in truncated_inputs: + return False + + # Check that none of the truncated inputs depends on the marginalized_rv + other_truncated_inputs = [inp for inp in truncated_inputs if inp is not rv_to_marginalize] + # TODO: We don't need to go all the way to the root variables + if rv_to_marginalize in ancestors( + other_truncated_inputs, blockers=[rv_to_marginalize, *other_input_rvs] + ): + return False + return True + + +def replace_finite_discrete_marginal_subgraph(fgraph, rv_to_marginalize, all_rvs): + # TODO: This should eventually be integrated in a more general routine that can + # identify other types of supported marginalization, of which finite discrete + # RVs is just one + + dependent_rvs = find_conditional_dependent_rvs(rv_to_marginalize, all_rvs) + if not dependent_rvs: + raise ValueError(f"No RVs depend on marginalized RV {rv_to_marginalize}") + + ndim_supp = {rv.owner.op.ndim_supp for rv in dependent_rvs} + if max(ndim_supp) > 0: + raise NotImplementedError( + "Marginalization of withe dependent Multivariate RVs not implemented" + ) + + marginalized_rv_input_rvs = find_conditional_input_rvs([rv_to_marginalize], all_rvs) + dependent_rvs_input_rvs = [ + rv + for rv in find_conditional_input_rvs(dependent_rvs, all_rvs) + if rv is not rv_to_marginalize + ] + + # If the marginalized RV has batched dimensions, check that graph between + # marginalized RV and dependent RVs is composed strictly of Elemwise Operations. + # This implies (?) that the dimensions are completely independent and a logp graph + # can ultimately be generated that is proportional to the support domain and not + # to the variables dimensions + # We don't need to worry about this if the RV is scalar. + if np.prod(constant_fold(tuple(rv_to_marginalize.shape))) > 1: + if not is_elemwise_subgraph(rv_to_marginalize, dependent_rvs_input_rvs, dependent_rvs): + raise NotImplementedError( + "The subgraph between a marginalized RV and its dependents includes non Elemwise operations. " + "This is currently not supported", + ) + + input_rvs = [*marginalized_rv_input_rvs, *dependent_rvs_input_rvs] + rvs_to_marginalize = [rv_to_marginalize, *dependent_rvs] + + outputs = rvs_to_marginalize + # Clone replace inner RV rng inputs so that we can be sure of the update order + # replace_inputs = {rng: rng.type() for rng in updates_rvs_to_marginalize.keys()} + # Clone replace outter RV inputs, so that their shared RNGs don't make it into + # the inner graph of the marginalized RVs + # FIXME: This shouldn't be needed! + replace_inputs = {} + replace_inputs.update({input_rv: input_rv.type() for input_rv in input_rvs}) + cloned_outputs = clone_replace(outputs, replace=replace_inputs) + + marginalization_op = FiniteDiscreteMarginalRV( + inputs=list(replace_inputs.values()), + outputs=cloned_outputs, + ndim_supp=0, + ) + marginalized_rvs = marginalization_op(*replace_inputs.keys()) + fgraph.replace_all(tuple(zip(rvs_to_marginalize, marginalized_rvs))) + return rvs_to_marginalize, marginalized_rvs + + +@_get_measurable_outputs.register(FiniteDiscreteMarginalRV) +def _get_measurable_outputs_finite_discrete_marginal_rv(op, node): + # Marginalized RVs are not measurable + return node.outputs[1:] + + +def get_domain_of_finite_discrete_rv(rv: TensorVariable) -> Tuple[int, ...]: + op = rv.owner.op + if isinstance(op, Bernoulli): + return (0, 1) + elif isinstance(op, Categorical): + p_param = rv.owner.inputs[3] + return tuple(range(at.get_vector_length(p_param))) + elif isinstance(op, DiscreteUniform): + lower, upper = constant_fold(rv.owner.inputs[3:]) + return tuple(range(lower, upper + 1)) + + raise NotImplementedError(f"Cannot compute domain for op {op}") + + +@_logprob.register(FiniteDiscreteMarginalRV) +def finite_discrete_marginal_rv_logp(op, values, *inputs, **kwargs): + # Clone the inner RV graph of the Marginalized RV + marginalized_rvs_node = op.make_node(*inputs) + marginalized_rv, *dependent_rvs = clone_replace( + op.inner_outputs, + replace={u: v for u, v in zip(op.inner_inputs, marginalized_rvs_node.inputs)}, + ) + + # Obtain the joint_logp graph of the inner RV graph + # Some inputs are not root inputs (such as transformed projections of value variables) + # Or cannot be used as inputs to an OpFromGraph (shared variables and constants) + inputs = list(inputvars(inputs)) + rvs_to_values = {} + dummy_marginalized_value = marginalized_rv.clone() + rvs_to_values[marginalized_rv] = dummy_marginalized_value + rvs_to_values.update(zip(dependent_rvs, values)) + logps_dict = factorized_joint_logprob(rv_values=rvs_to_values, **kwargs) + + # Reduce logp dimensions corresponding to broadcasted variables + values_axis_bcast = [] + for value in values: + vbcast = value.type.broadcastable + mbcast = dummy_marginalized_value.type.broadcastable + mbcast = (True,) * (len(vbcast) - len(mbcast)) + mbcast + values_axis_bcast.append([i for i, (m, v) in enumerate(zip(mbcast, vbcast)) if m != v]) + joint_logp = logps_dict[dummy_marginalized_value] + for value, values_axis_bcast in zip(values, values_axis_bcast): + joint_logp += logps_dict[value].sum(values_axis_bcast, keepdims=True) + + # Wrap the joint_logp graph in an OpFromGrah, so that we can evaluate it at different + # values of the marginalized RV + # OpFromGraph does not accept constant inputs + non_const_values = [ + value + for value in rvs_to_values.values() + if not isinstance(value, (Constant, SharedVariable)) + ] + joint_logp_op = OpFromGraph([*non_const_values, *inputs], [joint_logp], inline=True) + + # Compute the joint_logp for all possible n values of the marginalized RV. We assume + # each original dimension is independent so that it sufficies to evaluate the graph + # n times, once with each possible value of the marginalized RV replicated across + # batched dimensions of the marginalized RV + + # PyMC does not allow RVs in the logp graph, even if we are just using the shape + marginalized_rv_shape = constant_fold(tuple(marginalized_rv.shape)) + marginalized_rv_domain = get_domain_of_finite_discrete_rv(marginalized_rv) + marginalized_rv_domain_tensor = at.swapaxes( + at.full( + (*marginalized_rv_shape, len(marginalized_rv_domain)), + marginalized_rv_domain, + dtype=marginalized_rv.dtype, + ), + axis1=0, + axis2=-1, + ) + + # OpFromGraph does not accept constant inputs + non_const_values = [ + value for value in values if not isinstance(value, (Constant, SharedVariable)) + ] + # Arbitrary cutoff to switch to Scan implementation to keep graph size under control + if len(marginalized_rv_domain) <= 10: + joint_logps = [ + joint_logp_op(marginalized_rv_domain_tensor[i], *non_const_values, *inputs) + for i in range(len(marginalized_rv_domain)) + ] + else: + # Make sure this is rewrite is registered + from pymc.aesaraf import local_remove_check_parameter + + def logp_fn(marginalized_rv_const, *non_sequences): + return joint_logp_op(marginalized_rv_const, *non_sequences) + + joint_logps, _ = scan_map( + fn=logp_fn, + sequences=marginalized_rv_domain_tensor, + non_sequences=[*non_const_values, *inputs], + mode=Mode().including("local_remove_check_parameter"), + ) + + joint_logps = at.logsumexp(joint_logps, axis=0) + + # We have to add dummy logps for the remaining value variables, otherwise AePPL will raise + return joint_logps, *(at.constant(0),) * (len(values) - 1) diff --git a/pymc_experimental/tests/test_marginal_model.py b/pymc_experimental/tests/test_marginal_model.py new file mode 100644 index 00000000..6048bc24 --- /dev/null +++ b/pymc_experimental/tests/test_marginal_model.py @@ -0,0 +1,410 @@ +import itertools +from contextlib import suppress as does_not_warn + +import aesara.tensor as at +import numpy as np +import pandas as pd +import pymc as pm +import pytest +from aeppl.logprob import _logprob +from pymc import ImputationWarning, inputvars +from pymc.distributions import transforms +from pymc.util import UNSET +from scipy.special import logsumexp + +from pymc_experimental.marginal_model import FiniteDiscreteMarginalRV, MarginalModel + + +@pytest.fixture +def disaster_model(): + # fmt: off + disaster_data = pd.Series( + [4, 5, 4, 0, 1, 4, 3, 4, 0, 6, 3, 3, 4, 0, 2, 6, + 3, 3, 5, 4, 5, 3, 1, 4, 4, 1, 5, 5, 3, 4, 2, 5, + 2, 2, 3, 4, 2, 1, 3, np.nan, 2, 1, 1, 1, 1, 3, 0, 0, + 1, 0, 1, 1, 0, 0, 3, 1, 0, 3, 2, 2, 0, 1, 1, 1, + 0, 1, 0, 1, 0, 0, 0, 2, 1, 0, 0, 0, 1, 1, 0, 2, + 3, 3, 1, np.nan, 2, 1, 1, 1, 1, 2, 4, 2, 0, 0, 1, 4, + 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1] + ) + # fmt: on + years = np.arange(1851, 1962) + + with MarginalModel() as disaster_model: + switchpoint = pm.DiscreteUniform("switchpoint", lower=years.min(), upper=years.max()) + early_rate = pm.Exponential("early_rate", 1.0, initval=3) + late_rate = pm.Exponential("late_rate", 1.0, initval=1) + rate = pm.math.switch(switchpoint >= years, early_rate, late_rate) + with pytest.warns(ImputationWarning): + disasters = pm.Poisson("disasters", rate, observed=disaster_data) + + return disaster_model, years + + +@pytest.mark.filterwarnings("error") +def test_marginalized_bernoulli_logp(): + """Test logp of IR TestFiniteMarginalDiscreteRV directly""" + mu = at.vector("mu") + + idx = pm.Bernoulli.dist(0.7, name="idx") + y = pm.Normal.dist(mu=mu[idx], sigma=1.0, name="y") + marginal_rv_node = FiniteDiscreteMarginalRV([mu], [idx, y], ndim_supp=None, n_updates=0,)( + mu + )[0].owner + + y_vv = y.clone() + (logp,) = _logprob( + marginal_rv_node.op, + (y_vv,), + *marginal_rv_node.inputs, + ) + + ref_logp = pm.logp(pm.NormalMixture.dist(w=[0.3, 0.7], mu=mu, sigma=1.0), y_vv) + np.testing.assert_almost_equal( + logp.eval({mu: [-1, 1], y_vv: 2}), + ref_logp.eval({mu: [-1, 1], y_vv: 2}), + ) + + +@pytest.mark.filterwarnings("error") +def test_marginalized_basic(): + data = [2] * 5 + + with MarginalModel() as m: + sigma = pm.HalfNormal("sigma") + idx = pm.Categorical("idx", p=[0.1, 0.3, 0.6]) + mu = at.switch( + at.eq(idx, 0), + -1.0, + at.switch( + at.eq(idx, 1), + 0.0, + 1.0, + ), + ) + y = pm.Normal("y", mu=mu, sigma=sigma) + z = pm.Normal("z", y, observed=data) + + m.marginalize([idx]) + assert idx not in m.free_RVs + assert [rv.name for rv in m.marginalized_rvs] == ["idx"] + + # Test logp + with pm.Model() as m_ref: + sigma = pm.HalfNormal("sigma") + y = pm.NormalMixture("y", w=[0.1, 0.3, 0.6], mu=[-1, 0, 1], sigma=sigma) + z = pm.Normal("z", y, observed=data) + + test_point = m_ref.initial_point() + ref_logp = m_ref.compile_logp()(test_point) + ref_dlogp = m_ref.compile_dlogp([m_ref["y"]])(test_point) + + # Assert we can marginalize and unmarginalize internally non-destructively + for i in range(3): + np.testing.assert_almost_equal( + m.compile_logp()(test_point), + ref_logp, + ) + np.testing.assert_almost_equal( + m.compile_dlogp([m["y"]])(test_point), + ref_dlogp, + ) + + +@pytest.mark.filterwarnings("error") +def test_multiple_independent_marginalized_rvs(): + with MarginalModel() as m: + sigma = pm.HalfNormal("sigma") + idx1 = pm.Bernoulli("idx1", p=0.75) + x = pm.Normal("x", mu=idx1, sigma=sigma) + idx2 = pm.Bernoulli("idx2", p=0.75, shape=(5,)) + y = pm.Normal("y", mu=(idx2 * 2 - 1), sigma=sigma, shape=(5,)) + + m.marginalize([idx1, idx2]) + m["x"].owner is not m["y"].owner + _m = m.clone()._marginalize() + _m["x"].owner is not _m["y"].owner + + with pm.Model() as m_ref: + sigma = pm.HalfNormal("sigma") + x = pm.NormalMixture("x", w=[0.25, 0.75], mu=[0, 1], sigma=sigma) + y = pm.NormalMixture("y", w=[0.25, 0.75], mu=[-1, 1], sigma=sigma, shape=(5,)) + + # Test logp + test_point = m_ref.initial_point() + x_logp, y_logp = m.compile_logp(vars=[m["x"], m["y"]], sum=False)(test_point) + x_ref_log, y_ref_logp = m_ref.compile_logp(vars=[m_ref["x"], m_ref["y"]], sum=False)(test_point) + np.testing.assert_array_almost_equal(x_logp, x_ref_log.sum()) + np.testing.assert_array_almost_equal(y_logp, y_ref_logp) + + +@pytest.mark.filterwarnings("error") +def test_multiple_dependent_marginalized_rvs(): + """Test that marginalization works when there is more than one dependent RV""" + with MarginalModel() as m: + sigma = pm.HalfNormal("sigma") + idx = pm.Bernoulli("idx", p=0.75) + x = pm.Normal("x", mu=idx, sigma=sigma) + y = pm.Normal("y", mu=(idx * 2 - 1), sigma=sigma, shape=(5,)) + + ref_logp_x_y_fn = m.compile_logp([idx, x, y]) + + with pytest.warns(UserWarning, match="There are multiple dependent variables"): + m.marginalize([idx]) + + m["x"].owner is not m["y"].owner + _m = m.clone()._marginalize() + _m["x"].owner is _m["y"].owner + + tp = m.initial_point() + ref_logp_x_y = logsumexp([ref_logp_x_y_fn({**tp, **{"idx": idx}}) for idx in (0, 1)]) + logp_x_y = m.compile_logp([x, y])(tp) + np.testing.assert_array_almost_equal(logp_x_y, ref_logp_x_y) + + +@pytest.mark.filterwarnings("error") +def test_nested_marginalized_rvs(): + """Test that marginalization works when there are nested marginalized RVs""" + + with MarginalModel() as m: + sigma = pm.HalfNormal("sigma") + + idx = pm.Bernoulli("idx", p=0.75) + dep = pm.Normal("dep", mu=at.switch(at.eq(idx, 0), -1000, 1000), sigma=sigma) + + sub_idx = pm.Bernoulli("sub_idx", p=at.switch(at.eq(idx, 0), 0.15, 0.95), shape=(5,)) + sub_dep = pm.Normal("sub_dep", mu=dep + sub_idx * 100, sigma=sigma, shape=(5,)) + + ref_logp_fn = m.compile_logp(vars=[idx, dep, sub_idx, sub_dep]) + + with pytest.warns(UserWarning, match="There are multiple dependent variables"): + m.marginalize([idx, sub_idx]) + + assert set(m.marginalized_rvs) == {idx, sub_idx} + + # Test logp + test_point = m.initial_point() + test_point["dep"] = 1000 + test_point["sub_dep"] = np.full((5,), 1000 + 100) + + ref_logp = [ + ref_logp_fn({**test_point, **{"idx": idx, "sub_idx": np.array(sub_idxs)}}) + for idx in (0, 1) + for sub_idxs in itertools.product((0, 1), repeat=5) + ] + logp = m.compile_logp(vars=[dep, sub_dep])(test_point) + + np.testing.assert_almost_equal( + logp, + logsumexp(ref_logp), + ) + + +@pytest.mark.filterwarnings("error") +def test_marginalized_change_point_model(disaster_model): + m, years = disaster_model + + ip = m.initial_point() + ip.pop("switchpoint") + ref_logp_fn = m.compile_logp( + [m["switchpoint"], m["disasters_observed"], m["disasters_missing"]] + ) + ref_logp = logsumexp([ref_logp_fn({**ip, **{"switchpoint": year}}) for year in years]) + + with pytest.warns(UserWarning, match="There are multiple dependent variables"): + m.marginalize(m["switchpoint"]) + + logp = m.compile_logp([m["disasters_observed"], m["disasters_missing"]])(ip) + np.testing.assert_almost_equal(logp, ref_logp) + + +@pytest.mark.slow +@pytest.mark.filterwarnings("error") +def test_marginalized_change_point_model_sampling(disaster_model): + m, _ = disaster_model + + rng = np.random.default_rng(211) + + with m: + before_marg = pm.sample(chains=2, random_seed=rng).posterior.stack(sample=("draw", "chain")) + + with pytest.warns(UserWarning, match="There are multiple dependent variables"): + m.marginalize([m["switchpoint"]]) + + with m: + after_marg = pm.sample(chains=2, random_seed=rng).posterior.stack(sample=("draw", "chain")) + + np.testing.assert_allclose( + before_marg["early_rate"].mean(), after_marg["early_rate"].mean(), rtol=1e-2 + ) + np.testing.assert_allclose( + before_marg["late_rate"].mean(), after_marg["late_rate"].mean(), rtol=1e-2 + ) + np.testing.assert_allclose( + before_marg["disasters_missing"].mean(), after_marg["disasters_missing"].mean(), rtol=1e-2 + ) + + +@pytest.mark.filterwarnings("error") +def test_not_supported_marginalized(): + """Marginalized graphs with non-Elemwise Operations are not supported as they + would violate the batching logp assumption""" + mu = at.constant([-1, 1]) + + # Allowed, as only elemwise operations connect idx to y + with MarginalModel() as m: + p = pm.Beta("p", 1, 1) + idx = pm.Bernoulli("idx", p=p, size=2) + y = pm.Normal("y", mu=pm.math.switch(idx, 0, 1)) + m.marginalize([idx]) + + # ALlowed, as index operation does not connext idx to y + with MarginalModel() as m: + p = pm.Beta("p", 1, 1) + idx = pm.Bernoulli("idx", p=p, size=2) + y = pm.Normal("y", mu=pm.math.switch(idx, mu[0], mu[1])) + m.marginalize([idx]) + + # Not allowed, as index operation connects idx to y + with MarginalModel() as m: + p = pm.Beta("p", 1, 1) + idx = pm.Bernoulli("idx", p=p, size=2) + # Not allowed + y = pm.Normal("y", mu=mu[idx]) + with pytest.raises(NotImplementedError): + m.marginalize(idx) + + # Not allowed, as index operation connects idx to y, even though there is a + # pure Elemwise connection between the two + with MarginalModel() as m: + p = pm.Beta("p", 1, 1) + idx = pm.Bernoulli("idx", p=p, size=2) + y = pm.Normal("y", mu=mu[idx] + idx) + with pytest.raises(NotImplementedError): + m.marginalize(idx) + + # Multivariate dependent RVs not supported + with MarginalModel() as m: + x = pm.Bernoulli("x", p=0.7) + y = pm.Dirichlet("y", a=pm.math.switch(x, [1, 1, 1], [10, 10, 10])) + with pytest.raises( + NotImplementedError, + match="Marginalization of withe dependent Multivariate RVs not implemented", + ): + m.marginalize(x) + + +@pytest.mark.filterwarnings("error") +def test_marginalized_deterministic_and_potential(): + with MarginalModel() as m: + x = pm.Bernoulli("x", p=0.7) + y = pm.Normal("y", x) + z = pm.Normal("z", x) + det = pm.Deterministic("det", y + z) + pot = pm.Potential("pot", y + z + 1) + + with pytest.warns(UserWarning, match="There are multiple dependent variables"): + m.marginalize([x]) + + y_draw, z_draw, det_draw, pot_draw = pm.draw([y, z, det, pot], draws=5) + np.testing.assert_almost_equal(y_draw + z_draw, det_draw) + np.testing.assert_almost_equal(det_draw, pot_draw - 1) + + y_value = m.rvs_to_values[y] + z_value = m.rvs_to_values[z] + det_value, pot_value = m.replace_rvs_by_values([det, pot]) + assert set(inputvars([det_value, pot_value])) == {y_value, z_value} + assert det_value.eval({y_value: 2, z_value: 5}) == 7 + assert pot_value.eval({y_value: 2, z_value: 5}) == 8 + + +@pytest.mark.filterwarnings("error") +def test_not_supported_marginalized_deterministic_and_potential(): + with MarginalModel() as m: + x = pm.Bernoulli("x", p=0.7) + y = pm.Normal("y", x) + det = pm.Deterministic("det", x + y) + + with pytest.raises( + NotImplementedError, match="Cannot marginalize x due to dependent Deterministic det" + ): + m.marginalize([x]) + + with MarginalModel() as m: + x = pm.Bernoulli("x", p=0.7) + y = pm.Normal("y", x) + pot = pm.Potential("pot", x + y) + + with pytest.raises( + NotImplementedError, match="Cannot marginalize x due to dependent Potential pot" + ): + m.marginalize([x]) + + +@pytest.mark.filterwarnings("error") +@pytest.mark.parametrize( + "transform, expected_warning", + ( + (None, does_not_warn()), + pytest.param( + UNSET, + pytest.warns( + UserWarning, match="Transforms for variables that depend on marginalized RVs" + ), + marks=pytest.mark.xfail( + reason="AePPL transform rewrite does not support multiple_output nodes", + raises=AssertionError, + ), + ), + pytest.param( + transforms.log, + pytest.warns( + UserWarning, match="Transforms for variables that depend on marginalized RVs" + ), + marks=pytest.mark.xfail( + reason="AePPL transform rewrite does not support multiple_output nodes", + raises=AssertionError, + ), + ), + ), +) +def test_marginalized_transforms(transform, expected_warning): + w = [0.1, 0.3, 0.6] + data = [0, 5, 10] + initval = 0.5 # Value that will be negative on the unconstrained space + + with pm.Model() as m_ref: + sigma = pm.Mixture( + "sigma", + w=w, + comp_dists=pm.HalfNormal.dist([1, 2, 3]), + initval=initval, + transform=transform, + ) + y = pm.Normal("y", 0, sigma, observed=data) + + with MarginalModel() as m: + idx = pm.Categorical("idx", p=w) + sigma = pm.HalfNormal( + "sigma", + at.switch( + at.eq(idx, 0), + 1, + at.switch( + at.eq(idx, 1), + 2, + 3, + ), + ), + initval=initval, + transform=transform, + ) + y = pm.Normal("y", 0, sigma, observed=data) + + with expected_warning: + m.marginalize([idx]) + + ip = m.initial_point() + if transform is not None: + assert "sigma_log__" in ip + np.testing.assert_allclose(m.compile_logp()(ip), m_ref.compile_logp()(ip))