From 41cf5b78e470a8d3896dd884653464752bc3ba27 Mon Sep 17 00:00:00 2001 From: Gabriel Stechschulte <63432018+GStechschulte@users.noreply.github.com> Date: Fri, 29 Sep 2023 18:05:47 +0200 Subject: [PATCH] Multiple doc notebooks (#733) * remove duplicate notebooks * grammer fixes and remove duplicate code cells * add ordinal and ZIP model to GLM section in _quarto.yml --- docs/_quarto.yml | 2 + docs/notebooks/gallery.yml | 10 +---- docs/notebooks/ordinal_regression.ipynb | 41 +++---------------- docs/notebooks/zero_inflated_regression.ipynb | 2 +- 4 files changed, 9 insertions(+), 46 deletions(-) diff --git a/docs/_quarto.yml b/docs/_quarto.yml index 0acdc5350..fe1c64c8d 100644 --- a/docs/_quarto.yml +++ b/docs/_quarto.yml @@ -65,6 +65,8 @@ website: - notebooks/circular_regression.ipynb - notebooks/quantile_regression.ipynb - notebooks/mister_p.ipynb + - notebooks/ordinal_regression.ipynb + - notebooks/zero_inflated_regression.ipynb - section: More advanced models contents: - notebooks/distributional_models.ipynb diff --git a/docs/notebooks/gallery.yml b/docs/notebooks/gallery.yml index c9864ce68..455cd0f14 100644 --- a/docs/notebooks/gallery.yml +++ b/docs/notebooks/gallery.yml @@ -87,15 +87,7 @@ - title: Zero inflated models subtitle: When the outcome is mostly zeros and or is overdispersed href: zero_inflated_regression.ipynb - thumbnail: thumbnails/zero_inflated_pps.png - - title: Ordinal regression - subtitle: Model ordered category outcomes - href: ordinal_regression.ipynb - thumbnail: thumbnails/ordinal_regression.png - - title: Zero inflated models - subtitle: When the outcome is mostly zeros and or is overdispersed - href: zero_inflated_regression.ipynb - thumbnail: thumbnails/zero_inflated_pps.png + thumbnail: thumbnails/zip_model_pps.png - title: Ordinal regression subtitle: Model ordered category outcomes href: ordinal_regression.ipynb diff --git a/docs/notebooks/ordinal_regression.ipynb b/docs/notebooks/ordinal_regression.ipynb index 65db2c2fc..24e62209e 100644 --- a/docs/notebooks/ordinal_regression.ipynb +++ b/docs/notebooks/ordinal_regression.ipynb @@ -2,15 +2,14 @@ "cells": [ { "cell_type": "code", - "execution_count": 20, + "execution_count": 1, "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" + "WARNING (pytensor.tensor.blas): Using NumPy C-API based implementation for BLAS functions.\n" ] } ], @@ -24,9 +23,6 @@ "\n", "import bambi as bmb\n", "\n", - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", "warnings.filterwarnings(\"ignore\", category=FutureWarning)" ] }, @@ -397,7 +393,7 @@ "source": [ "Viewing the summary dataframe, we see a total of six `response_threshold` coefficients. Why six? Remember, we get the last parameter for free. Since there are seven categories, we only need six cutpoints. The index (using zero based indexing) of the `response_threshold` indicates the category that the threshold is associated with. Comparing to the empirical log-cumulative-odds computation above, the mean of the posterior distribution for each category is close to the empirical value.\n", "\n", - "As the the log cumalative link is used, we need to apply the inverse of the logit function to transform back to cumulative probabilities. Below, we plot the cumulative probabilities for each category. " + "As the the log cumulative link is used, we need to apply the inverse of the logit function to transform back to cumulative probabilities. Below, we plot the cumulative probabilities for each category. " ] }, { @@ -490,33 +486,6 @@ "plt.title(\"Posterior Probability of each response category\");" ] }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwkAAAE6CAYAAABd6h6mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABtZUlEQVR4nO3de1yP9/8/8Me780EHNTrQdFIaGTJWzWnkEIaN+oyNSj4sQxQfbaNs6IPkENX46jCHmg37YNia8KFYRCNyyplajiWHjq/fH/16f1w6qFTv8Ljfbu/bXK/rdb2u5/Xqql3P9+t1XZdMCCFARERERET0/ykpOgAiIiIiImpamCQQEREREZEEkwQiIiIiIpJgkkBERERERBJMEoiIiIiISIJJAhERERERSTBJICIiIiIiCSYJREREREQkwSSBiIiIiIgkmCRQvTt58iQ8PT1hYWEBDQ0NNGvWDF26dMHixYtx7949RYdXraCgIMhksjptu2vXLgQFBVW6ztzcHB4eHnUPrI569+4NmUwm/2hqauLdd9/F8uXLUVpaWm/7iYmJgUwmw7Fjx+qtzfKfxZ07d15Yt3fv3ujdu7ekTCaTSX4e+/fvh0wmw/79++Vl1f3MXoa5uTmGDBlS7+0+79mfrUwmg66uLpycnBAXF9fg+37d7dixA0OHDoWRkRHU1NRgYGCAvn37YuPGjSgqKqp1e+Hh4YiJian/QImIGgiTBKpXa9euhYODA44ePYqZM2diz5492LZtG0aNGoXIyEiMHz9e0SE2mF27dmHevHmVrtu2bRvmzJnTyBGVsbS0xOHDh3H48GH8+OOPaNWqFaZPn46AgACFxNMQwsPDER4eXm2dLl264PDhw+jSpYu8rLqf2ati5MiROHz4MJKTkxEZGYm8vDyMHj0amzZtUnRoryQhBDw9PfHRRx+htLQUoaGh+OOPPxAbG4t3330XPj4+LzzXKsMkgYheNSqKDoBeH4cPH8YXX3wBFxcX/PLLL1BXV5evc3FxgZ+fH/bs2aPACBWnc+fOCtu3pqYm3n//ffnyoEGD0K5dO6xatQrz58+HqqpqhW2EEHj69Ck0NTUbM9Q6e+edd15YR1dXV9IPrwsjIyP5cTk6OsLZ2Rnm5ub4/vvvMXr0aAVH9+pZsmQJYmJiMG/ePMydO1eybujQoZg1axYuXryooOga3pMnT6ChoVHnEVUien1wJIHqzcKFCyGTybBmzRpJglBOTU0NH330kXz5+ekg5Z6fmlM+lSUxMRETJkyAoaEhdHV1MXbsWDx69AjZ2dlwc3ODvr4+TExM4O/vL5kOUNk0EwC4cuUKZDLZC7/d+/HHH9G/f3+YmJhAU1MTdnZ2mD17Nh49eiSv4+HhgdWrV8uPq/xz5cqVCsd0+/ZtqKmpVTqycPbsWchkMqxcuVJelp2djYkTJ6J169ZQU1ODhYUF5s2bh+Li4mrjroqqqiocHBzw+PFj3L59Wx7zl19+icjISNjZ2UFdXR2xsbEAgEOHDqFv377Q0dGBlpYWnJyc8Ouvv1ba9v379+Hp6QkDAwNoa2tj6NChuHTpkqROQkIChg0bhtatW0NDQwPW1taYOHFildOKrl+/jo8//hi6urrQ09PDZ599Jo+7XGXTjZ73/HlQ3c+sb9++aNeuHYQQkjaEELC2tsbgwYOr3Ve5bdu2oWPHjtDQ0IClpaXk55qfnw99fX1MnDixwnZXrlyBsrIylixZUqP9PKtNmzZo0aIF/v77b0l5Xl4e/P39YWFhATU1NbRq1Qq+vr6S8xgAfvrpJ3Tv3h16enrQ0tKCpaUlvLy85OvL+3HDhg2YMWMGjI2NoampiV69euHEiRMV4tm+fTscHR2hpaUFHR0duLi44PDhw5I65VPLTp8+jU8//RR6enowMjKCl5cXcnNzaxVfbY71eUVFRVi0aBHatWtX5cifsbExPvjgA/nyvHnz0L17dxgYGEBXVxddunTBunXrJOeOubk5Tp8+jQMHDsjPM3Nz81rH++DBA4wfPx4GBgZo1qwZBg8ejEuXLlX6t7Qmv7flf1t///13eHl5oUWLFtDS0sKhQ4cgk8kqnbb2ww8/QCaT4ejRo9X2JRG9+jiSQPWipKQEiYmJcHBwgJmZWYPsw9vbGx9//DHi4+Nx4sQJfPXVVyguLsa5c+fw8ccf45///Cf++OMPLFq0CKamppgxY0a97PfChQtwdXWFr68vtLW1cfbsWSxatAgpKSlITEwEAMyZMwePHj3Czz//LLkAMjExqdBeixYtMGTIEMTGxmLevHlQUvpfrh4dHQ01NTWMGTMGQFmC0K1bNygpKWHu3LmwsrLC4cOHMX/+fFy5cgXR0dF1OqbMzEyoqKigefPm8rJffvkFBw8exNy5c2FsbIyWLVviwIEDcHFxQceOHbFu3Tqoq6sjPDwcQ4cORVxcHNzd3SXtjh8/Hi4uLti0aROuX7+Ob775Br1798bJkyehr68v37ejoyO8vb2hp6eHK1euIDQ0FB988AFOnTpVYWRjxIgRcHNzw6RJk3D69GnMmTMHZ86cwZ9//lnpKEhNVfczmzZtGoYNG4a9e/eiX79+8nW7d+9GZmam5GK/KmlpafD19UVQUBCMjY2xceNGTJs2DYWFhfD390ezZs3g5eWFNWvWYPHixdDT05NvGx4eDjU1tQoXvzWRm5uLe/fuSUZNHj9+jF69euHGjRv46quv0LFjR5w+fRpz587FqVOn8Mcff0Amk+Hw4cNwd3eHu7s7goKCoKGhgatXr8rP82d99dVX6NKlC/7v//4Pubm5CAoKQu/evXHixAlYWloCADZt2oQxY8agf//+iIuLQ0FBARYvXozevXtj7969kottAPjkk0/g7u6O8ePH49SpU/IpcVFRUQBQo/hqeqyVOXbsGO7du4cJEybU+Jv0K1euYOLEiXj77bcBAEeOHMGUKVNw8+ZN+UjEtm3bMHLkSOjp6cmnKpV/kVLTeEtLSzF06FAcO3YMQUFB8ulzAwcOrBBTbX9vvby8MHjwYKxfvx6PHj2Ck5MTOnfujNWrV+PTTz+V1F21ahXee+89vPfeezXqHyJ6hQmiepCdnS0AiH/84x813gaACAwMrFDepk0bMW7cOPlydHS0ACCmTJkiqTd8+HABQISGhkrKO3XqJLp06SJf3rdvnwAg9u3bJ6l3+fJlAUBER0fLywIDA0V1vxalpaWiqKhIHDhwQAAQf/31l3zd5MmTq9z2+WPavn27ACB+//13eVlxcbEwNTUVn3zyibxs4sSJolmzZuLq1auS9kJCQgQAcfr06SpjFUKIXr16ifbt24uioiJRVFQkbt26JWbPni0AiFGjRsnrARB6enri3r17ku3ff/990bJlS/Hw4UNJnB06dBCtW7cWpaWlQoj//YxGjBgh2T4pKUkAEPPnz680vvL+vHr1qgAg/vOf/8jXlf8spk+fLtlm48aNAoDYsGGD5Dh79eolqff8+VXZeVDVz6ykpERYWlqKYcOGScoHDRokrKys5MddlTZt2giZTCbS0tIk5S4uLkJXV1c8evRICCFEZmamUFJSEsuWLZPXefLkiTA0NBSenp7V7qP8GH18fERRUZEoLCwU58+fFx999JHQ0dERx44dk9cLDg4WSkpK4ujRo5Ltf/75ZwFA7Nq1Swjxv/PqwYMHVe6zvB+7dOki6YcrV64IVVVV4e3tLYQo60NTU1Nhb28vSkpK5PUePnwoWrZsKZycnORl5T/rxYsXS/bl4+MjNDQ05PupSXw1PdbKxMfHCwAiMjKyyjrVKSkpEUVFReLbb78VhoaGkv5p3759hXO0NvH++uuvAoCIiIiosP3z53ptf2/Hjh1bIa7ydSdOnJCXpaSkCAAiNja2xn1CRK8uTjeiV8bzT4uxs7MDgApTP+zs7HD16tV62++lS5cwevRoGBsbQ1lZGaqqqujVqxcAICMjo05tDho0CMbGxpKRgN9++w23bt2SfHu8c+dO9OnTB6ampiguLpZ/Bg0aBKDsG8MXOX36NFRVVaGqqgpTU1MsXboUY8aMwdq1ayX1PvzwQ8nIwqNHj/Dnn39i5MiRaNasmbxcWVkZn3/+OW7cuIFz585J2igfASnn5OSENm3aYN++ffKynJwcTJo0CWZmZlBRUYGqqiratGkDoPL+fL5NNzc3qKioSNqsb0pKSvjyyy+xc+dOXLt2DUDZCMiePXvg4+NTo2+Z27dvj3fffVdSNnr0aOTl5eH48eMAym4qHzJkCMLDw+XTUzZt2oS7d+/iyy+/rFGs4eHhUFVVhZqaGmxsbLB7927ExcXBwcFBXmfnzp3o0KEDOnXqJDmPBgwYIJmCVf7tsJubGzZv3oybN29Wud/Ro0dL+qFNmzZwcnKS/1zOnTuHW7du4fPPP5eMljVr1gyffPIJjhw5gsePH0vafHY6IgB07NgRT58+RU5OTo3jq+mx1pfExET069cPenp68r8Pc+fOxd27d+VxV6em8Zb/rru5uUm2f/6b/rr83n7yyScV4vr000/RsmVL+ZQ8AAgLC0OLFi0qjEQQ0euJSQLVi7feegtaWlq4fPlyg+3DwMBAsqymplZl+dOnT+tln/n5+ejRowf+/PNPzJ8/H/v378fRo0exdetWAGU3+dWFiooKPv/8c2zbtg0PHjwAUDY/2MTEBAMGDJDX+/vvv7Fjxw75RX75p3379gBQo8eDWllZ4ejRozh27BjS09Px4MEDbNiwQTK9Bag4Ner+/fsQQlQ6ZcrU1BQAcPfuXUm5sbFxhbrGxsbyeqWlpejfvz+2bt2KWbNmYe/evUhJScGRI0cAVN6fz7epoqICQ0PDCvuub15eXtDU1ERkZCQAYPXq1dDU1KzxFKCq+gKQ9tu0adNw4cIFJCQkyPfj6OgoeQpTddzc3HD06FEkJyfj+++/h46ODv7xj3/gwoUL8jp///03Tp48WeE80tHRgRBCfh717NkTv/zyC4qLizF27Fi0bt0aHTp0qHRu+ot+1uX/rer8KS0txf379yXlhoaGkuXyKTnl50VN4qvpsVamfMpQTf+OpaSkoH///gDKnuyWlJSEo0eP4uuvv5bEXZ2axnv37l2oqKhU+HtnZGQkWa7L721lddXV1TFx4kRs2rQJDx48wO3bt7F582Z4e3tXes8ZEb1+eE8C1QtlZWX07dsXu3fvxo0bN9C6desXbqOuro6CgoIK5fV98aehoQEAFfZVkwvsxMRE3Lp1C/v375ePHgCQX9i/DE9PTyxZsgTx8fFwd3fH9u3b4evrC2VlZXmdt956Cx07dsSCBQsqbaP8f/rV0dDQQNeuXV9Y7/lvx5s3bw4lJSVkZWVVqHvr1i15fM/Kzs6uUDc7OxvW1tYAgPT0dPz111+IiYnBuHHj5HWqe1pMdnY2WrVqJV8uLi7G3bt3K1xQ1jc9PT2MGzcO//d//wd/f39ER0dj9OjR8nsrXqSqvgCkF8MffvghOnTogFWrVqFZs2Y4fvw4NmzYUOM4W7RoIf/5Ojo6ws7ODr169cL06dOxc+dOAGU/J01NTfnc/uc9+3McNmwYhg0bhoKCAhw5cgTBwcEYPXo0zM3N4ejo+MLjKz+28v9Wdf4oKSlJRq5q6kXx1eZYn9e1a1cYGBjgP//5D4KDg184YhQfHw9VVVXs3LlT/ncGKLu/p6ZqGq+hoSGKi4tx7949SaLw/M+hLr+3VR3nF198gX//+9+IiorC06dPUVxcjEmTJtX42Ijo1caRBKo3AQEBEEJgwoQJKCwsrLC+qKgIO3bskC+bm5vj5MmTkjqJiYnIz8+v17jKnyLy/L62b9/+wm3L/+f5/Ddn33//fYW6z3/r+SJ2dnbo3r07oqOjsWnTJhQUFMDT01NSZ8iQIUhPT4eVlRW6du1a4VOTJKGutLW10b17d2zdulVyTKWlpdiwYQNat24NGxsbyTYbN26ULCcnJ+Pq1avyJw/Vpj+ranPz5s0oLi5+4dOMauJFP7OpU6fizp07GDlyJB48eFDjKUBA2TSvv/76S1K2adMm6OjoVBglmDp1Kn799VcEBATAyMgIo0aNquWR/E+PHj0wduxY/Prrr/IbsocMGYLMzEwYGhpWeh49+6Sdcurq6ujVqxcWLVoEABWeXBQXFyd5gs/Vq1eRnJws/7nY2tqiVatW2LRpk6Teo0ePsGXLFvkTj+qqqvjqcqzlVFVV8a9//Qtnz57Fd999V2mdnJwcJCUlASg7n1VUVCSJ/ZMnT7B+/fpK463sPKtpvOVfUvz444+S7ePj4yXLdfm9rYqJiQlGjRqF8PBwREZGYujQofLRFiJ6/XEkgeqNo6MjIiIi4OPjAwcHB3zxxRdo3749ioqKcOLECaxZswYdOnTA0KFDAQCff/455syZg7lz56JXr144c+YMVq1aVWEazMsyNjZGv379EBwcjObNm6NNmzbYu3evfMpQdZycnNC8eXNMmjQJgYGBUFVVxcaNGytc/AGAvb09AGDRokUYNGgQlJWV0bFjR/m0qMp4eXlh4sSJuHXrFpycnGBraytZ/+233yIhIQFOTk6YOnUqbG1t8fTpU1y5cgW7du1CZGRkjUZt6io4OBguLi7o06cP/P39oaamhvDwcKSnpyMuLq7CN5DHjh2Dt7c3Ro0ahevXr+Prr79Gq1at4OPjAwBo164drKysMHv2bAghYGBggB07dsin2lRm69atUFFRgYuLi/zpRu+++26Fudl18aKfmY2NDQYOHIjdu3fjgw8+qHCPQXVMTU3x0UcfISgoCCYmJtiwYQMSEhKwaNGiChfHn332GQICAvDf//4X33zzTbXnTE189913+PHHHzFnzhz88ccf8PX1xZYtW9CzZ09Mnz4dHTt2RGlpKa5du4bff/8dfn5+6N69O+bOnYsbN26gb9++aN26NR48eIAVK1ZI7sMpl5OTgxEjRmDChAnIzc1FYGAgNDQ05E8kUlJSwuLFizFmzBgMGTIEEydOREFBAZYsWYIHDx7g3//+d62Pqybx1fRYqzJz5kxkZGQgMDAQKSkpGD16NMzMzJCbm4v//ve/WLNmDebNmwdnZ2cMHjwYoaGhGD16NP75z3/i7t27CAkJqXQ6jr29PeLj4/Hjjz/C0tISGhoasLe3r3G8AwcOhLOzM/z8/JCXlwcHBwccPnwYP/zwg7y/y9X297Y606ZNk/dXXZ+mRkSvKEXdMU2vr7S0NDFu3Djx9ttvCzU1NaGtrS06d+4s5s6dK3JycuT1CgoKxKxZs4SZmZnQ1NQUvXr1EmlpaVU+3ej5p3+UPxHl9u3bkvJx48YJbW1tSVlWVpYYOXKkMDAwEHp6euKzzz4Tx44dq9HTjZKTk4Wjo6PQ0tISLVq0EN7e3uL48eMVti0oKBDe3t6iRYsWQiaTCQDi8uXLQoiKTzcql5ubKzQ1NQUAsXbt2kr78/bt22Lq1KnCwsJCqKqqCgMDA+Hg4CC+/vprkZ+fX+k25cqfbvQiAMTkyZMrXXfw4EHx4YcfCm1tbaGpqSnef/99sWPHDkmd8p/R77//Lj7//HOhr68vNDU1haurq7hw4YKk7pkzZ4SLi4vQ0dERzZs3F6NGjRLXrl2r8ISW8p9FamqqGDp0qGjWrJnQ0dERn376qfj7778rHGddnm5U3c+sXExMjAAg4uPjq+/EZ7Rp00YMHjxY/Pzzz6J9+/ZCTU1NmJubV3gS17M8PDyEioqKuHHjRo33U93PbebMmQKAOHDggBBCiPz8fPHNN98IW1tboaamJvT09IS9vb2YPn26yM7OFkIIsXPnTjFo0CDRqlUroaamJlq2bClcXV3FwYMH5e2W9+P69evF1KlTRYsWLYS6urro0aOH5IlK5X755RfRvXt3oaGhIbS1tUXfvn1FUlKSpE5Vv8vl51X5z6Qm8dX0WF/kP//5jxg8eLBo0aKFUFFREc2bNxd9+vQRkZGRoqCgQF4vKipK2NraCnV1dWFpaSmCg4PFunXrKpxLV65cEf379xc6OjoCgGjTpk2t4713757w9PQU+vr6QktLS7i4uIgjR44IAGLFihWS+Gvze/v839bnmZubCzs7uxr1GxG9PmRCPPe2ICIikit/Es+VK1de6r0M1SksLIS5uTk++OADbN68uUH2UV/279+PPn364KeffsLIkSMVHc4br/xdFElJSXBycqr39k+ePIl3330Xq1evlo8IEtGbgdONiIieU1BQgOPHjyMlJQXbtm1DaGhogyQIt2/fxrlz5xAdHY2///4bs2fPrvd90OsjLi4ON2/ehL29PZSUlHDkyBEsWbIEPXv2rPcEITMzE1evXsVXX30FExMT+RvjiejNwSSBiOg5WVlZcHJygq6uLiZOnIgpU6Y0yH5+/fVXeHp6wsTEBOHh4TV+7Cm9mXR0dBAfH4/58+fj0aNH8ov3+fPn1/u+vvvuO6xfvx52dnb46aefXuomcyJ6NXG6ERERERERSfARqEREREREJMEkgYiIiIiIJJgkEBERERGRBG9cRtmbKG/dugUdHZ1avWSGiIiIqLaEEHj48CFMTU0lL8IjakqYJAC4desWzMzMFB0GERERvUGuX7+O1q1bKzoMokoxSUDZY+WAsl9WXV1dBUdDREREr7O8vDyYmZnJrz+ImiImCYB8ipGuri6TBCIiImoUnOJMTRknwhERERERkQSTBCIiIiIikmCSQEREREREEgq9J6G4uBhBQUHYuHEjsrOzYWJiAg8PD3zzzTfyR4IJITBv3jysWbMG9+/fR/fu3bF69Wq0b99e3k5BQQH8/f0RFxeHJ0+eoG/fvggPD+cTA4iIiIieIYRAcXExSkpKFB0KKYCysjJUVFRqdD+MQpOERYsWITIyErGxsWjfvj2OHTsGT09P6OnpYdq0aQCAxYsXIzQ0FDExMbCxscH8+fPh4uKCc+fOyZ8K4Ovrix07diA+Ph6Ghobw8/PDkCFDkJqaCmVlZUUeIhEREVGTUFhYiKysLDx+/FjRoZACaWlpwcTEBGpqatXWkwkhRCPFVMGQIUNgZGSEdevWycs++eQTaGlpYf369RBCwNTUFL6+vvjXv/4FoGzUwMjICIsWLcLEiRORm5uLFi1aYP369XB3dwfwv/ce7Nq1CwMGDHhhHHl5edDT00Nubi6fbkREREQNShHXHaWlpbhw4QKUlZXRokULqKmp8elKbxghBAoLC3H79m2UlJSgbdu21b7MT6EjCR988AEiIyNx/vx52NjY4K+//sKhQ4ewfPlyAMDly5eRnZ2N/v37y7dRV1dHr169kJycjIkTJyI1NRVFRUWSOqampujQoQOSk5MrTRIKCgpQUFAgX87Ly2u4gyQiIiJSsMLCQpSWlsLMzAxaWlqKDocURFNTE6qqqrh69SoKCwuhoaFRZV2FJgn/+te/kJubi3bt2kFZWRklJSVYsGABPv30UwBAdnY2AMDIyEiynZGREa5evSqvo6amhubNm1eoU77984KDgzFv3rz6PhwiIiKiJq26b47pzVDTc0ChZ8qPP/6IDRs2YNOmTTh+/DhiY2MREhKC2NhYSb3nh8OEEC8cIquuTkBAAHJzc+Wf69evv9yBEBER1VLKjktI2XFJ0WEQEVVKoSMJM2fOxOzZs/GPf/wDAGBvb4+rV68iODgY48aNg7GxMQDIn3xULicnRz66YGxsjMLCQty/f18ympCTkwMnJ6dK96uurg51dfWGOiwiIiIioleaQkcSHj9+XGHIQ1lZGaWlpQAACwsLGBsbIyEhQb6+sLAQBw4ckCcADg4OUFVVldTJyspCenp6lUkCERERERFVTaEjCUOHDsWCBQvw9ttvo3379jhx4gRCQ0Ph5eUFoGyaka+vLxYuXIi2bduibdu2WLhwIbS0tDB69GgAgJ6eHsaPHw8/Pz8YGhrCwMAA/v7+sLe3R79+/RR5eERERERN3rKE8422r+kuNrXeJjs7GwsWLMCvv/6KmzdvomXLlujUqRN8fX3Rt2/fGrURExMDX19fPHjwoNb7b8oa8l1hCk0SwsLCMGfOHPj4+CAnJwempqaYOHEi5s6dK68za9YsPHnyBD4+PvKXqf3+++/ydyQAwLJly6CiogI3Nzd5B8XExPAdCURERESvsCtXrsDZ2Rn6+vpYvHgxOnbsiKKiIvz222+YPHkyzp49q+gQ66SoqAiqqqov3U5DvitModONdHR0sHz5cly9ehVPnjxBZmYm5s+fL3m5g0wmQ1BQELKysvD06VMcOHAAHTp0kLSjoaGBsLAw3L17F48fP8aOHTtgZmbW2IdDREREr4jknzYqOgSqAR8fH8hkMqSkpGDkyJGwsbFB+/btMWPGDBw5ckReLzQ0FPb29tDW1oaZmRl8fHyQn58PANi/fz88PT2Rm5sLmUwmv7YEyqaxz5o1C61atYK2tja6d++O/fv3S2JYu3at/NGxI0aMQGhoKPT19SV1IiIiYGVlBTU1Ndja2mL9+vWS9TKZDJGRkRg2bBi0tbUxf/58WFtbIyQkRFIvPT0dSkpKyMzMfGHf5ObmYt26dVi6dCn69euHzp07Y8OGDTh16hT++OOPGvZw1fgcLCIiIiJqcu7du4c9e/Zg8uTJ0NbWrrD+2Qt1JSUlrFy5Eunp6YiNjUViYiJmzZoFAHBycsLy5cuhq6uLrKwsZGVlwd/fHwDg6emJpKQkxMfH4+TJkxg1ahQGDhyICxcuAACSkpIwadIkTJs2DWlpaXBxccGCBQskcWzbtg3Tpk2Dn58f0tPTMXHiRHh6emLfvn2SeoGBgRg2bBhOnToFLy8veHl5ITo6WlInKioKPXr0gJWVFTw8PNC7d+8q++dF7wp7WQqdbkREREREVJmLFy9CCIF27dq9sK6vr6/83xYWFvjuu+/wxRdfIDw8HGpqatDT04NMJpM/ORMAMjMzERcXhxs3bsDU1BQA4O/vjz179iA6OhoLFy5EWFgYBg0aJE8qbGxskJycjJ07d8rbCQkJgYeHB3x8fABAPsoREhKCPn36yOuNHj1aft8tUJagzJ07FykpKejWrRuKioqwYcMGLFmyBABgYmIif5hPZeryrrDa4EgCERERETU5QggAFd+XVZl9+/bBxcUFrVq1go6ODsaOHYu7d+/i0aNHVW5z/PhxCCFgY2ODZs2ayT8HDhyQT/c5d+4cunXrJtnu+eWMjAw4OztLypydnZGRkSEp69q1q2TZxMQEgwcPRlRUFABg586dePr0KUaNGgWg7OW/P/zwwwuP/Xk1eZ9YTTBJICIiIqImp23btpDJZBUutp939epVuLq6okOHDtiyZQtSU1OxevVqAGU3CFeltLQUysrKSE1NRVpamvyTkZGBFStWAKj8grs8eXlWTV78W9mUKW9vb8THx+PJkyeIjo6Gu7s7tLS0qj3ecs++K+xZz75P7GUwSWgCliWcb9THjxERERE1dQYGBhgwYABWr15d6YhA+eNMjx07huLiYixduhTvv/8+bGxscOvWLUldNTU1lJSUSMo6d+6MkpIS5OTkwNraWvIpn5bUrl07pKSkSLY7duyYZNnOzg6HDh2SlCUnJ8POzu6Fx+jq6gptbW1ERERg9+7dkulIL9LQ7wpjkkCKsS+47ENERERUhfDwcJSUlKBbt27YsmULLly4gIyMDKxcuRKOjo4AACsrKxQXFyMsLAyXLl3C+vXrERkZKWnH3Nwc+fn52Lt3L+7cuYPHjx/DxsYGY8aMwdixY7F161ZcvnwZR48exaJFi7Br1y4AwJQpU7Br1y6EhobiwoUL+P7777F7927JKMHMmTMRExODyMhIXLhwAaGhodi6dav8PobqKCsrw8PDAwEBAbC2tpYfEwAEBARg7NixVW777LvC9u7dixMnTuCzzz6rv3eFCRK5ubkCgMjNzVXI/kN/PydCfz+nkH0rTOLCsg8R0Rvqz+2Z4s/tmYoO442VtHmDwvatiOuOJ0+eiDNnzognT5402j7ry61bt8TkyZNFmzZthJqammjVqpX46KOPxL59++R1QkNDhYmJidDU1BQDBgwQP/zwgwAg7t+/L68zadIkYWhoKACIwMBAIYQQhYWFYu7cucLc3FyoqqoKY2NjMWLECHHy5En5dmvWrBGtWrUSmpqaYvjw4WL+/PnC2NhYEmN4eLiwtLQUqqqqwsbGRvzwww+S9QDEtm3bKj2+zMxMAUAsXrxYUj5u3DjRq1evavvmyZMn4ssvvxQGBgZCU1NTDBkyRFy7du2F29TkXJD9/8DfaHl5edDT00Nubi50dXUbff/lU43q8hbCV1b5KEKfAMXGQUSkICk7LgEAug21VHAkb6bknzbCadQYhexbEdcdT58+xeXLl2FhYQENDY1G2efrasKECTh79iwOHjxYL+0lJSWhd+/euHHjRr3cS/AiNT0X+AhUIiIiIqIqhISEwMXFBdra2ti9ezdiY2MRHh7+0u0WFBTg+vXrmDNnDtzc3BolQagN3pNARPSGuR22CrfDVik6DCKiV0JKSgpcXFxgb2+PyMhIrFy5Et7e3i/dblxcHGxtbZGbm4vFixfXQ6T1iyMJRERERERV2Lx5c4O06+HhAQ8PjwZpuz5wJIGIiIiIiCSYJBARERERkQSTBCKiNxTvSyAioqowSSAiIiIiIgkmCUREREREJMEkgRpf+YvUiIiIiKhJ4iNQiYiIiN5kjfnlXZ+AxtsXvRSOJBARERFRk5WdnY0pU6bA0tIS6urqMDMzw9ChQ7F3794atxETEwN9ff2GC1JB1qxZg969e0NXVxcymQwPHjyot7aZJBARERFRk3TlyhU4ODggMTERixcvxqlTp7Bnzx706dMHkydPVnR4dVZUVFQv7Tx+/BgDBw7EV199VS/tPYtJAhERERE1ST4+PpDJZEhJScHIkSNhY2OD9u3bY8aMGThy5Ii8XmhoKOzt7aGtrQ0zMzP4+PggPz8fALB//354enoiNzcXMpkMMpkMQUFBAIDCwkLMmjULrVq1gra2Nrp37479+/dLYli7di3MzMygpaWFESNGIDQ0tMKoREREBKysrKCmpgZbW1usX79esl4mkyEyMhLDhg2DtrY25s+fD2tra4SEhEjqpaenQ0lJCZmZmTXqH19fX8yePRvvv/9+jerXBpMEoiYoPC1c0SEQEREp1L1797Bnzx5MnjwZ2traFdY/e6GupKSElStXIj09HbGxsUhMTMSsWbMAAE5OTli+fDl0dXWRlZWFrKws+Pv7AwA8PT2RlJSE+Ph4nDx5EqNGjcLAgQNx4cIFAEBSUhImTZqEadOmIS0tDS4uLliwYIEkjm3btmHatGnw8/NDeno6Jk6cCE9PT+zbt09SLzAwEMOGDcOpU6fg5eUFLy8vREdHS+pERUWhR48esLKygoeHB3r37v2y3VhnvHGZiIiI3ijJP21UdAhUAxcvXoQQAu3atXthXV9fX/m/LSws8N133+GLL75AeHg41NTUoKenB5lMBmNjY3m9zMxMxMXF4caNGzA1NQUA+Pv7Y8+ePYiOjsbChQsRFhaGQYMGyZMKGxsbJCcnY+fOnfJ2QkJC4OHhAR8fHwCQj3KEhISgT58+8nqjR4+Gl5eXfNnT0xNz585FSkoKunXrhqKiImzYsAFLliwBAJiYmKC0tLQOPVc/OJJARETUyFJ2XFJ0CERNnhACQNlUnRfZt28fXFxc0KpVK+jo6GDs2LG4e/cuHj16VOU2x48fhxACNjY2aNasmfxz4MAB+XSfc+fOoVu3bpLtnl/OyMiAs7OzpMzZ2RkZGRmSsq5du0qWTUxMMHjwYERFRQEAdu7ciadPn2LUqFEAgODgYPzwww8vPPaGwiSBiIiIiJqctm3bQiaTVbjYft7Vq1fh6uqKDh06YMuWLUhNTcXq1asBVH+DcGlpKZSVlZGamoq0tDT5JyMjAytWrABQlqg8n6SUJy/PqqzO82WVTZny9vZGfHw8njx5gujoaLi7u0NLS6va420sTBKIiIiIqMkxMDDAgAEDsHr16kpHBMof93ns2DEUFxdj6dKleP/992FjY4Nbt25J6qqpqaGkpERS1rlzZ5SUlCAnJwfW1taST/m0pHbt2iElJUWy3bFjxyTLdnZ2OHTokKQsOTkZdnZ2LzxGV1dXaGtrIyIiArt375ZMR1I03pNA1ITwhmUiIqL/CQ8Ph5OTE7p164Zvv/0WHTt2RHFxMRISEhAREYGMjAxYWVmhuLgYYWFhGDp0KJKSkhAZGSlpx9zcHPn5+di7dy/effddaGlpwcbGBmPGjMHYsWOxdOlSdO7cGXfu3EFiYiLs7e3h6uqKKVOmoGfPnggNDcXQoUORmJiI3bt3S0YJZs6cCTc3N3Tp0gV9+/bFjh07sHXrVvzxxx8vPD5lZWV4eHggICAA1tbWcHR0lK8LCAjAzZs3q51ylJ2djezsbFy8eBEAcOrUKejo6ODtt9+GgYFBbbtbgkkCERER0ZusCb8F2cLCAsePH8eCBQvg5+eHrKwstGjRAg4ODoiIiAAAdOrUCaGhoVi0aBECAgLQs2dPBAcHY+zYsfJ2nJycMGnSJLi7u+Pu3bsIDAxEUFAQoqOjMX/+fPj5+eHmzZswNDSEo6MjXF1dAZTdWxAZGYl58+bhm2++wYABAzB9+nSsWrVK3vbw4cOxYsUKLFmyBFOnToWFhQWio6Nr/GSi8ePHY+HChRVGEbKysnDt2rVqty2PrVzPnj0BANHR0fDw8KjR/qsiE5VNrHrD5OXlQU9PD7m5udDV1W30/S9LOA8AmO5i0+j7VohnX//ehP8wKcKzIwk+nXwUGAm9zm6H/e9/bi2mfKnASN5cz9643G2opQIjeTOVP93IadQYhexfEdcdT58+xeXLl2FhYQENDY1G2efrasKECTh79iwOHjxYL+0lJSWhd+/euHHjBoyMjOqlzerU9FzgSAIRERERURVCQkLg4uICbW1t7N69G7GxsQgPf/npwQUFBbh+/TrmzJkDNze3RkkQaoM3LhMRERERVSElJQUuLi6wt7dHZGQkVq5cCW9v75duNy4uDra2tsjNzcXixYvrIdL6xZEEIiIiIqIqbN68uUHa9fDweOn7BhoSRxKIiIiIiEiCSQIREREREUkwSSAiIiIiIgkmCUREREREJMEkgYiIiIiIJJgkEBERERGRBB+BSkRERPQGC097+ReD1ZRPJ59G2xe9HI4kEBEREVGTlZ2djSlTpsDS0hLq6uowMzPD0KFDsXfv3hq3ERMTA319/YYLUgHu3buHKVOmwNbWFlpaWnj77bcxdepU5Obm1kv7HEkgIiKiN1LyTxvhNGqMosOgaly5cgXOzs7Q19fH4sWL0bFjRxQVFeG3337D5MmTcfbsWUWHWCdFRUVQVVV9qTZu3bqFW7duISQkBO+88w6uXr2KSZMm4datW/j5559fOkaOJBARERFRk+Tj4wOZTIaUlBSMHDkSNjY2aN++PWbMmIEjR47I64WGhsLe3h7a2towMzODj48P8vPzAQD79++Hp6cncnNzIZPJIJPJEBQUBAAoLCzErFmz0KpVK2hra6N79+7Yv3+/JIa1a9fCzMwMWlpaGDFiBEJDQyuMSkRERMDKygpqamqwtbXF+vXrJetlMhkiIyMxbNgwaGtrY/78+bC2tkZISIikXnp6OpSUlJCZmfnCvunQoQO2bNmCoUOHwsrKCh9++CEWLFiAHTt2oLi4uIY9XDUmCURERETU5Ny7dw979uzB5MmToa2tXWH9sxfqSkpKWLlyJdLT0xEbG4vExETMmjULAODk5ITly5dDV1cXWVlZyMrKgr+/PwDA09MTSUlJiI+Px8mTJzFq1CgMHDgQFy5cAAAkJSVh0qRJmDZtGtLS0uDi4oIFCxZI4ti2bRumTZsGPz8/pKenY+LEifD09MS+ffsk9QIDAzFs2DCcOnUKXl5e8PLyQnR0tKROVFQUevToASsrK3h4eKB379616rPc3Fzo6upCReXlJwtxuhERERERNTkXL16EEALt2rV7YV1fX1/5vy0sLPDdd9/hiy++QHh4ONTU1KCnpweZTAZjY2N5vczMTMTFxeHGjRswNTUFAPj7+2PPnj2Ijo7GwoULERYWhkGDBsmTChsbGyQnJ2Pnzp3ydkJCQuDh4QEfn7KbsstHOUJCQtCnTx95vdGjR8PLy0u+7Onpiblz5yIlJQXdunVDUVERNmzYgCVLlgAATExMUFpaWuP+unv3Lr777jtMnDixxttUR+EjCTdv3sRnn30GQ0NDaGlpoVOnTkhNTZWvF0IgKCgIpqam0NTURO/evXH69GlJGwUFBZgyZQreeustaGtr46OPPsKNGzca+1CIiIiIqJ4IIQCUTdV5kX379sHFxQWtWrWCjo4Oxo4di7t37+LRo0dVbnP8+HEIIWBjY4NmzZrJPwcOHJBP9zl37hy6desm2e755YyMDDg7O0vKnJ2dkZGRISnr2rWrZNnExASDBw9GVFQUAGDnzp14+vQpRo0aBQAIDg7GDz/88MJjB4C8vDwMHjwY77zzDgIDA2u0zYsoNEm4f/8+nJ2doaqqit27d+PMmTNYunSpZPho8eLFCA0NxapVq3D06FEYGxvDxcUFDx8+lNfx9fXFtm3bEB8fj0OHDiE/Px9DhgxBSUmJAo6KiIiIiF5W27ZtIZPJKlxsP+/q1atwdXWVz9FPTU3F6tWrAZTdIFyV0tJSKCsrIzU1FWlpafJPRkYGVqxYAaAsUXk+SSlPXp5VWZ3nyyqbMuXt7Y34+Hg8efIE0dHRcHd3h5aWVrXH+7yHDx9i4MCBaNasGbZt2/bSN0SXU2iSsGjRIpiZmSE6OhrdunWDubk5+vbtCysrKwBlHbx8+XJ8/fXX+Pjjj9GhQwfExsbi8ePH2LRpE4CyuVfr1q3D0qVL0a9fP3Tu3BkbNmzAqVOn8Mcffyjy8Kgm9gUrOgIiIiJqggwMDDBgwACsXr260hGBBw8eAACOHTuG4uJiLF26FO+//z5sbGxw69YtSV01NbUKXx537twZJSUlyMnJgbW1teRTPi2pXbt2SElJkWx37NgxybKdnR0OHTokKUtOToadnd0Lj9HV1RXa2tqIiIjA7t27JdORaiIvLw/9+/eHmpoatm/fDg0NjVptXx2FJgnbt29H165dMWrUKLRs2RKdO3fG2rVr5esvX76M7Oxs9O/fX16mrq6OXr16ITk5GQCQmpqKoqIiSR1TU1N06NBBXud5BQUFyMvLk3yImprwtPBGfcENERFRUxMeHo6SkhJ069YNW7ZswYULF5CRkYGVK1fC0dERAGBlZYXi4mKEhYXh0qVLWL9+PSIjIyXtmJubIz8/H3v37sWdO3fw+PFj2NjYYMyYMRg7diy2bt2Ky5cv4+jRo1i0aBF27doFAJgyZQp27dqF0NBQXLhwAd9//z12794tGSWYOXMmYmJiEBkZiQsXLiA0NBRbt26V38dQHWVlZXh4eCAgIADW1tbyYwKAgIAAjB07tsptHz58iP79++PRo0dYt24d8vLykJ2djezs7HqZTaPQG5cvXbqEiIgIzJgxA1999RVSUlIwdepUqKurY+zYscjOzgYAGBkZSbYzMjLC1atXAZS9YENNTQ3NmzevUKd8++cFBwdj3rx5DXBERERERK+WpvwWZAsLCxw/fhwLFiyAn58fsrKy0KJFCzg4OCAiIgIA0KlTJ4SGhmLRokUICAhAz549ERwcLLnAdnJywqRJk+Du7o67d+8iMDAQQUFBiI6Oxvz58+Hn54ebN2/C0NAQjo6OcHV1BVB2b0FkZCTmzZuHb775BgMGDMD06dOxatUqedvDhw/HihUrsGTJEkydOhUWFhaIjo6u8ZOJxo8fj4ULF1YYRcjKysK1a9eq3C41NRV//vknAMDa2lqy7vLlyzA3N6/R/qsiE5VNrGokampq6Nq1q+Qb/6lTp+Lo0aM4fPgwkpOT4ezsjFu3bsHExEReZ8KECbh+/Tr27NmDTZs2wdPTEwUFBZK2XVxcYGVlVSGTBMpGEp6tn5eXBzMzM/ljoxrbsoTz8n9Pd7Fp9P03uuenGPUJUEwcTVBlIwdN+Y83vZpuh/3vf24tpnypwEjeXCk7LkmWuw21VFAkb6bknzbK/62Il6nl5eVBT0+vUa87nj59isuXL8PCwqJep6S8iSZMmICzZ8/i4MGD9dJeUlISevfujRs3blT4Yrwh1PRcUOh0IxMTE7zzzjuSMjs7O3nWVD4f7PkRgZycHHknGhsbo7CwEPfv36+yzvPU1dWhq6sr+RARERERPS8kJAR//fUXLl68iLCwMMTGxmLcuHEv3W5BQQEuXryIOXPmwM3NrVEShNpQaJLg7OyMc+fOScrOnz+PNm3aACgbYjI2NkZCQoJ8fWFhIQ4cOAAnJycAgIODA1RVVSV1srKykJ6eLq9DRERERFQXKSkpcHFxgb29PSIjI7Fy5Up4e3u/dLtxcXGwtbVFbm4uFi9eXA+R1i+F3pMwffp0ODk5YeHChXBzc0NKSgrWrFmDNWvWACh7nJSvry8WLlyItm3bom3btli4cCG0tLQwevRoAICenh7Gjx8PPz8/GBoawsDAAP7+/rC3t0e/fv0UeXhERERE9IrbvHlzg7Tr4eEBDw+PBmm7Pig0SXjvvfewbds2BAQE4Ntvv4WFhQWWL1+OMWP+Nz9w1qxZePLkCXx8fHD//n10794dv//+O3R0dOR1li1bBhUVFbi5ueHJkyfo27cvYmJioKysrIjDIiIiIiJ6pSk0SQCAIUOGYMiQIVWul8lkCAoKQlBQUJV1NDQ0EBYWhrCwsAaIkIiIiIjozaLQexKIiIiIiKjpYZJAjYtvWK4SX5xGRERETQWTBCIiIiIikmCSQET0Bnn2RWpERERVUfiNy0RERESkOI355QHf8v7q4EgCERERETVZ2dnZmDJlCiwtLaGurg4zMzMMHToUe/furXEbMTEx0NfXb7ggFWTixImwsrKCpqYmWrRogWHDhuHs2bP10jaTBCIiIiJqkq5cuQIHBwckJiZi8eLFOHXqFPbs2YM+ffpg8uTJig6vzoqKiuqlHQcHB0RHRyMjIwO//fYbhBDo378/SkpKXrptJglERERE1CT5+PhAJpMhJSUFI0eOhI2NDdq3b48ZM2bgyJEj8nqhoaGwt7eHtrY2zMzM4OPjg/z8fADA/v374enpidzcXMhkMvk7uACgsLAQs2bNQqtWraCtrY3u3btj//79khjWrl0LMzMzaGlpYcSIEQgNDa0wKhEREQErKyuoqanB1tYW69evl6yXyWSIjIzEsGHDoK2tjfnz58Pa2hohISGSeunp6VBSUkJmZmaN+uef//wnevbsCXNzc3Tp0gXz58/H9evXceXKlRptXx0mCQq2LOG8okMgIiIianLu3buHPXv2YPLkydDW1q6w/tkLdSUlJaxcuRLp6emIjY1FYmIiZs2aBQBwcnLC8uXLoauri6ysLGRlZcHf3x8A4OnpiaSkJMTHx+PkyZMYNWoUBg4ciAsXLgAAkpKSMGnSJEybNg1paWlwcXHBggULJHFs27YN06ZNg5+fH9LT0zFx4kR4enpi3759knqBgYEYNmwYTp06BS8vL3h5eSE6OlpSJyoqCj169ICVlRU8PDzQu3fvGvfXo0ePEB0dDQsLC5iZmdV4u6owSSAieoPdDlvFJx4RUZN08eJFCCHQrl27F9b19fVFnz59YGFhgQ8//BDfffcdNm/eDABQU1ODnp4eZDIZjI2NYWxsjGbNmiEzMxNxcXH46aef5Bfm/v7++OCDD+QX72FhYRg0aBD8/f1hY2MDHx8fDBo0SLLvkJAQeHh4wMfHBzY2NpgxYwY+/vjjCqMEo0ePhpeXFywtLdGmTRt4enri3LlzSElJAVA2BWnDhg3w8vICAJiYmODtt99+4bGHh4ejWbNmaNasGfbs2YOEhASoqam9uINfgEkCERERETU5QggAZVN1XmTfvn1wcXFBq1atoKOjg7Fjx+Lu3bt49OhRldscP34cQgjY2NjIL7KbNWuGAwcOyKf7nDt3Dt26dZNs9/xyRkYGnJ2dJWXOzs7IyMiQlHXt2lWybGJigsGDByMqKgoAsHPnTjx9+hSjRo0CAAQHB+OHH3544bGPGTMGJ06cwIEDB9C2bVu4ubnh6dOnL9zuRZgkEBEREVGT07ZtW8hksgoX28+7evUqXF1d0aFDB2zZsgWpqalYvXo1gOpvEC4tLYWysjJSU1ORlpYm/2RkZGDFihUAyhKV55OU8uTlWZXVeb6ssilT3t7eiI+Px5MnTxAdHQ13d3doaWlVe7zP09PTQ9u2bdGzZ0/8/PPPOHv2LLZt21arNirDJIGIiIiImhwDAwMMGDAAq1evrnRE4MGDBwCAY8eOobi4GEuXLsX7778PGxsb3Lp1S1JXTU2twhN/OnfujJKSEuTk5MDa2lryMTY2BgC0a9dOPh2o3LFjxyTLdnZ2OHTokKQsOTkZdnZ2LzxGV1dXaGtrIyIiArt375ZPNXoZQggUFBS8dDtMEoiIiIioSQoPD0dJSQm6deuGLVu24MKFC8jIyMDKlSvh6OgIALCyskJxcTHCwsJw6dIlrF+/HpGRkZJ2zM3NkZ+fj7179+LOnTt4/PgxbGxsMGbMGIwdOxZbt27F5cuXcfToUSxatAi7du0CAEyZMgW7du1CaGgoLly4gO+//x67d++WjBLMnDkTMTExiIyMxIULFxAaGoqtW7fKb46ujrKyMjw8PBAQEABra2v5MQFAQEAAxo4dW+W2ly5dQnBwMFJTU3Ht2jUcPnwYbm5u0NTUhKura636uTJ84zIRERHRG6wpvwXZwsICx48fx4IFC+Dn54esrCy0aNECDg4OiIiIAAB06tQJoaGhWLRoEQICAtCzZ08EBwdLLrCdnJwwadIkuLu74+7duwgMDERQUBCio6Mxf/58+Pn54ebNmzA0NISjo6P8ItvZ2RmRkZGYN28evvnmGwwYMADTp0/HqlX/e+DD8OHDsWLFCixZsgRTp06FhYUFoqOja/xkovHjx2PhwoUVRhGysrJw7dq1KrfT0NDAwYMHsXz5cty/fx9GRkbo2bMnkpOT0bJly5p2cZVkorKJVW+YvLw86OnpITc3F7q6uo267+cfgTrdxaZR99/o9gVXLOsT0PhxNEHhaeGVlvt08mnkSOh1VtWTjJryRcLrJGXHpUrLuw21bORI3mzJP22U/9tp1JhG378irjuePn2Ky5cvw8LCAhoaGo2yz9fVhAkTcPbsWRw8eLBe2ktKSkLv3r1x48YNGBkZ1Uub1anpucCRBCIiIiKiKoSEhMDFxQXa2trYvXs3YmNjER5e+Rd7tVFQUIDr169jzpw5cHNza5QEoTZ4TwIRERERURVSUlLg4uICe3t7REZGYuXKlfD29n7pduPi4mBra4vc3FwsXry4HiKtXxxJICIiojfGs1ONiGqi/KVs9c3DwwMeHh4N0nZ94EgCERERERFJMEkgIiIiIiIJJglERERERCTBJIGIiIiIiCSYJBARERERkQSTBCIiIiIikqjTI1AtLS1x9OhRGBoaSsofPHiALl264NKlyt8oSURERERNS1VvAm8IfLv4q6NOIwlXrlxBSUlJhfKCggLcvHnzpYMiIiIiIgKA7OxsTJkyBZaWllBXV4eZmRmGDh2KvXv31riNmJgY6OvrN1yQCiaEwKBBgyCTyfDLL7/US5u1GknYvn27/N+//fYb9PT05MslJSXYu3cvzM3N6yUwIiIiInqzXblyBc7OztDX18fixYvRsWNHFBUV4bfffsPkyZNx9uxZRYdYJ0VFRVBVVa239pYvXw6ZTFZv7QG1HEkYPnw4hg8fDplMhnHjxsmXhw8fjn/84x9ISEjA0qVL6zVAIiIiInoz+fj4QCaTISUlBSNHjoSNjQ3at2+PGTNm4MiRI/J6oaGhsLe3h7a2NszMzODj44P8/HwAwP79++Hp6Ync3FzIZDLIZDIEBQUBAAoLCzFr1iy0atUK2tra6N69O/bv3y+JYe3atTAzM4OWlhZGjBiB0NDQCqMSERERsLKygpqaGmxtbbF+/XrJeplMhsjISAwbNgza2tqYP38+rK2tERISIqmXnp4OJSUlZGZm1riP/vrrL4SGhiIqKqrG29RErZKE0tJSlJaW4u2330ZOTo58ubS0FAUFBTh37hyGDBlSrwESERER0Zvn3r172LNnDyZPngxtbe0K65+9UFdSUsLKlSuRnp6O2NhYJCYmYtasWQAAJycnLF++HLq6usjKykJWVhb8/f0BAJ6enkhKSkJ8fDxOnjyJUaNGYeDAgbhw4QIAICkpCZMmTcK0adOQlpYGFxcXLFiwQBLHtm3bMG3aNPj5+SE9PR0TJ06Ep6cn9u3bJ6kXGBiIYcOG4dSpU/Dy8oKXlxeio6MldaKiotCjRw9YWVnBw8MDvXv3rraPHj9+jE8//RSrVq2CsbFxjfq1pup04/Lly5frNQgiIiIiomddvHgRQgi0a9fuhXV9fX3l/7awsMB3332HL774AuHh4VBTU4Oenh5kMpnkQjozMxNxcXG4ceMGTE1NAQD+/v7Ys2cPoqOjsXDhQoSFhWHQoEHypMLGxgbJycnYuXOnvJ2QkBB4eHjAx8cHAOSjHCEhIejTp4+83ujRo+Hl5SVf9vT0xNy5c5GSkoJu3bqhqKgIGzZswJIlSwAAJiYmKC0trfa4p0+fDicnJwwbNuyFfVRbdUoSAGDv3r3Yu3evfEThWfU93EFEREREbxYhBADUaK79vn37sHDhQpw5cwZ5eXkoLi7G06dP8ejRo0pHIQDg+PHjEELAxsZGUl5QUCB/gue5c+cwYsQIyfpu3bpJkoSMjAz885//lNRxdnbGihUrJGVdu3aVLJuYmGDw4MGIioqSt/n06VOMGjUKABAcHFztMW/fvh2JiYk4ceJEtfXqqk5PN5o3bx769++PvXv34s6dO7h//77kQ0RERET0Mtq2bQuZTIaMjIxq6129ehWurq7o0KEDtmzZgtTUVKxevRpA2Q3CVSktLYWysjJSU1ORlpYm/2RkZMgv8IUQFZKU8uTlWZXVeb6ssmTF29sb8fHxePLkCaKjo+Hu7g4tLa1qj7dcYmIiMjMzoa+vDxUVFaiolH33/8knn7xwmlJN1GkkITIyEjExMfj8889fOgAiIiIioucZGBhgwIABWL16NaZOnVrhIvvBgwfQ19fHsWPHUFxcjKVLl0JJqez7782bN0vqqqmpVXh8f+fOnVFSUoKcnBz06NGj0hjatWuHlJQUSdmxY8cky3Z2djh06BDGjh0rL0tOToadnd0Lj9HV1RXa2tqIiIjA7t278d///veF25SbPXs2vL29JWX29vZYtmwZhg4dWuN2qlKnJKGwsBBOTk4vvXMiIiIioqqEh4fDyckJ3bp1w7fffouOHTuiuLgYCQkJiIiIQEZGBqysrFBcXIywsDAMHToUSUlJiIyMlLRjbm6O/Px87N27F++++y60tLRgY2ODMWPGYOzYsVi6dCk6d+6MO3fuIDExEfb29nB1dcWUKVPQs2dPhIaGYujQoUhMTMTu3bslowQzZ86Em5sbunTpgr59+2LHjh3YunUr/vjjjxcen7KyMjw8PBAQEABra2s4OjrK1wUEBODmzZv44YcfKt3W2Ni40puV3377bVhYWNS0i6tUpyTB29sbmzZtwpw5c146ACIiIiJSnKb8FmQLCwscP34cCxYsgJ+fH7KystCiRQs4ODggIiICANCpUyeEhoZi0aJFCAgIQM+ePREcHCz5Zt/JyQmTJk2Cu7s77t69i8DAQAQFBSE6Ohrz58+Hn58fbt68CUNDQzg6OsLV1RVA2b0FkZGRmDdvHr755hsMGDAA06dPx6pVq+RtDx8+HCtWrMCSJUswdepUWFhYIDo6usZTfsaPH4+FCxdKbmoGgKysLFy7du0le7DuZKKyiVUvMG3aNPzwww/o2LEjOnbsWOFlEKGhofUWYGPIy8uDnp4ecnNzoaur26j7XpZwXrI83cWmipqviX2V3ITTJ6Dx42iCwtPCKy336eTTyJHQ6+x22KpKy1tM+bKRI3kzpey4VGl5U75Ie90k/7RRsuw0akyjx6CI646nT5/i8uXLsLCwgIaGRqPs83U1YcIEnD17FgcPHqyX9pKSktC7d2/cuHEDRkZG9dJmdWp6LtRpJOHkyZPo1KkTgLKXPjyrvt/2RkRERESkKCEhIXBxcYG2tjZ2796N2NhYhIdX/sVebRQUFOD69euYM2cO3NzcGiVBqI06JQnPvxyCiIiIiOh1lJKSgsWLF+Phw4ewtLTEypUrK9wwXBdxcXEYP348OnXqVOENzU1Bnd+TQERERET0unv+SUn1xcPDAx4eHg3Sdn2oU5LQp0+faqcVJSYm1jkgIiIiIiJSrDolCeX3I5QrKipCWloa0tPTMW7cuPqIi+iNUdUNy0RERESKUqckYdmyZZWWBwUFIT8//6UCIiIietOk7LjEJxwRUZOiVJ+NffbZZ4iKiqrPJomIiIiIqJHVa5Jw+PDhOj97Nzg4GDKZDL6+vvIyIQSCgoJgamoKTU1N9O7dG6dPn5ZsV1BQgClTpuCtt96CtrY2PvroI9y4ceNlDoOIiIiI6I1Wp+lGH3/8sWRZCIGsrCwcO3asTm9hPnr0KNasWYOOHTtKyhcvXozQ0FDExMTAxsYG8+fPh4uLC86dOwcdHR0AgK+vL3bs2IH4+HgYGhrCz88PQ4YMQWpqKpSVletyeEREREREb7Q6JQl6enqSZSUlJdja2uLbb79F//79a9VWfn4+xowZg7Vr12L+/PnyciEEli9fjq+//lqelMTGxsLIyAibNm3CxIkTkZubi3Xr1mH9+vXo168fAGDDhg0wMzPDH3/8gQEDBtTl8IiIiIjeGM+/hbohKeIN11Q3dZpuFB0dLfmsW7cO//73v2udIADA5MmTMXjwYPlFfrnLly8jOztb0qa6ujp69eqF5ORkAEBqaiqKiookdUxNTdGhQwd5ncoUFBQgLy9P8iEiIiKipic7OxtTpkyBpaUl1NXVYWZmhqFDh2Lv3r01biMmJgb6+voNF6SC9O7dGzKZTPL5xz/+US9tv9TL1FJTU5GRkQGZTIZ33nkHnTt3rtX28fHxOH78OI4ePVphXXZ2NgBUeEW1kZERrl69Kq+jpqaG5s2bV6hTvn1lgoODMW/evFrFSg1oXzDQJ0DRURAREVETc+XKFTg7O0NfXx+LFy9Gx44dUVRUhN9++w2TJ0/G2bNnFR1inRQVFUFVVbVe2powYQK+/fZb+bKmpma9tFunkYScnBx8+OGHeO+99zB16lR8+eWXcHBwQN++fXH79u0atXH9+nVMmzYNGzZsqPZm5+df2iaEqPZFbjWpExAQgNzcXPnn+vXrNYqZiOhVdTtsFW6HrVJ0GEREteLj4wOZTIaUlBSMHDkSNjY2aN++PWbMmIEjR47I64WGhsLe3h7a2towMzODj4+P/LH8+/fvh6enJ3Jzc+XftgcFBQEACgsLMWvWLLRq1Qra2tro3r079u/fL4lh7dq1MDMzg5aWFkaMGIHQ0NAKoxIRERGwsrKCmpoabG1tsX79esl6mUyGyMhIDBs2DNra2pg/fz6sra0REhIiqZeeng4lJSVkZmbWuI+0tLRgbGws/zx/W0Bd1SlJmDJlCvLy8nD69Gncu3cP9+/fR3p6OvLy8jB16tQatZGamoqcnBw4ODhARUUFKioqOHDgAFauXAkVFRX5CMLzIwI5OTnydcbGxigsLMT9+/errFMZdXV16OrqSj5ERET05kn+aWOjzsmnmrt37x727NmDyZMnQ1tbu8L6Zy/UlZSUsHLlSqSnpyM2NhaJiYmYNWsWAMDJyQnLly+Hrq4usrKykJWVBX9/fwCAp6cnkpKSEB8fj5MnT2LUqFEYOHAgLly4AABISkrCpEmTMG3aNKSlpcHFxQULFiyQxLFt2zZMmzYNfn5+SE9Px8SJE+Hp6Yl9+/ZJ6gUGBmLYsGE4deoUvLy84OXlhejoaEmdqKgo9OjRA1ZWVvDw8EDv3r1f2E8bN27EW2+9hfbt28Pf3x8PHz584TY1UackYc+ePYiIiICdnZ287J133sHq1auxe/fuGrXRt29fnDp1CmlpafJP165dMWbMGKSlpcHS0hLGxsZISEiQb1NYWIgDBw7AyckJAODg4ABVVVVJnaysLKSnp8vrEBEREdGr5+LFixBCoF27di+s6+vriz59+sDCwgIffvghvvvuO2zevBkAoKamBj09PchkMvm37c2aNUNmZibi4uLw008/yS/M/f398cEHH8gv3sPCwjBo0CD4+/vDxsYGPj4+GDRokGTfISEh8PDwgI+PD2xsbDBjxgx8/PHHFUYJRo8eDS8vL1haWqJNmzbw9PTEuXPnkJKSAqBsCtKGDRvg5eUFADAxMcHbb79d7XGPGTMGcXFx2L9/P+bMmYMtW7ZUeAppXdXpnoTS0tJK51GpqqqitLS0Rm3o6OigQ4cOkjJtbW0YGhrKy319fbFw4UK0bdsWbdu2xcKFC6GlpYXRo0cDKHvK0vjx4+Hn5wdDQ0MYGBjA398f9vb2FW6EflUsSziP6S42ig6DiIiISKGEEAAqTj2vzL59+7Bw4UKcOXMGeXl5KC4uxtOnT/Ho0aNKRyEA4Pjx4xBCwMZGet1VUFAAQ0NDAMC5c+cwYsQIyfpu3bph586d8uWMjAz885//lNRxdnbGihUrJGVdu3aVLJuYmGDw4MGIioqSt/n06VOMGjUKQNk9tC8yYcIE+b87dOiAtm3bomvXrjh+/Di6dOnywu2rU6eRhA8//BDTpk3DrVu35GU3b97E9OnT0bdv35cK6FmzZs2Cr68vfHx80LVrV9y8eRO///67/B0JALBs2TIMHz4cbm5ucHZ2hpaWFnbs2MF3JBARERG9wtq2bQuZTIaMjIxq6129ehWurq7o0KEDtmzZgtTUVKxevRpA2bfzVSktLYWysjJSU1MlM1syMjLkF/iV3edanrw8qyb30FaWrHh7eyM+Ph5PnjxBdHQ03N3doaWlVe3xVqdLly5QVVWVT5d6GXUaSVi1ahWGDRsGc3NzmJmZQSaT4dq1a7C3t8eGDRvqHMzzN4qU31hSfnNJZTQ0NBAWFoawsLA675eIiIiImhYDAwMMGDAAq1evxtSpUytcZD948AD6+vo4duwYiouLsXTpUigplX3/XT7VqJyamhpKSkokZZ07d0ZJSQlycnLQo0ePSmNo166dfDpQuWPHjkmW7ezscOjQIYwdO1ZelpycLJmWXxVXV1doa2sjIiICu3fvxn//+98XblOd06dPo6ioCCYmJi/VDlDHJMHMzAzHjx9HQkICzp49CyEE3nnnnVd2ig8R0ZvudtgqtJjypaLDICKSCA8Ph5OTE7p164Zvv/0WHTt2RHFxMRISEhAREYGMjAxYWVmhuLgYYWFhGDp0KJKSkhAZGSlpx9zcHPn5+di7dy/effddaGlpwcbGBmPGjMHYsWOxdOlSdO7cGXfu3EFiYiLs7e3h6uqKKVOmoGfPnggNDcXQoUORmJiI3bt3S0YJZs6cCTc3N3Tp0gV9+/bFjh07sHXrVvzxxx8vPD5lZWV4eHggICAA1tbWcHR0lK8LCAjAzZs38cMPP1S6bWZmJjZu3AhXV1e89dZbOHPmDPz8/NC5c2c4OzvXscf/p1ZJQmJiIr788kscOXIEurq6cHFxgYuLCwAgNzcX7du3R2RkZJXZGBHVXnhaOHw6+Sg6DCIiek015bcgW1hY4Pjx41iwYAH8/PyQlZWFFi1awMHBAREREQCATp06ITQ0FIsWLUJAQAB69uyJ4OBgyTf7Tk5OmDRpEtzd3XH37l0EBgYiKCgI0dHRmD9/Pvz8/HDz5k0YGhrC0dERrq6uAMruLYiMjMS8efPwzTffYMCAAZg+fTpWrfrfI6WHDx+OFStWYMmSJZg6dSosLCwQHR1doycTAcD48eOxcOFC+Q3L5bKysnDt2rUqt1NTU8PevXuxYsUK5Ofnw8zMDIMHD0ZgYGC9TLuXicomVlXho48+Qp8+fTB9+vRK169cuRL79u3Dtm3bXjqwxpSXlwc9PT3k5uY2+uNQlyWcr1D2Wt+4vK+Km3De4JephaeFv7AOkwR6WTV5RwJHEhpeyo5LVa7rNtSyESN5c1X1uNPGvFBWxHXH06dPcfnyZVhYWFT7fip6sQkTJuDs2bM4ePBgvbSXlJSE3r1748aNG9U+wr++1PRcqNWNy3/99RcGDhxY5fr+/fsjNTW1Nk2+0SpLEIiIiIio6QgJCcFff/2FixcvIiwsDLGxsRg3btxLt1tQUICLFy9izpw5cHNza5QEoTZqlST8/fff1b5CWkVFpcZvXCYiIiIiaupSUlLg4uICe3t7REZGYuXKlfD29n7pduPi4mBra4vc3FwsXry4HiKtX7W6J6FVq1Y4deoUrK2tK11/8uTJermbmoiIiIioKXj+SUn1xcPDAx4eHg3Sdn2o1UiCq6sr5s6di6dPn1ZY9+TJEwQGBmLIkCH1FhwRERERETW+Wo0kfPPNN9i6dStsbGzw5ZdfwtbWVv6Si9WrV6OkpARff/11Q8VKRERERC+hFs+roddUTc+BWiUJRkZGSE5OxhdffIGAgADJ67IHDBiA8PDwJnfTBREREdGbrvye0sePH0NTU1PB0ZAiPX78GACqvc8YqMPL1Nq0aYNdu3bh/v37uHjxIoQQaNu2LZo3b163SOnNUNWjT4mIiKjBKSsrQ19fHzk5OQAALS0tyQvB6PUnhMDjx4+Rk5MDfX39F75LoU5vXAaA5s2b47333qvr5kRERETUiIyNjQFAnijQm0lfX19+LlSnzkkCEREREb06ZDIZTExM0LJlSxQVFSk6HFIAVVXVGr+NmUkCERER0RtEWVm5xheK9Oaq1SNQiYiIiIjo9cckgYiIiIiIJJgkEBERERGRBJMEIiIiIiKSYJJAREREb4TknzYqOgSiVwaTBCIiIiIikmCSQEREREREEkwSiIiIiIhIgkkCERERERFJMEkgIiIiIiIJJglERERERCTBJIGIiIiIiCSYJBARERERkQSTBCIioiYgZcclpOy4pOgwiIgAMEkgIiJqFEwAiOhVwiSBiIiIiIgkmCQQEREREZEEkwQiIiIiIpJgkkBERERvvOSfNio6BKImhUkCERERERFJMEkgIiIiIiIJJglERERERCTBJIGIiIiIiCSYJBARERERkQSTBCIiIiIikmCSQEREREREEkwSiIiIiIhIgkkCERERERFJMEkgIiIiIiIJJglERERERCTBJIGIiIiIiCSYJBApUHhauKJDICIiIqpAoUlCcHAw3nvvPejo6KBly5YYPnw4zp07J6kjhEBQUBBMTU2hqamJ3r174/Tp05I6BQUFmDJlCt566y1oa2vjo48+wo0bNxrzUIiIiIiIXhsKTRIOHDiAyZMn48iRI0hISEBxcTH69++PR48eyessXrwYoaGhWLVqFY4ePQpjY2O4uLjg4cOH8jq+vr7Ytm0b4uPjcejQIeTn52PIkCEoKSlRxGFRXewLLvsQERERkcKpKHLne/bskSxHR0ejZcuWSE1NRc+ePSGEwPLly/H111/j448/BgDExsbCyMgImzZtwsSJE5Gbm4t169Zh/fr16NevHwBgw4YNMDMzwx9//IEBAwY0+nG9rGUJ5zHdxUbRYRARERHRG6pJ3ZOQm5sLADAwMAAAXL58GdnZ2ejfv7+8jrq6Onr16oXk5GQAQGpqKoqKiiR1TE1N0aFDB3md5xUUFCAvL0/yISJ6Xd0OW6XoEIiI6BXTZJIEIQRmzJiBDz74AB06dAAAZGdnAwCMjIwkdY2MjOTrsrOzoaamhubNm1dZ53nBwcHQ09OTf8zMzOr7cIiIiIiIXllNJkn48ssvcfLkScTFxVVYJ5PJJMtCiAplz6uuTkBAAHJzc+Wf69ev1z1wIqLXxO2wVRx1ICIiAE0kSZgyZQq2b9+Offv2oXXr1vJyY2NjAKgwIpCTkyMfXTA2NkZhYSHu379fZZ3nqaurQ1dXV/IhIiIiIqIyCk0ShBD48ssvsXXrViQmJsLCwkKy3sLCAsbGxkhISJCXFRYW4sCBA3BycgIAODg4QFVVVVInKysL6enp8jpERERERFRzCn260eTJk7Fp0yb85z//gY6OjnzEQE9PD5qampDJZPD19cXChQvRtm1btG3bFgsXLoSWlhZGjx4trzt+/Hj4+fnB0NAQBgYG8Pf3h729vfxpR0REREREVHMKTRIiIiIAAL1795aUR0dHw8PDAwAwa9YsPHnyBD4+Prh//z66d++O33//HTo6OvL6y5Ytg4qKCtzc3PDkyRP07dsXMTExUFZWbqxDIWpQ4Wnh8Onko+gwiIiI6A2h0CRBCPHCOjKZDEFBQQgKCqqyjoaGBsLCwhAWFlaP0RERERERvZmaxI3LRERERA0p+aeNig6B6JXCJIEa3r5gRUdARERERLXAJEFBliWcV3QIRERERESVYpJARETUwFJ2XFJ0CEREtcIkgYiIiIiIJJgkEBERERGRBJMEIiIiIiKSYJJAREREREQSTBKIiIiIiEiCSQIREREREUkwSSAiIiIiIgkmCUREREREJMEkgYiIiIiIJJgkEBERERGRBJMEIiIiIiKSYJJAREREREQSTBKIiIiIiEiCSQIREREREUkwSSAiIiIiIgkmCUREREREJKGi6ACI3kThaeGKDoGIiIioShxJICIiidthqxQdwhstZcclRYfwxkr+aaOiQyBqMpgkEBERERGRBJOEJmpZwnlFh0BEREREbyjek0BNy75goE+AoqMgei1w2hAREdUVRxKIiIiIiEiCSQIREREREUkwSSB6RYSnhfPRqUREdcCnFhHVHpMEIiIiIiKSYJJAREREREQSfLoRNax9wYqOgIhIYfhiNCJ6VXEkgYiIiIiIJJgkEBERERGRBJMEBeDblImIiIioKWOSQEREREREEkwSiIiImpiUHZd40zMRKRSTBCIiIiIikmCSQET0GrodtkrRIRAR0SuMSQIRERHR/5f800ZFh0DUJDBJaMLe2Kcg8QVsRERERArFJIGokYWnhSs6BCIiIqJqMUkgesUwyaDGcDtsFe9reEl8OlHTwOlDRHWjougA3jRvzBQiThkiIiIiemVxJIGI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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots(figsize=(7, 3))\n", - "for i in range(6):\n", - " outcome = expit_func(idata.posterior.response_threshold).sel(response_threshold_dim=i).to_numpy().flatten()\n", - " ax.hist(outcome, bins=15, alpha=0.5, label=f\"Category: {i}\")\n", - "ax.set_xlabel(\"Probability\")\n", - "ax.set_ylabel(\"Count\")\n", - "ax.set_title(\"Cumulative Probability by Response Category\")\n", - "ax.legend(bbox_to_anchor=(1.04, 1), loc=\"upper left\");" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -534,7 +503,7 @@ "\n", "$$\\eta = \\beta_1 x_1 + \\beta_2 x_2 +, . . ., \\beta_n x_n$$\n", "\n", - "where $\\epsilon$ is an error term. Notice how similar this looks to an ordinary linear model. However, there is no intercept or error term. This is because the intercept is replaced by the threshold $\\tau$ and the error term $\\epsilon$ is added seperately to obtain\n", + "Notice how similar this looks to an ordinary linear model. However, there is no intercept or error term. This is because the intercept is replaced by the threshold $\\tau$ and the error term $\\epsilon$ is added seperately to obtain\n", "\n", "$$Z = \\eta + \\epsilon$$ \n", "\n", diff --git a/docs/notebooks/zero_inflated_regression.ipynb b/docs/notebooks/zero_inflated_regression.ipynb index 03e18d3ce..409616061 100644 --- a/docs/notebooks/zero_inflated_regression.ipynb +++ b/docs/notebooks/zero_inflated_regression.ipynb @@ -1794,7 +1794,7 @@ "\n", "In this notebook, two classes of models (ZIP and hurdle Poisson) for modeling zero-inflated data were presented and implemented in Bambi. The difference of the data generating process between the two models differ in how zeros are generated. The ZIP model uses a distribution that mixes two data generating processes. The first process generates zeros, and the second process uses a Poisson distribution to generate counts (of which some may be zero). The hurdle Poisson also uses two data generating processes, but doesn't \"mix\" them. A process is used for generating zeros such as a binary model for modeling whether the response variable is zero or not, and a second process for modeling the counts. These two proceses are independent of each other.\n", "\n", - "The datset used to demonstrate the two models had a large number of zeros. These zeros appeared because the group doesn't fish, or because they fished, but caught zero fish. Because zeros could be generated due to two different reasons, the ZIP model, which allows zeros to be generated from a mixture of processes, seems to be more appropriate for this datset." + "The dataset used to demonstrate the two models had a large number of zeros. These zeros appeared because the group doesn't fish, or because they fished, but caught zero fish. Because zeros could be generated due to two different reasons, the ZIP model, which allows zeros to be generated from a mixture of processes, seems to be more appropriate for this datset." ] }, {