{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Waldo Posterior P-value Construction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## INTRO & SETTINGS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The goal of this tutorial is to show how to construct confidence sets for a **generative-model-based**\n", "test statistic, using both `Waldo` (posterior-based) and `Posterior`, calibrated via **p-values**\n", "(monotonic probabilistic classification), on a two-component Gaussian-mixture location model (as used\n", "in the MLST paper).\n", "\n", "The likelihood is a two-component Gaussian mixture:\n", "\n", "$$X \\mid \\theta \\sim w_0 \\cdot \\mathcal{N}(\\theta, \\sigma_0^2 I) + w_1 \\cdot \\mathcal{N}(\\theta, \\sigma_1^2 I)$$\n", "\n", "where the mixture weights and component scales are fixed. The parameter of interest is the location\n", "$\\theta$. As in the other tutorials, we leverage a posterior estimator (`SNPE` from the `sbi` library)\n", "as the main underlying inferential model \u2014 both `Waldo` (with `estimation_method='posterior'`) and\n", "`Posterior` build on it, just using it differently to form the test statistic." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# SETTINGS\n", "\n", "POI_DIM = 1\n", "DATA_DIM = 1\n", "BATCH_SIZE = 1 # assume we get to see only one observed sample for each \"true\" parameter\n", "POI_SPACE_BOUNDS = {'low': -2.0, 'high': 2.0}\n", "POI_GRID_SIZE = 1_000\n", "\n", "CONFIDENCE_LEVEL = 0.90\n", "\n", "B = 20_000 # simulations to train the posterior estimator\n", "B_PRIME = 10_000 # simulations to train the p-values calibration model\n", "NUM_POSTERIOR_SAMPLES = 20_000" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## SIMULATE" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import torch\n", "\n", "from lf2i.simulator.gmm import GaussianMixtureLocation\n", "\n", "gmm = GaussianMixtureLocation(\n", " poi_space_bounds=POI_SPACE_BOUNDS,\n", " poi_grid_size=POI_GRID_SIZE,\n", " poi_dim=POI_DIM,\n", " data_dim=DATA_DIM,\n", " batch_size=BATCH_SIZE,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Observations" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([[0.8363]])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_obs = gmm(param=torch.tensor([[0.75]]), batch_size=1).reshape(1, DATA_DIM)\n", "x_obs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## CONFIDENCE SET via Posterior + p-values\n\n`Posterior` uses the (log-)posterior density itself as the test statistic. Calibrating it via\n`calibration_method='p-values'` fits a monotonic probabilistic classifier that estimates the\nrejection probability $P(T \\le \\tau \\mid \\theta)$ directly, which doubles as a p-value function\nusable for confidence sets." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/ocean/projects/mth260009p/jcarzon/conda/envs/tsi/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Estimating test statistic ...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/ocean/projects/mth260009p/jcarzon/conda/envs/tsi/lib/python3.11/site-packages/sbi/neural_nets/net_builders/flow.py:149: UserWarning: In one-dimensional output space, this flow is limited to Gaussians\n", " x_numel = get_numel(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " Neural network successfully converged after 44 epochs.\n", "Calibration ...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Evaluating posterior for 10000 points ...: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 10000/10000 [02:45<00:00, 60.42it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Retraining calibration...\n", " [calibration] CDF estimator \u2014 augment_kwargs ignored.\n", " [calibration] CDF estimator: fitting on 10000 raw (T, \u03b8) pairs.\n", "\n", "Constructing confidence sets ...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Evaluating posterior for 1 points ...: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 1/1 [01:51<00:00, 111.04s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Computing p-values...\n", "\n", "Creating set 0...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "from lf2i.inference import LF2I\n", "from lf2i.test_statistics import Posterior\n", "from sbi.inference import SNPE\n", "\n", "posterior_ts = Posterior(poi_dim=POI_DIM, estimator=SNPE())\n", "lf2i_posterior = LF2I(test_statistic=posterior_ts)\n", "\n", "posterior_region = lf2i_posterior.inference(\n", " x=x_obs,\n", " evaluation_grid=gmm.poi_grid.reshape(-1, 1),\n", " confidence_level=CONFIDENCE_LEVEL,\n", " calibration_method='p-values',\n", " calibration_model='nn',\n", " simulator=gmm,\n", " b=B,\n", " b_prime=B_PRIME,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## CONFIDENCE SET via Waldo (posterior-based) + p-values\n", "\n", "`Waldo` with `estimation_method='posterior'` instead centers the test statistic on the posterior mean\n", "and variance (estimated from posterior samples), rather than the density itself \u2014 a different way of\n", "using the same underlying posterior estimator to build a confidence set." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Estimating test statistic ...\n", " Neural network successfully converged after 47 epochs.\n", "Calibration ...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Approximating conditional mean and covariance for 10000 points...: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 10000/10000 [09:56<00:00, 16.75it/s] \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Retraining calibration...\n", " [calibration] CDF estimator \u2014 augment_kwargs ignored.\n", " [calibration] CDF estimator: fitting on 10000 raw (T, \u03b8) pairs.\n", "\n", "Constructing confidence sets ...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Approximating conditional mean and covariance for 1 points...: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 1/1 [00:00<00:00, 7.58it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Computing p-values...\n", "\n", "Creating set 0...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "from lf2i.test_statistics import Waldo\n", "\n", "waldo_ts = Waldo(\n", " estimator=SNPE(),\n", " poi_dim=POI_DIM,\n", " estimation_method='posterior',\n", " num_posterior_samples=NUM_POSTERIOR_SAMPLES,\n", ")\n", "lf2i_waldo = LF2I(test_statistic=waldo_ts)\n", "\n", "waldo_region = lf2i_waldo.inference(\n", " x=x_obs,\n", " evaluation_grid=gmm.poi_grid.reshape(-1, 1),\n", " confidence_level=CONFIDENCE_LEVEL,\n", " calibration_method='p-values',\n", " calibration_model='nn',\n", " simulator=gmm,\n", " b=B,\n", " b_prime=B_PRIME,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## COMPARISON" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alongside the two LF2I-calibrated regions, we also plot the posterior's own highest-posterior-density\n", "(HPD) credible region at the same level, as an (uncalibrated) reference." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABRQAAATACAYAAACBPstlAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAArmZJREFUeJzs3Xd4VNW+xvF30iaNJEASIAiE3rFQDj2hBZAiHUQUUAQpIioqcK6QqIioYAMUbEFFOqgUG0dAQap6EAQRMFQVEiAJ6W3fP3IyMqRNCgxxvp/nmeeu2XvttX97Msdn7stae5sMwzAEAAAAAAAAADZwsncBAAAAAAAAAMoOAkUAAAAAAAAANiNQBAAAAAAAAGAzAkUAAAAAAAAANiNQBAAAAAAAAGAzAkUAAAAAAAAANiNQBAAAAAAAAGAzAkUAAAAAAAAANiNQBAAAAAAAAGAzAkUAAIBScuTIEd1zzz2qUqWKzGazgoODNWnSJMXExBR43IYNGxQSEiIfHx/5+PgoNDRUmzZtyrNvVlaWZs6cqaCgIHl4eCg0NFQ///xznn0zMjLUtGlTtW3bVoZhlPj67CU0NFQmk0knT560dyklcuLECfXv31/+/v5ycnKSyWTStm3b7F1WLidPnpTJZFJoaKi9SwEAADcpAkUAAIBS8M0336hFixb6+OOP5efnp969e8tsNmvhwoW6/fbbdfbs2TyPe/XVV9W3b199//33ateunTp37qy9e/eqd+/eWrBgQa7+c+fO1bPPPitfX19169ZNu3btUteuXXXlypVcfd944w0dPnxYCxculMlkKvVrhu2ysrI0aNAgffLJJ6pbt65GjBihkSNHqnLlyje8lm3btslkMmnUqFE3/NxXI7gEAKDscrF3AQAAAGVdUlKShg8frqSkJM2cOVMRERGSJMMw9OSTT+rll1/WAw88oC+//NLquKNHj2rq1Kkym83aunWr2rRpI0n67bff1LZtWz366KPq0aOH6tSpI0lKT0/Xiy++qFtvvVV79uyR2WzWsmXLNGLECC1evFhTp061jH3+/HmFh4dr3Lhxuv3222/QJ3F9fPDBB0pKSlLVqlXtXUqxnTx5Uv/973/VoUMHffvtt/YuBwAAoESYoQgAAFBC69at0/nz51W/fn3NmjXLst1kMun5559XcHCwvvrqKx04cMDquNdee02ZmZl66KGHLGGiJNWrV0///ve/lZGRoddee82y/eTJk4qNjdWwYcNkNpslSXfffbfc3d313//+12rsJ598Uq6urnruueeuwxXfWNWrV1eDBg3k6upq71KKLWeGaq1atexcCQAAQMkRKAIAAJTQDz/8IEnq2LGjnJysf165urqqXbt2kqRPP/3Ual/OfRIHDRqUa8ycbRs2bLBsu3z5siSpfPnylm1OTk7y9fW17JOk77//Xh9++KHmzJmjChUqFOuarl6OGh8fr8cee0w1a9aUq6urpkyZYul36dIlTZ8+XY0aNZKHh4d8fX3VuXNnbdy4Md+x161bp9atW8vT01P+/v4aPHiwjh8/rvDwcJlMJkVGRlr1L+geiocPH7bct9LNzU1Vq1bVfffdp6NHj+bqe/VS30uXLmn8+PGW+102adJE7733Xp71Hjp0SCNGjFCtWrXk7u6ugIAA3XbbbZoyZYr+/PPPQj9Lk8mkkJAQSdLSpUtlMpnyXOq7efNmdevWTeXLl5e7u7vq16+vadOmKTY2NteYV39WOUvkK1asKJPJlCtcvtqoUaPUqVOnXLWYTCaFh4fn6p+cnKxp06apRo0aMpvNqlOnjubOnZvvPTlt/T6Eh4erZs2akqTt27db1XH1UuzvvvtOkyZNUrNmzVS+fHl5eHioQYMG+X4uAADgxmDJMwAAQAklJiZKsg76rlaxYkVJspqhGBsbq9OnT0tSnkuSq1WrJn9/f506dUrx8fHy8fFR9erVJWUvic5x+fJlRUdHW/ZlZWVp0qRJat68uR544IESX1tycrJCQkJ06tQphYSE6I477rBc52+//aauXbvqzJkzCg4OVvfu3XXlyhXt3r1bffr00UsvvWS1DFvKnpU5ZcoUOTk5qWPHjqpcubL27NmjVq1aqU+fPkWq7T//+Y/69Omj5ORk3X777QoNDdWvv/6qDz/8UOvXr9fmzZvVoUOHXMfFxsaqTZs2SkhIUIcOHRQTE6Nvv/1WDzzwgLKysjRmzBhL3x9++EHt27dXSkqKmjVrprvuuktJSUn6/fff9dprr6lfv36qUqVKgXWOHDlSf/31l7788kvVrl1b7du3lyQ1aNDA0mfOnDmaMWOGXFxcFBISIn9/f+3cuVNz587V+vXr9e2336pSpUq5xv722281duxY1atXT2FhYfrjjz9yhdpXa9++fZ61SNJtt91m1TctLU1hYWE6fPiwQkNDlZiYqO3bt2vatGm6cuVKrtmvRfk+3HbbbRo4cKDWrl2rSpUqqUePHlY15njiiSd04MABNWvWTF26dFFKSop+/PFHzZ07Vxs3btTu3bvl7e1d4OcPAACuAwMAAAAlMmPGDEOSMXTo0Dz39+nTx5BkNG/e3LLtwIEDhiSjfPny+Y572223GZKMn3/+2bLtjjvuMMqXL2989913xqVLl4xRo0YZkowNGzYYhmEYCxcuNEwmk7Fnz54SXVNUVJQhyZBktGnTxrh8+bLV/oyMDKNp06aGJOPFF180MjMzLfuOHTtm1KxZ03B2djYOHjxo2X7ixAnDzc3NcHNzM7755hvL9vT0dGP06NGW873//vtW5woJCTEkGVFRUZZtCQkJRqVKlQxJxoIFC6z6z58/35Bk3HLLLUZycrJl+9atWy3nGDZsmJGSkmLZt379ekOSUb16daux7rvvPkOS8fLLL+f6jI4cOWL88ccf+X+IV8k598iRI3Pt27t3r+Hk5GR4e3sbu3fvtmxPSUkxBg8ebEgyBg4caHXMrFmzLNcyd+5cm2qwpRbDsP7bh4SEGHFxcZZ9+/btM5ydnQ1PT0/jypUrlu3F+T7knCckJCTfWjdv3mzExsZabUtJSTHGjh1rSDIiIiKKdO0AAKB0sOQZAACghDp27CgpewlzTEyM1b5z587p66+/liSrJzEnJCRIkjw9PfMd18vLK9dx8+bNU2Jiojp06KAKFSooMjJSd955p3r37q2LFy/q6aef1v33369WrVpZjklJSVFWVlaxr+/111+Xn5+f1bYNGzbo4MGDGjhwoJ544gmrWXF16tTRvHnzlJmZqbffftuy/b333lNaWpruvfdey7JbSXJxcdH8+fOLNNNs1apVOn/+vNq0aaOJEyda7Xv00UfVvHlznT17VmvXrs11rI+PjxYsWGC5D6Uk9evXT02aNNHp06etllZHR0dLkrp27ZprnAYNGhQ6O9EWCxYsUFZWlh5++GH961//smw3m81asGCBPDw8tH79ep05cybXsU2bNtUTTzxR4hry4uTkpMWLF8vHx8eyrUWLFurZs6eSkpK0f/9+y/bifB9s0bNnT/n6+lptM5vNevXVV+Xi4pLrNgIAAODGIFAEAAAoobCwMN1xxx1KSEhQz549tXfvXiUkJGjXrl3q2bOnMjIyJKnApai2Cg0N1Y8//qinnnpK48aN03vvvWcJVaZPny7DMPTCCy9Iyl4S3LhxY3l4eMjb21vjxo1TSkpKkc5XpUoVtWjRItf2r776SpI0YMCAPI/LWWq8d+9ey7adO3dKkgYPHpyrv5+fn8LCwmyu67vvvpMk3XPPPXnuHzFihFW/qzVv3tyyDP1q9erVkySr+yI2b95ckjRx4kRt27bN8rcsTQVdS2BgoMLCwpSVlWX5/K7Wu3dvmUymUq9JkmrUqKH69evn2p7X51Sc74Otzp07p7feektTpkzR/fffr1GjRmn8+PFyc3PTsWPHijweAAAoOe6hCAAAUEImk0nr1q1Tr169tH//fqtZZpUqVVJ4eLj+7//+z+oeizmz8ZKSkvIdN+fejOXKlbPa3rhxY0tomGP//v1699139frrr8vf31/nzp1Tnz591KRJE61du1aHDx9WeHi4vLy8NH/+fJuvLefejNfKmcV3zz335BvqSbKasZkTQFWrVq1I58rLH3/8IUkKDg7Oc3/O9nPnzuXad8stt+R5TM7nnJqaatn2xBNPaMeOHdq2bZs6deokb29vtWnTRr169dKoUaNyzZ4rjpJcS1E+s6IqyudUnO+DLebPn69p06YpPT29SMcBAIDri0ARAACgFNSoUUP//e9/tX79en3//fdKTk5W48aNdc8992jdunWSsoPAHDlB0OXLl5WYmGhZ3ny1s2fPWsYuiGEYmjhxopo1a6aHHnpIkrRw4UKlpKRo1apVCg4O1oABA3T8+HEtXLhQzz33XIFLra/m7u6e5/acJdQ9evTI82EhOfz9/W06T2kraNZeUWaK+vj46JtvvtHOnTu1YcMGbdu2Td98842+/vprzZkzR999953q1q1bGiXnq6Brye/vUxqK8jldj+/D7t279fjjj8vX11evvfaaQkNDVblyZctS9aCgIJuesg0AAEofgSIAAEApcXFx0eDBg3Mt6f3+++8lZS9XzuHn56fq1avr9OnT+umnn6yebCtJZ86cUUxMjGrUqGF1D7u8vPfee9q3b5++++47OTs7S5J+/fVX+fv7W816a9WqlZYuXarjx4+rWbNmJbjSv2evjRkzRgMHDrTpmCpVqujo0aM6c+aMGjVqlGt/XvcIzE9QUJAk6dSpU3nuz5kxV7VqVZvHzI/JZFL79u0tf6MLFy5oypQp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w4YNU0hIiMaNG6c5c+bov//9r8LCwuTq6qpjx45p9erVeu2116weYGOradOmafny5erZs6cmT56sChUqaOnSpYqKitLatWvl5GTbXLQLFy7o559/zvVwlBslKipKffv2VY8ePbRr1y599NFHGj58uG699dZCjw0MDFSnTp00f/58XblyRUOHDrXa36BBA9WuXVtTp07VuXPn5OPjo7Vr11rNeCzImDFj9MILL2jMmDFq0aKFvv32W/3222+5+r3wwgvaunWr/vWvf+nBBx9Uo0aNdOnSJf3444/asmWLLl26JCn7f1eVK1dWu3btVKlSJR05ckQLFixQr169VK5cOZtqKrEiP2Ma/xhFeRw4AAAAACB/ycnJxuHDh43k5GR7l3LdTJ8+3ZBktG3bNte+devWGZKMcuXKGRkZGVb7PvvsM6NZs2aGu7u7ERwcbMydO9d47733DElGVFSUpV9ISIgREhJideypU6eMvn37Gp6enoa/v7/xyCOPGF988YUhydi6datV35UrVxq33367YTabjQoVKhj33HOPcfbsWZuubd26dYbJZDJOnz5ttV2SMXHiROOjjz4y6tata5jNZuP222/PdW7DMIwff/zR6N69u+Ht7W14enoanTp1Mr7//nurPs8995zRqlUrw8/Pz/Dw8DAaNGhgzJ4920hLS7P0ycjIMB5++GEjICDAMJlMxrXRzZIlS4zmzZsbHh4eRrly5YymTZsaTz75pPHHH39Y+tSoUcPo1atXntdao0YNY+TIkVbbTpw4YQwaNMjw8/Mz3N3djVatWhkbN2606rN161ZDkrF69eo8x33zzTcNT09PIz4+Ps/9halRo4Yxa9asIh83a9YsQ5Jx+PBhY9CgQUa5cuWM8uXLG5MmTSrS/x7ffvtty3c4r+MOHz5sdO3a1fD29jb8/f2NBx980Dhw4IAhyXj//fdz1XO1pKQk44EHHjB8fX2NcuXKGUOGDDEuXLhgSMp1zefPnzcmTpxoVKtWzXB1dTUqV65sdOnSxViyZImlz+LFi42OHTsaFStWNMxms1G7dm3jiSeeKDTfKey/U0XJiUyGkc9jjPCPFx8fL19fX8XFxVk9uQgAAAAAUDQpKSmKiopSzZo1b8j9y1C6MjMz1ahRIw0ZMsRqSbHJZNLEiRO1YMECO1ZXNtx+++0KDQ3VK6+8ckPPGx4eroiICEVHRxf6MBhHV9h/p4qSE3EPRQAAAAAA4NCcnZ31zDPPaOHChUpIuMkezV0GfPHFFzp27JimT59u71JwgxAoAgAAAAAAhzd06FBdunRJ3t7e9i6lzOnRo4cSEhIUGBho71JwgxAoAgAAAAAAALAZT3kGAAAAAADIA4+duPmFh4crPDzc3mU4HGYoAgAAAAAAALAZgSIAAAAAAAAAmxEoAgAAAAAAALAZgSIAAAAAAAAAmxEoAgAAAAAAALAZgSIAAAAAAAAAmxEoAgAAAAAAALAZgSIAAAAAAAAAmxEoAgAAAAAAhxEZGSmTyaSTJ0/au5QyLTw8XCaTyd5lwE4IFAEAAAAAQL5yAricl7u7u+rVq6dJkybp/PnzpX6+pKQkhYeHa9u2baU+NoDS4WLvAgAAAAAAwM3vmWeeUc2aNZWSkqIdO3bozTff1ObNm3Xo0CF5enqW2nmSkpIUEREhSQoNDS21cXPce++9GjZsmMxmc6mPDTgKZigCAAAAAIBC9ezZUyNGjNCYMWMUGRmpKVOmKCoqSp9++qm9S7NJYmKiJMnZ2Vnu7u6ltlw3KSmpSP2Dg4MVHh5eKucG7IVAEQAAAAAAFFnnzp0lSVFRUZKkjIwMPfvss6pdu7bMZrOCg4M1Y8YMpaamWh23f/9+de/eXf7+/vLw8FDNmjV1//33S5JOnjypgIAASVJERIRlmfXVAdyvv/6qQYMGqUKFCnJ3d1eLFi302WefWZ0jZ5n29u3bNWHCBAUGBuqWW26x2nftPRQXLVqkxo0by2w2KygoSBMnTlRsbKxVn9DQUDVp0kQ//PCDOnbsKE9PT82YMaNEn6Otcu5Z+Ouvv2rIkCHy8fFRxYoV9cgjjyglJaXAY19++WWZTCadOnUq177p06fLzc1Nly9fliR99913Gjx4sKpXry6z2axq1arp0UcfVXJycoHnOHnypEwmkyIjI3Ptu/ZvKEnnzp3T/fffr0qVKslsNqtx48Z67733ch37xhtvqHHjxvL09FT58uXVokULffzxxwXWguuPJc8AAAAAAFxHacrId5+TTHKRs019TTLJtZh905Vp9b40nDhxQpJUsWJFSdKYMWO0dOlSDRo0SI8//rj27NmjOXPm6MiRI1q/fr0k6cKFCwoLC1NAQICmTZsmPz8/nTx5UuvWrZMkBQQE6M0339T48ePVv39/DRgwQJLUrFkzSdIvv/yidu3aqWrVqpo2bZq8vLy0atUq9evXT2vXrlX//v2tapwwYYICAgI0c+ZMywzFvISHhysiIkJdu3bV+PHjdfToUb355pvat2+fdu7cKVdXV0vfixcvqmfPnho2bJhGjBihSpUqldInapshQ4YoODhYc+bM0e7du/X666/r8uXL+uCDDwo85sknn9SqVav0xBNPWO1btWqVwsLCVL58eUnS6tWrlZSUpPHjx6tixYrau3ev3njjDZ09e1arV68ulWs4f/68WrduLZPJpEmTJikgIECff/65HnjgAcXHx2vKlCmSpLfffluTJ0/WoEGDLMHpzz//rD179mj48OGlUguKh0ARAAAAAIDr6AV9me++OgrQcLWyvJ+nLUpXZp59a6iCRqqN5f3r2qokpeXZN0i+GqP2lveLtF2PqHNRS7cSFxenmJgYpaSkaOfOnXrmmWfk4eGh3r1768CBA1q6dKnGjBmjt99+W5IsMwNffvllbd26VZ06ddL333+vy5cv66uvvlKLFi0sYz/33HOSJC8vLw0aNEjjx49Xs2bNNGLECKsaHnnkEVWvXl379u2z3ANxwoQJat++vZ566qlcgWKFChX0n//8R87O+Yep0dHRmjNnjsLCwvT555/LySl7MWeDBg00adIkffTRRxo9erSl/19//aW33npL48aNK8GnWXw1a9a0LDOfOHGifHx8tGjRIk2dOtUSvF6revXqat26tVauXGkVKO7bt0+///671ezBuXPnysPDw/J+7NixqlOnjmbMmKHTp0+revXqJb6Gf//738rMzNTBgwctgfRDDz2ku+++W+Hh4Ro3bpw8PDy0adMmNW7cuNSCTJQeljwDAAAAAIBCde3aVQEBAapWrZqGDRsmb29vrV+/XlWrVtXmzZslSY899pjVMY8//rgkadOmTZIkPz8/SdLGjRuVnp5epPNfunRJ33zzjYYMGaIrV64oJiZGMTExunjxorp3765jx47p3LlzVsc8+OCDBYaJkrRlyxalpaVpypQpljAx51gfHx9L7TnMZrNVwFiQ1NRUS505r6ysLCUlJeXabquJEydavX/44YclyfI3yM/QoUP1ww8/WGaWStLKlStlNpt11113WbZdHSYmJiYqJiZGbdu2lWEY+umnn2yuMz+GYWjt2rXq06ePDMOw+gy6d++uuLg4/fjjj5Kyvy9nz57Vvn37SnxelC5mKAIAAAAAcB1NU/d89znJ+sEgj6trvn1N1/SdrE42952gkIJKtMnChQtVr149ubi4qFKlSqpfv74lgDt16pScnJxUp04dq2MqV64sPz8/y737QkJCNHDgQEVEROiVV15RaGio+vXrp+HDhxf61OXjx4/LMAw9/fTTevrpp/Psc+HCBVWtWtXyvmbNmoVeV05t9evXt9ru5uamWrVq5brvYNWqVeXm5lbouJK0fPnyPMPHl156SS+99JLVNsMwbBqzbt26Vu9r164tJycnyz0hL126pLS0v2euenh4yNfXV4MHD9Zjjz2mlStXasaMGTIMQ6tXr1bPnj3l4+Nj6X/69GnNnDlTn332meW+ijni4uJsqrEg0dHRio2N1ZIlS7RkyZI8+1y4cEGS9NRTT2nLli1q1aqV6tSpo7CwMA0fPlzt2rUrcR0oGQJFAAAAAACuI7ci/L/e16tvadw/sVWrVlbLlPNS2JOTTSaT1qxZo927d2vDhg368ssvdf/992vevHnavXu3vL298z02KytLkjR16lR17553SHttoHn1bLvSUpQxu3fvrq+//tpq24gRIxQWFqb77ruvVOq59jMfMGCAtm/fbnk/cuRIRUZGKigoSB06dNCqVas0Y8YM7d69W6dPn9bcuXMtfTMzM9WtWzddunRJTz31lBo0aCAvLy+dO3dOo0aNsvwNbKnj6jGvljPGiBEjNHLkyDyPyVm63bBhQx09elQbN27UF198obVr12rRokWaOXOmIiIiCvhUcL0RKAIAAAAAgBKpUaOGsrKydOzYMTVs2NCy/fz584qNjVWNGjWs+rdu3VqtW7fW7Nmz9fHHH+uee+7RihUrNGbMmHyDqVq1akmSXF1d1bVr/jM5i1O7JB09etRyDklKS0tTVFRUic5VpUoVValSxWqbu7u7atWqVexxjx07ZjXz8vjx48rKylJwcLAkad68eVYzC4OCgiztoUOHasKECTp69KhWrlwpT09P9enTx7L/4MGD+u2337R06VKrwPPaUDQvOQ91ufbJ2NfO8AwICFC5cuWUmZlp02fg5eWloUOHaujQoUpLS9OAAQM0e/ZsTZ8+Xe7u7oUej+uDeygCAAAAAIASufPOOyVJr776qtX2+fPnS5J69eolSbp8+XKupb233XabpOz7DUqSp6enpNzB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DR8+XGazucDzHz9+XIZh6Omnn9bTTz+dZ58LFy6oatWqlvc1a9Ys9Lpyaqtfv77Vdjc3N9WqVcuyP0fVqlWtwh5bdOzY0bIE9mru7u559r/rrrs0adIkmUwmlStXTo0bNy7yw0ESEhIkSeXKlSu0r1HIfRZtUb169Vzbypcvr8uXL0uSoqOjFR8fn2uJ8bWysrL02muvadGiRYqKirIK/HKWThdV3bp1c22rV6+ekpKSFB0drcqVK1u25/WduXTpkiIiIrRixQpduHDBal9cXFyh5z927JgMw8izDkmW5eY537Vr+7m6uqpWrVp5Hpvzt8vv3pHXC4EiAAAAAADX0/+CnSK5Olzr3z97DKdrFhle81CR661Vq1Z5ziy7WmGhhslk0po1a7R7925t2LBBX375pe6//37NmzdPu3fvtsyqy0vO/QanTp2q7t2759nn2kDz6pllpeV6jHmtW265RV27di3RGIcOHZKU+zO5VsWKFS2h39Xy+1teO6MvR34zQYsaVj7//PN6+umndf/99+vZZ59VhQoV5OTkpClTpth8z8mSyOvvO2TIEH3//fd64okndNttt8nb21tZWVnq0aOHTTVlZWXJZDLp888/z/NzKuh7X5icv11egfX1RKAIAAAAAMD1VMSZZbm4uGS/SnvcUlSjRg1lZWXp2LFjatiwoWX7+fPnFRsbqxo1alj1b926tVq3bq3Zs2fr448/1j333KMVK1ZozJgx+QZZOTO0XF1dSxy2XVu7JB09etRqFlhaWpqioqJK9Vw3SkJCgtavX69q1apZ/T3y0qBBgzyfHl2+fPlcT7mWlGvGpq0CAgLk4+NjCTrzs2bNGnXq1Envvvuu1fbY2Nhih2bHjh3Lte23336Tp6en5aEp+bl8+bL+85//KCIiQjNnzixwzPy+u7Vr15ZhGKpZs6bq1auX77lyvovHjh2zPEVdktLT0xUVFaVbb7011zFRUVFycnIqcNzrgXsoAgAAAACAErnzzjslSa+++qrV9vnz50uSevXqJSk7nLl2xtptt90mSUpNTZUkeXp6SlKuMCswMFChoaFavHix/vzzz1w1REdHF6v2rl27ys3NTa+//rpVbe+++67i4uIstZcVycnJuvfee3Xp0iX9+9//LnTWaJs2bXTo0CHL55+jdu3aiouL088//2zZ9ueff1qe2F1UTk5O6tev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vqmpKQsWLOj3vAAAVK+7O9m8Ybh3MfQ2r9/2uH1932N3F2PGJX18JDoAQJF+BcV99tknU6ZMyerVq7c5f88996S5uTlNTU1Vz/mRj3xku/mSLY9A77PPPv3ZJgAA/bR5Q7Jw/HDvYuiNqa/kb/9w/H8PrWTzpmHdzkvi4taktvePRAcAKNKvR56T5E1vetN259rb23PddddVPdfVV1+dL3/5y9udf8Mb3pDzzz+/X/sDAICd2jS692MAAPpU6e7u7u7PD9522229RsW99947K1asyL777ls0zze/+c28613vSmdn5zbn999//9x///054IAD+rM9CrS0tKSpqSnNzc1pbGwc7u0AAC8jI+WR5+7W9anbf8utmG3/rzWV8bv/rXseeQYAelNNJ+rXI89J8sY3vjFTp07NqlWrtjn/7LPP5vTTT8+iRYt2uHh7e3vmz5+fz372s/mfTbOuri433XSTmAgAMEwqlZH3WGzd+CQj7HcGAOiPfj/yXKlUcskll/R6benSpTniiCPy/e9/Px0dHdtca25uzjXXXJOZM2dm4cKF28XE0aNH54Ybbshxxx3X360BAECRzens9RgAgL71+5HnJOnq6sob3vCGLFmypM8x48aNy/Tp0zN27Ng888wzefTRR9PV1dXr2Nra2nz961/PvHnz+rslquCRZwBgpGtf35za8XtsOW59PrUN1b9cEABgd/CSPPKcJKNGjco3vvGNHHPMMVm7dm2vYzZs2JD7779/p3Ptv//++fa3v53Zs2cPZEsAAFBu9Og8/LZjkyRTR3spCwBAiX4/8vyCSZMm5T/+4z9yyCGH9HuO008/Pb/4xS/ERAAAXlr19fnuTRfnuzddnNTXD/duAAB2CQMOiklyyCGH5L777ssHP/jB1NbWFv1MpVLJiSeemMWLF+d73/te/uiP/mgwtgIAAAAADKEBPfK8tQkTJuSLX/xiPvnJT+Y73/lO/uM//iMPPfRQnn766WzatCkNDQ3Zf//9M3PmzBx33HE55ZRTcvDBBw/W8gAAAADAS2BAL2Vh1+alLADASOelLAAAW1TTiQblkWcAANgVVVLp9RgAgL4JigOwZs2aXHjhhZk+fXoaGhqy1157ZdasWbn88suzYcOGQVvnxz/+cU477bRMmjQpdXV1mTRpUk477bT8+Mc/HrQ1AABGojHjJiRPP508/fSWYwAAdsojz/30wx/+MGeddVZaWlp6vT5t2rQsWrQoU6dO7fcaXV1dOffcc3Pttdf2Oeacc87JVVddlVGjqm/DHnkGAAAAIPHI85B74IEH8va3vz0tLS0ZP358PvOZz+Suu+7KT3/607zvfe9LkqxcuTInn3xy1q1b1+91PvWpT/XExMMPPzw33HBDli1blhtuuCGHH354kuSaa67J//k//2fgvxQAAAAAFHCHYj/82Z/9WX72s5+lpqYmd9xxR4455phtrl9++eX5+Mc/niT5+7//+8yfP7/qNVauXJnDDjssHR0dOfLII3PHHXdk7NixPdc3bNiQ2bNnZ/ny5ampqcmKFSuqvhvSHYoAwEi3uW1DHv3oWUmSQ/7pGxlTN26YdwQAMDzcoTiEli1blp/97GdJkve+973bxcQkufDCCzNjxowkyRe/+MVs3ry56nWuuOKKdHR0JEmuvPLKbWJikowbNy5XXnllkqSjoyNf+MIXql4DAGCk6+7YnEP/9eYc+q83p7uj+r/ZAABGIkGxSrfcckvP8Xve855ex4waNSp/9Vd/lSR5/vnns3jx4qrW6O7uzg9+8IMkyfTp03P00Uf3Ou7oo4/Oq171qiTJD37wg7jZFAAAAIChJihWaenSpUmShoaGHHHEEX2Omz17ds/xnXfeWdUav/71r/PUU09tN8+O1nnyySezevXqqtYBAAAAgGoJilVasWJFkmTq1Kmpqanpc9z06dO3+5lSDz/8cK/zDPY6AAAAAFAtQbEKmzZtyjPPPJMkmTRp0g7H7rnnnmloaEiSPPHEE1Wts3bt2p7jna1z0EEH9RxXuw4AAAAAVKvvW+zYzrp163qOx48fv9PxDQ0NWb9+fVpbW4dsnReiZZKdrtPW1pa2trae71taWqraFwAAAAC4Q7EKmzZt6jmura3d6fi6urokycaNG4dsnRfWKFln4cKFaWpq6vna+u5GAAAAACghKFahvr6+57i9vX2n41+4G3Ds2LFDts7WdxzubJ2LL744zc3NPV8ekQYARrrarR7YqfXwDgBAEX81VWHChAk9xyWPMa9fvz5J2ePR/V3nhTVK1qmrq9vmjkYAAAAAqJY7FKtQX1+fvffeO8m2L07pze9///ue2Ffto8Vbv4hlZ+tsfZehR5gBAAAAGGqCYpUOPfTQJMmqVavS0dHR57hHHnmk53jGjBn9WuN/zjPY6wAAjHSb09nrMQAAfRMUq3Tccccl2fKo8X333dfnuCVLlvQcH3vssVWt8cpXvjITJ07cbp7e3HHHHUmSAw88MFOmTKlqHQCAka473b0eAwDQN0GxSqeeemrP8Ve+8pVex3R1deVrX/takmSPPfbI8ccfX9UalUolp5xySpItdyDec889vY675557eu5QPOWUU1KpVKpaBwBgxBs1Kqtnz8zq2TOTUf40BgAo4a+mKh111FF5/etfnyS59tprc/fdd2835h//8R+zYsWKJMmHPvShjBkzZpvrt99+eyqVSiqVSt797nf3us6HP/zhjB49OknyN3/zN9m4ceM21zdu3Ji/+Zu/SZLU1NTkwx/+8EB+LQCAkWns2Hzt9s/ma7d/Nhk7drh3AwCwSxAU++GLX/xixo4dm46Ojpx44olZuHBh7rnnnixevDjnnXdePv7xjydJpk2blgsvvLBfa0ybNi0XXXRRkmT58uU59thjc+ONN2b58uW58cYbc+yxx2b58uVJkosuuiiHHHLI4PxyAAAAALADNcO9gV3R4YcfnhtvvDFnnXVWWlpa8rd/+7fbjZk2bVoWLVqUCRMm9Hudz3zmM3n66adz3XXX5YEHHsgZZ5yx3Zj3vve9+Yd/+Id+rwEAAAAA1XCHYj+99a1vzYMPPpiPfOQjmTZtWsaNG5c99tgjRx55ZD73uc/lgQceyNSpUwe0xqhRo3Lttddm0aJFOeWUUzJx4sTU1tZm4sSJOeWUU3LrrbfmmmuuySif9wMA0D/r1+fCfc/MhfuemaxfP9y7AQDYJVS6u7u9zm6EamlpSVNTU5qbm9PY2Djc2wEAeMm1r29O7fg9thy3Pp/ahqbh3RAAwDCpphN55BkAgBGrduyE5L/+68VjAAB2SlAEAGDkGjUqOeyw4d4FAMAuxYfvAQAAAADF3KEIAMCI1dG+MSsu/WCSZMbffik1tWOHeUcAAC9/XsoygnkpCwAw0nkpCwDAFtV0Io88AwAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGLe8gwAQJ/a09HntVGppCaji8ZWUsmYfo7dnM50p/f3CA50bHs6UrvNnl7cV+1WfyrvaN7/ObYjnekapLFjMjqVVAZtbK0//wGAQeAvCgAA+vTZ/Huf16Zm35yZo3q+/8fcls3p7HXs5OyVd+WYnu+/lMXZkPZex05MU87JcT3f/2uWpDkbex27b8bngszu+f6aLM3v0trr2KaMzYfyhp7vv5q787v8Nhf/4fsrc3s2pz5JMi61+Vje1DP2W1mWNXmu13nHZHQuzkk9338n92VVftfr2CS5JCf3HN+cX2RF/l+fYz+ZN/dEwEX5r/xn1vY59sKckIbUJUl+khVZnjU7XBsAoL888gwAAAAAFKt0d3f3/dwEu7WWlpY0NTWlubk5jY2Nw70dAOBlaHd/5Ll7fWtqx++xZU+tzycNDT3XPfIMAIwk1XQif1EAANCnagLUUI3dOgIO/tgX97FlT73vq5p5a3axsQAA1fLIMwAAAABQTFAEAAAAAIp55BkAgJGrUkkOPfTFYwAAdkpQBABg5Bo3LvnlL4d7FwAAuxSPPAMAAAAAxQRFAAAAAKCYoAgAwMi1YUNy2GFbvjZsGO7dAADsEnyGIgAAI1d3d/Lwwy8eAwCwU4IiAAAjV319snjxi8cAAOyUoAgAwMg1enQyZ85w7wIAYJfiMxQBAAAAgGLuUAQAYOTavDm5+uotx+eem4wZM7z7AQDYBQiKAACMXO3tyQc+sOX43e8WFAEACnjkGQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoFjNcG8AAACG1T77DPcOAAB2KYIiAAAjV0ND8rvfDfcuAAB2KR55BgAAAACKCYoAAAAAQDFBEQCAkWvjxmTOnC1fGzcO924AAHYJPkMRAICRq6srWbLkxWMAAHZKUAQAYOSqq0u+850XjwEA2ClBEQCAkaumJvlf/2u4dwEAsEvxGYoAAAAAQDF3KAIAMHJ1dCQ337zl+LTTttyxCADADvmLCQCAkautLZk3b8txa6ugCABQwCPPAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAAChWM9wbAADgZWz9+up/pq4uqfnDn5kdHUlbWzJqVDJ27MDmra1NxozZctzZmWzalFQqybhxL47ZsCHp7i6f83/uo6sr2bhxy3FDw4vnN27ccq0aNTVb/i2SLXvasGH7eTdt2vK7VGP06KS+/sXvX/gdxo3b8u+RbPk37+jY/me3XhsAoJ/coQgAQN/Gj6/+6+abX/z5m2/ecu7P/3zbeadMqX7eq69+8ed/9rMt52bN2nbeWbOqm/OP/mjbn1+xYsv5KVO2Pf/nf179fj/60Rd//plnXjy/tXe+s/p53/nO3v8/euaZF8999KO9/ywAwCAQFAEAGNn+/u+33EHo7j0AgCKV7u5qnglhd9LS0pKmpqY0NzensbFxuLcDALwc7e6PPCdb5qyt3XLskWcAYISqphP5DEUAAPo20ABVU/NiXBzMeUeP7n2OreNif4wa1fu8W8fQ/qhUep936zDYX73NW1f3YswEABhkHnkGAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBsZ82bNiQyy67LLNmzcpee+2VhoaGTJ8+PRdeeGHWrFkz4PlXr16dSqVS9PXud7974L8QAAAAABSoGe4N7IpWrVqVuXPn5tFHH93m/H//93/nv//7v3PNNdfkm9/8Zt7ylrcM0w4BAAAAYGgIilVat25dTj755J6Y+L73vS9nnHFGxo4dm8WLF2fhwoVpaWnJ29/+9tx555350z/90wGv+Q//8A855ZRT+ry+5557DngNAAAAACghKFbp8ssvz8qVK5Mkl112WS666KKea8ccc0zmzJmT2bNnZ8OGDfnwhz+c22+/fcBrHnjggZk5c+aA5wEAAACAgfIZilXYvHlzvvSlLyVJZsyYkQsvvHC7Ma973evy3ve+N0myZMmS/PznP39J9wgAAAAAQ0lQrMLixYvT3NycJHnXu96VUaN6/+fb+iUpN99880uxNQAAAAB4SQiKVVi6dGnP8ezZs/scd+SRR2bcuHFJkjvvvHPI9wUAAAAALxVBsQoPP/xwz/H06dP7HFdTU5OpU6cmSVasWDHgda+88spMnTo19fX1aWpqymGHHZbzzz8/999//4DnBgAAAIBqCIpVWLt2bZKkoaEhe+yxxw7HHnTQQUmS3/3ud2lraxvQuvfff38ee+yxtLW1paWlJQ8//HCuuuqqHHHEETn//PMHPD8AAAAAlPKW5yqsW7cuSTJ+/Pidjm1oaOg5bm1tTV1dXdXr7bHHHjnttNMyZ86cHHLIIamvr89vfvOb/OQnP8m1116b1tbWXHXVVVm3bl2++c1v7nS+tra2beJjS0tL1XsCAAAAYGQTFKuwadOmJEltbe1Ox24dEDdu3Fj1WhMnTsyTTz7Z81mMLzj88MMzd+7c/PVf/3VOOOGEPP744/nWt76Vt7/97fmLv/iLHc65cOHCLFiwoOq9AAAAAMALdstHniuVyoC/rr/++u3mra+vT5K0t7fvdA9b3wk4duzYqn+H2tra7WLi1g455JB84xvf6Pn+yiuv3OmcF198cZqbm3u+nnjiiar3BQAAAMDI5g7FKkyYMCHJlkeYd2b9+vU9xyWPSPfH61//+hx66KF5+OGHs3Tp0nR1dWXUqL4bcV1dXb8evQYAAACAF+yWQXEw3qx8wAEHbHdu0qRJuffee7N+/fo8//zzO3wxywt3/+27775DGvFeCIqbNm3Ks88+m3333XfI1gIAAACA3TIoTp8+fUjmPfTQQ/O9730vSfLII4/k6KOP7nVcR0dHHnvssSTJjBkzhmQvL6hUKkM6PwAAAABsbbf8DMWhctxxx/UcL1mypM9xy5cv73nk+dhjjx3SPT388MNJtjzOvPfeew/pWgAAAAAgKFZhzpw5aWpqSpJ89atfTXd3d6/jtn6hy2mnnTZk+7nzzjvzy1/+MsmW2Lmjz08EAAAAgMGgQFWhtrY2H/zgB5Ns+ZzGz3/+89uNufvuu3PttdcmSWbPnp1Zs2b1OtcLb5OeMmVKr9dvueWWPoNlkqxatSpnnnlmz/fvf//7S38NAAAAAOi3SveOqhXbWbduXY488sisXLkySXLuuefmjDPOyNixY7N48eJceumlaW1tzdixY3PXXXflT//0T3ud54XPPpw8eXJWr17d6/WpU6fm9NNPz1FHHZVJkyalrq4uv/nNb/Lv//7vufbaa3veNj1v3rzceOONVf8uLS0taWpqSnNzcxobG6v+eQAAAAB2D9V0IkGxH1atWpW5c+fm0Ucf7fV6Y2NjvvnNb+Ytb3lLn3OUBMUSF1xwQb7whS/0603SgiIAAAAASXWdaLd8y/NQmzp1ah544IH8y7/8S2666aasWrUq7e3tOeiggzJ37tx86EMfyuTJkwe0xr/927/l7rvvzr333ps1a9bkmWeeyfr169PY2JiDDz44r3/963P22Wdn5syZg/RbAQAAAMDOuUNxBHOHIgAAAABJdZ3IS1kAAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJilVqbW3NHXfckc9//vOZN29eXvnKV6ZSqaRSqWTKlClDsuZdd92Vs846K5MnT059fX3233//vPnNb84NN9wwJOsBAAAAQF8q3d3d3cO9iV3J8ccfn9tvv73Xa5MnT87q1asHdb358+fn05/+dLq6unq9fvLJJ+e73/1u6uvrq567paUlTU1NaW5uTmNj40C3CgAAAMAuqppO5A7FKm3dX/faa6+ceOKJGT9+/JCsddVVV2XBggXp6urKH//xH+faa6/NsmXLcsstt+T4449PkixatChnn332kKwPAAAAAP+TOxSrdPXVV2fChAmZNWtWpk6dmiSZMmVK1qxZM6h3KD733HM5+OCD09zcnFe84hW57777ss8++/Rc7+zszGmnnZYf/vCHSZLFixdnzpw5Va3hDkUAAAAAEncoDqlzzz0373jHO3pi4lC55ppr0tzcnCT53Oc+t01MTJLRo0fnX//1XzN69OgkyeWXXz6k+wEAAACARFB82brllluSJI2NjTn99NN7HTNp0qSccMIJSZKf/vSnWbdu3Uu1PQAAAABGKEHxZai9vT3Lli1LkhxzzDGpra3tc+zs2bOTJG1tbVm+fPlLsj8AAAAARi5B8WVo5cqV6ezsTJJMnz59h2O3vr5ixYoh3RcAAAAA1Az3Btje2rVre44nTZq0w7EHHXRQz/ETTzyxw7FtbW1pa2vr+b6lpaWfOwQAAABgpHKH4svQ1p+FOH78+B2ObWho6DlubW3d4diFCxemqamp52vrGAkAAAAAJQTFl6FNmzb1HO/o8xOTpK6urud448aNOxx78cUXp7m5uedrZ3c0AgAAAMD/tFsGxUqlMuCv66+/ftj2X19f33Pc3t6+w7FbP8I8duzYHY6tq6tLY2PjNl8AAAAAUI3dMiju6iZMmNBzvLPHmNevX99zvLPHowEAAABgoHbLl7IMxtuODzjggEHYSf9s/SKWrV/Q0putH1v2mYgAAAAADLXdMihOnz59uLcwINOmTcvo0aPT2dmZRx55ZIdjt74+Y8aMod4aAAAAACOcR55fhmpra3PUUUclSe6+++4dfo7ikiVLkmz5fMQjjzzyJdkfAAAAACOXoPgydeqppyZJWlpa8v3vf7/XMWvXrs1tt92WJHnjG9+4zWcvAgAAAMBQEBSHwerVq3veJj1nzpxex5xzzjlpampKknzyk5/Ms88+u831zs7OvP/9709nZ2eS5KKLLhrSPQMAAABAspt+huJQWrVqVZYuXbrNuRfexNza2prrr79+m2snnXRS9t9//6rX2WuvvfK5z30u559/ftasWZPXvva1+dSnPpVXv/rVeeqpp3LFFVdk8eLFSZJ3vOMdfYZJAAAAABhMgmKVli5dmve85z29Xnv22We3u7Z48eJ+BcUkOe+88/LUU0/l05/+dB577LGcffbZ242ZO3durrvuun7NDwAAAADV8sjzy9yCBQuydOnSnHnmmTnooINSW1ub/fbbL29605vyrW99K4sWLUp9ff1wbxMAAACAEaLS3d3dPdybYHi0tLSkqakpzc3NaWxsHO7tAAAAADBMqulE7lAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUGxSq2trbnjjjvy+c9/PvPmzcsrX/nKVCqVVCqVTJkyZdDWuf3223vm3dnX/PnzB21dAAAAANiRmuHewK7mrW99a26//fbh3gYAAAAADAtBsUrd3d09x3vttVeOPPLI3HXXXWltbR2yNa+77rrMmjWrz+v77bffkK0NAAAAAFsTFKt05pln5rzzzsusWbMyderUJMmUKVOGNCi+8pWvzMyZM4dsfgAAAAAoJShW6dxzzx3uLQAAAADAsPFSFgAAAACgmKAIAAAAABQTFHcBn/rUpzJ58uTU1dVlzz33zOGHH56PfOQjWbly5XBvDQAAAIARRlDcBdx11115/PHH097enueffz6/+MUvcsUVV2TGjBmZP3/+Nm+eBgAAAICh5KUsL2MHHHBATj/99Bx33HE5+OCDU1NTk8cffzw/+tGP8rWvfS2bN2/OggUL0t7enksvvXSn87W1taWtra3n+5aWlqHcPgAAAAC7oUq329sGbMqUKVmzZk0mT56c1atXD8qc69evT21tbcaMGdPr9WXLluXEE09Mc3NzKpVKHnjggfzJn/zJDuecP39+FixYsN355ubmNDY2Dsq+AQAAANj1tLS0pKmpqagT7ZaPPFcqlQF/XX/99cP6OzQ0NPQZE5PkqKOOyj//8z8nSbq7u3uOd+Tiiy9Oc3Nzz9cTTzwxaPsFAAAAYGTYLYPiSHHGGWf0FOMlS5bsdHxdXV0aGxu3+QIAAACAauyWn6G4YsWKAc9xwAEHDMJOhlZNTU2mTZuW5cuX58knnxzu7QAAAAAwAuyWQXH69OnDvYWXTKVSGe4tAAAAADCCeOR5F9bR0ZGVK1cmSSZOnDjMuwEAAABgJBAUd2E33nhjmpubkySzZ88e5t0AAAAAMBIIisNg9erVPW+TnjNnznbXf//73+f222/f4RzLli3LBz7wgSRbHnu+4IILhmCnAAAAALCt3fIzFIfSqlWrsnTp0m3Otba29vzv9ddfv821k046Kfvvv39VazQ3N+f444/Pa17zmpx66qk54ogjcsABB2T06NF5/PHH86Mf/Shf//rX097eniT52Mc+liOOOKL/vxQAAAAAFBIUq7R06dK85z3v6fXas88+u921xYsXVx0UX/Dggw/mwQcf7PP66NGj83d/93e55JJL+jU/AAAAAFRLUHwZmjhxYm666abcfffdWbZsWZ588sk888wz2bRpU5qamvKqV70qc+bMyTnnnJMpU6YM93YBAAAAGEEq3d3d3cO9CYZHS0tLmpqa0tzcnMbGxuHeDgAAAADDpJpO5KUsAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBigiIAAAAAUExQBAAAAACKCYoAAAAAQDFBEQAAAAAoJigCAAAAAMUERQAAAACgmKAIAAAAABQTFAEAAACAYoIiAAAAAFBMUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoVmn16tW58sor85d/+Zc55JBDMm7cuNTX12fSpEk59dRT8+1vfzsdHR2DuuZdd92Vs846K5MnT059fX3233//vPnNb84NN9wwqOsAAAAAwM5Uuru7u4d7E7uKv/u7v8tnPvOZ7OyfbNasWfnud7+bV7ziFQNec/78+fn0pz+drq6uXq+ffPLJ+e53v5v6+vqq525paUlTU1Oam5vT2Ng40K0CAAAAsIuqphO5Q7EKv/nNb9Ld3Z2GhoacddZZ+cpXvpKlS5dm+fLl+frXv55Zs2YlSX7+85/nhBNOSGtr64DWu+qqq7JgwYJ0dXXlj//4j3Pttddm2bJlueWWW3L88ccnSRYtWpSzzz57wL8bAAAAAJRwh2IVPvGJT2TvvffOBRdckAkTJmx3vbOzM2eeeWa+853vJEkWLFiQSy65pF9rPffcczn44IPT3NycV7ziFbnvvvuyzz77bLPWaaedlh/+8IdJksWLF2fOnDlVreEORQAAAACS6jqRoDjInn322UycODHt7e159atfnQcffLBf81x22WX5xCc+kSS54YYbcsYZZ2w3Zu3atZkyZUo6Ozszd+7cLFq0qKo1BEUAAAAAEo88D6u99947r3nNa5Ikjz32WL/nueWWW5IkjY2NOf3003sdM2nSpJxwwglJkp/+9KdZt25dv9cDAAAAgBKC4hBoa2tLkowePbpfP9/e3p5ly5YlSY455pjU1tb2OXb27Nk9ay5fvrxf6wEAAABAKUFxkD399NNZsWJFkmTGjBn9mmPlypXp7OxMkkyfPn2HY7e+/sK6AAAAADBUBMVBdvnll6ejoyNJMm/evH7NsXbt2p7jSZMm7XDsQQcd1HP8xBNP9Gs9AAAAAChVM9wb2J3ce++9ueKKK5JsCYEXXHBBv+bZ+rMQx48fv8OxDQ0NPcetra07HNvW1tbzOHaSNDc3J9nyoZsAAAAAjFwv9KGS9zcLioPkt7/9bd72trelo6MjlUolX/3qVzNu3Lh+zbVp06ae4x19fmKS1NXV9Rxv3Lhxh2MXLlyYBQsWbHd+67scAQAAABi51q1bl6amph2O2S2DYqVSGfAcX/nKV/Lud7+7aOy6dety8skn9zyq/NnPfjZveMMb+r12fX19z3F7e/sOx259x+HYsWN3OPbiiy/ORz/60Z7vu7q68txzz2XvvfcelH8zAAAAAHZN3d3dWbduXSZOnLjTsbtlUHwpbdq0Kaecckruu+++JMnHPvaxfPzjHx/QnBMmTOg53tljzOvXr+853tnj0XV1ddvc0Zgke+yxR/UbBAAAAGC3s7M7E1+wWwbFwXjb8QEHHLDTMR0dHZk3b14WL16cJDnnnHNy+eWXD3jtrV/EsvULWnqz9YtYPLoMAAAAwFDbLYPi9OnTh3yNrq6uvPOd78wPf/jDJMnb3/72XHXVVYMy97Rp0zJ69Oh0dnbmkUce2eHYra/PmDFjUNYHAAAAgL6MGu4N7KrOO++8fPvb306SvPWtb803vvGNjBo1OP+ctbW1Oeqoo5Ikd9999w4/R3HJkiVJtjzOfOSRRw7K+gAAAADQF0GxHz760Y/mmmuuSZK88Y1vzE033ZSamsG92fPUU09NsuWV3d///vd7HbN27drcdtttPfvY+rMXAQAAAGAoCIpVmj9/fr7whS8kSV73utflBz/4wXYvOtmZ1atXp1KppFKpZM6cOb2OOeecc3o+CPOTn/xknn322W2ud3Z25v3vf386OzuTJBdddFGVvwkAAAAAVG+3/AzFoXLllVdmwYIFSZIDDzwwl112WX7961/v8Gde9apXZcyYMVWvtddee+Vzn/tczj///KxZsyavfe1r86lPfSqvfvWr89RTT+WKK67oeRnMO97xjj7DJAAAAAAMJkGxCt/73vd6jp988skcd9xxO/2ZX//615kyZUq/1jvvvPPy1FNP5dOf/nQee+yxnH322duNmTt3bq677rp+zQ8AAAAA1fLI88vcggULsnTp0px55pk56KCDUltbm/322y9vetOb8q1vfSuLFi1KfX39cG8TAAAAgBGi0t3d3T3cmwAAAAAAdg3uUAQAAAAAigmKAAAAAEAxQREAAAAAKCYoAgAAAADFBEUAAAAAoJigCAAAAAAUExQBAAAAgGKCIgAAAABQTFAEAAAAAIoJigAAAABAMUERAAAAACgmKAIAAAAAxQRFAAAAAKCYoAgAAAAAFBMUAQAAAIBi/z/AV61qB7gWHwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from lf2i.utils.other_methods import hpd_region\n", "from lf2i.plot.parameter_regions import plot_parameter_regions\n", "\n", "_, hpd_set = hpd_region(\n", " posterior=posterior_ts.estimator,\n", " param_grid=gmm.poi_grid.reshape(-1, 1),\n", " x=x_obs,\n", " credible_level=CONFIDENCE_LEVEL,\n", ")\n", "\n", "plot_parameter_regions(\n", " waldo_region[0], posterior_region[0], hpd_set,\n", " param_dim=POI_DIM,\n", " parameter_space_bounds=POI_SPACE_BOUNDS,\n", " region_names=['Waldo (posterior) + p-values', 'Posterior + p-values', 'Posterior HPD (uncalibrated)'],\n", " title=f'{int(CONFIDENCE_LEVEL*100)}% regions for theta',\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "tsi", "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.11.9" } }, "nbformat": 4, "nbformat_minor": 5 }