From f2c1cc3d623f8a8a71eb3c132357b2d376314b73 Mon Sep 17 00:00:00 2001 From: Manuel Morales <64017590+manuel-morales-a@users.noreply.github.com> Date: Mon, 23 Dec 2024 14:04:10 -0300 Subject: [PATCH] docs: re-run and seed SBC tutorial (#1336) * Got rid of not used method * Done until Ranks versus Uniform distribution subsection * Done until DAP versus prior * Done until Running SBC * Done until When things go haywire * Done until A dispersed posterior * Done * Cells properly executed --- ...nostics_simulation_based_calibration.ipynb | 278 +++++++++++++++--- 1 file changed, 244 insertions(+), 34 deletions(-) diff --git a/tutorials/11_diagnostics_simulation_based_calibration.ipynb b/tutorials/11_diagnostics_simulation_based_calibration.ipynb index 5fa160cfc..0763772b3 100644 --- a/tutorials/11_diagnostics_simulation_based_calibration.ipynb +++ b/tutorials/11_diagnostics_simulation_based_calibration.ipynb @@ -78,7 +78,10 @@ "\n", "from sbi.analysis.plot import sbc_rank_plot\n", "from sbi.diagnostics import check_sbc, check_tarp, run_sbc, run_tarp\n", - "from sbi.inference import NPE, simulate_for_sbi" + "from sbi.inference import NPE\n", + "\n", + "# Set random seed\n", + "_ = torch.manual_seed(42)" ] }, { @@ -130,8 +133,6 @@ " ).sample()\n", " return value\n", "\n", - "\n", - "_ = torch.manual_seed(3)\n", "theta = prior.sample((num_simulations,))\n", "x = simulator(theta)" ] @@ -145,14 +146,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "theta: [[1.9352932 1.3774877]]\n", - "x : [[1.941461 1.4396194]]\n" + "theta: [[3.8389134 1.6634762]]\n", + "x : [[3.9267206 1.6138272]]\n" ] } ], "source": [ - "_ = torch.manual_seed(1)\n", - "\n", "# let's sample an observation from the parameters we\n", "# just produced\n", "theta_o = prior.sample((1,))\n", @@ -170,13 +169,11 @@ "name": "stdout", "output_type": "stream", "text": [ - " Neural network successfully converged after 66 epochs." + " Neural network successfully converged after 93 epochs." ] } ], "source": [ - "_ = torch.manual_seed(2)\n", - "\n", "# we use a mdn model to have a fast turnaround with training the NPE\n", "inferer = NPE(prior, density_estimator=\"nsf\")\n", "# append simulations and run training.\n", @@ -185,12 +182,40 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "47b1ba98ab1d4c4e8d75703114a3adee", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Drawing 10000 posterior samples: 0%| | 0/10000 [00:00" ] @@ -250,6 +275,7 @@ "outputs": [], "source": [ "num_sbc_samples = 200 # choose a number of sbc runs, should be ~100s\n", + "\n", "# generate ground truth parameters and corresponding simulated observations for SBC.\n", "thetas = prior.sample((num_sbc_samples,))\n", "xs = simulator(thetas)" @@ -268,7 +294,36 @@ "cell_type": "code", "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f048b19b2292495e9f32092da6160603", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Drawing 1000 posterior samples: 0%| | 0/1000 [00:00" ] @@ -455,7 +510,7 @@ "outputs": [ { "data": { - "image/png": "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NHLkSLVp00ZHH3201qxZ0+C2br31VnXt2lVt27bVpEmTVFtbu9v9/e53v9PgwYNVUFCggw46SL/+9a93q+Xxxx/X6NGjVVBQoMceeyxjNe86lD937lyNGzdOkhQIBJJvSp7n6cYbb1SvXr2Un5+vYcOG6bnnnmu05gsvvFBnnnmmbrnlFnXt2lXt2rXTjTfeqFgsplmzZqlDhw7q1auXHnrooT3+Xnt7HjzyyCPq2LGj6urqGvxNzjzzTP3oRz/a7W8FoPnCr9ylDpuWqfSzF1Sy4XkrviQjVwEFwkW5/vPnBMG0eVpVxzTT5s2bp0cffVT333+/Bg4cqJdeekn/+7//q86dO2v06NF6+OGHddhhh2nhwoWaNm2aLrvsMvXs2TMZTBNmzZqlu+++W926ddPPfvYzjRs3Th9++KHC4bDWrVunk08+WTfddJMefPBBffnll5oyZYqmTJmSDCLjx4/XypUrtXDhQg0dOlTr16/XV199pd69e+vPf/6zzjrrLK1Zs0YlJSUqLCxMqfbPPvtM3//+93XllVfqkksu0WuvvaYZM2a02N/u2muv1fz589W5c2dddtlluuiii7RixQpJ0hNPPKG5c+fq3nvv1bHHHqvf//73Wrhwofr165f8+ccee0zXX3+9fvWrX2n48OF68803NXnyZBUVFWnChAnJ611zzTWaP3++hg8f3uytWfZV865mzpypAw44QBMnTtTmzZuT5999992aP3++Fi1apOHDh+vBBx/U6aefrnfffVcDBw7ca83Lly/XP//5T/Xq1UsvvfSSVqxYoUmTJumVV17Rt7/9ba1atUqPP/64Lr30Up144onq1atXg3r29jzIy8vT1KlT9fTTT+vss8+WJG3ZskVLlizR0qVLm/W3ArBnFeU7VFXr6d22R6suWNz4D7QCG0IRrXP66vyCNrkuJScIps1DME1RXV2dbrnlFv3jH//QUUcdJUnq16+fXn75ZS1atEijR49Wz549tWjRIo0fP15ffPGFnnnmGb355pu7dWfnzJmjE088UZL08MMPq1evXnryySd1zjnnaN68ebrgggs0ffp0SdLAgQO1cOFCjR49Wvfdd582bNigJ554Qs8//7zGjh2brCOhQ4cOkqQuXbok5xamUvt9992n/v37a/78+ZKkQYMG6e2339Yvf/nLFvn73XzzzRo9erSkeBD73ve+p9raWhUUFGjBggWaNGmSJk2aJEm66aab9I9//KNB13TOnDmaP3++vv/970uSysrK9N5772nRokUNgun06dOT18lkzbsqLi5O/q13HU6/4447NHv2bJ133nmSpF/+8pdatmyZFixYoHvvvXefNXfo0EELFy5UIBDQoEGDdNttt6m6ulo/+9nPJEk//elPdeutt+rll19O3n5CMBjc4/NAkn74wx/qoYceSgbTRx99VH369NGYMWOa+FcCsC9byqvkRI0eqT5KXwY657qc7AhJoYCjNiE7AxrBtHkIpilau3atqqurk4EyIRKJaPjw4cnTZ599tp588kndeuutuu+++xp0xhIS4VCKB5BBgwbp/ffflyS99dZb+s9//tNgGDqxqnP9+vV6++23FQwGk4GppWp///33NWrUqL3W2VxDhgxJft+9e3dJ8W5dnz599P777+uyyy7b7b6XLVsmSaqqqtK6des0adIkTZ48OXmdWCym0tLSBj83cuTIrNTcmIqKCm3atEnHHHNMg/OPOeYYvfXWWw3O21PNhxxySIP5aF27dtWhhx6aPB0MBtWxY0dt2bIltV+m3uTJk/Wtb31LGzduVM+ePbV48WJdeOGFvJECmeLFD0V6XP92Upt2OS0lm/q2z1NeqFXOFtwr5pe2DIJpihKHk1uyZIl69uzZ4LL8/K+3xKiurtbrr7+uYDCojz76qEn3c+mll2rq1Km7XdanTx+tXbu2SbcpNV57uhLBaddVp3vbgmvXBT27zsFMRaL+3/72t7uF52Aw2OB0UdG+5zRlq+Z07Knmby6Achxnj+elW8/w4cM1dOhQPfLII/rud7+rd999V0uWLEm/aACN8jwjx7iSpCP7lqhNSdscV5Rd27dvt2pXAmOMwuEw4bSZCKYpOvjgg5Wfn68NGzbss1s5Y8YMBQIBPfvsszr11FP1ve99T9/5zncaXOdf//pXsuu2fft2ffjhhxo8eLAk6fDDD9d7772nAQMG7PH2DzvsMHmepxdffDE5lL+rvLw8SfEdCtKpffDgwXr66ad3q3NfOneOD0tt3rw52Xltyj6agwcP1qpVqzR+/Pg93nfXrl3Vo0cPffzxx7rgggvSvv1M1NyYkpIS9ejRQytWrGjwN1+xYoWOOOKIFr+/b9rT8yDh4osv1oIFC7Rx40aNHTtWvXv3zng9gI0isZgceTKSwiH7dn/xPE99+vSx5lCsUrxh0FiDBPtGME1R27ZtNXPmTP34xz+W53k69thjVV5erhUrVqikpEQTJkzQkiVL9OCDD2rlypU6/PDDNWvWLE2YMEH/+c9/GuxreeONN6pjx47q2rWrrr32WnXq1ElnnnmmJGn27Nk68sgjNWXKFF188cUqKirSe++9p+eff16/+tWvdMABB2jChAm66KKLkoufPv30U23ZskXnnHOO+vbtK8dx9Le//U2nnnqqCgsLU6r9sssu0/z58zVr1ixdfPHFev3117V48eJ9/k0KCwt15JFH6tZbb1VZWZm2bNmin//852n/badNm6YLL7xQI0eO1DHHHKPHHntM7777boO5szfccIOmTp2q0tJSnXzyyaqrq9Nrr72m7du36+qrr075vlqq5lTMmjVLc+bMUf/+/TVs2DA99NBDWr169R53C2hpe3oeJLa3+uEPf6iZM2fqt7/9rR555JGM1wLYqnaXHTBClm5LuOscfCAVrXICSCwWUyQS2edXLBZL+3Z/8Ytf6LrrrtO8efM0ePBgnXzyyVqyZInKysr05ZdfatKkSZo7d64OP/xwSfEw1bVr193mT956662aNm2aRowYoS+++EL/7//9v2SHa8iQIXrxxRf14Ycf6rjjjtPw4cN1/fXXq0ePHsmfv++++/SDH/xAV1xxhQ466CBNnjw5uZ1Uz549dcMNN+iaa65R165dNWXKlEZrl+LTBP785z/rqaee0tChQ3X//ffrlltuafRv8uCDDyoWi2nEiBGaPn26brrpprT/rueee66uu+46/eQnP9GIESP06aef6vLLL29wnYsvvli/+93v9NBDD+mwww7T6NGjtXjx4mT96WiJmlMxdepUXX311ZoxY4YOO+wwPffcc3r66af3OO+4pe3teSBJpaWlOuuss1RcXJz8DxGAlpfYms1xJCdgZzBlWBvpcoxPJ4BUVFSotLRU5eXlKikpaXBZbW2t1q9fr7KysgZDBH4/8hNH44FfnHDCCTrkkEO0cOHCfV5vb681AI37ZONmRR74nhwZeef8f5LTKntBe2SM0fbt23XIIYfs9hmO1mVfea0pWtVQfjgc1qBBg/Y4r25PgsEgR32CVbZv367ly5dr+fLlDQ5QAKDlRRJD+fGWaW6LybLECnU6pkhXqwqmUjycEjaBPRs+fLi2b9+u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vh9fBtPHH39cV199tebMmaM33nhDQ4cO1UknnaQtW7bkujQAaJJDDjlEmzdvTn69/PLLuS4JAFJWVVWloUOH6t57793j5bfddpsWLlyo+++/X6tWrVJRUZFOOukk1dbWpnU/vtwuatSoUfrWt76lX/3qV5Ikz/PUu3dvXXXVVbrmmmtyXB0ApGfu3Ll66qmntHr16lyXAgDN5jiOnnzySZ155pmS4t3SHj16aMaMGZo5c6Ykqby8XF27dtXixYt13nnnpXzbvuuYRiIRvf766xo7dmzyvEAgoLFjx2rlypU5rAwAmu6jjz5Sjx491K9fP11wwQXasGFDrksCgBaxfv16ffHFFw2yW2lpqUaNGpV2dvNdMP3qq6/kuq66du3a4PyuXbvqiy++yFFVANB0o0aN0uLFi/Xcc8/pvvvu0/r163Xcccdp586duS4NAJotkc9aIruFWqwqAMAenXLKKcnvhwwZolGjRqlv37564oknNGnSpBxWBgD+4ruOaadOnRQMBvXf//63wfn//e9/1a1btxxVBQAtp127djrwwAO1du3aXJcCAM2WyGctkd18F0zz8vI0YsQIvfDCC8nzPM/TCy+8oKOOOiqHlQFAy6isrNS6devUvXv3XJcCAM1WVlambt26NchuFRUVWrVqVdrZzZdD+VdffbUmTJigkSNH6ogjjtCCBQtUVVWliRMn5ro0AEjbzJkzNW7cOPXt21ebNm3SnDlzFAwGdf755+e6NABISWVlZYNRnvXr12v16tXq0KGD+vTpo+nTp+umm27SwIEDVVZWpuuuu049evRIrtxPlS+D6bnnnqsvv/xS119/vb744gsNGzZMzz333G6TagFgf/D555/r/PPP19atW9W5c2cde+yx+te//qXOnTvnujQASMlrr72m448/Pnn66quvliRNmDBBixcv1k9+8hNVVVXpkksu0Y4dO3TsscfqueeeU0FBQVr348t9TAEAAGAf380xBQAAgJ0IpgAAAPAFgikAAAB8gWAKAAAAXyCYAgAAwBcIpgAAAPAFgikAAAB8gWAKABk0d+5cDRs2LNdlpO2AAw7QggULcl0GAMsQTAFgF8uXL5fjONqxY0eL3N7MmTMbHD8aALB3BFMAyABjjGKxmIqLi9WxY8dm3VY0Gm3R6wGAXxFMAexXxowZoylTpmjKlCkqLS1Vp06ddN1112nXoytv375d48ePV/v27dWmTRudcsop+uijj5KXf/rppxo3bpzat2+voqIiHXLIIXrmmWf0ySefJI8F3b59ezmOowsvvFCS5Hme5s2bp7KyMhUWFmro0KH605/+lLzNRKf12Wef1YgRI5Sfn6+XX355t6F8z/N04403qlevXsrPz9ewYcP03HPPJS//5JNP5DiOHn/8cY0ePVoFBQV67LHH9vi3cBxH9913n04//XQVFRXp5ptvluu6mjRpUrLOQYMG6e67727wcxdeeKHOPPNM3XHHHerevbs6duyoK6+8cp/B9ne/+53atWtH9xdARoVyXQAApOvhhx/WpEmT9O9//1uvvfaaLrnkEvXp00eTJ0+WFA9eH330kZ5++mmVlJRo9uzZOvXUU/Xee+8pHA7ryiuvVCQS0UsvvaSioiK99957Ki4uVu/evfXnP/9ZZ511ltasWaOSkhIVFhZKkubNm6dHH31U999/vwYOHKiXXnpJ//u//6vOnTtr9OjRydquueYa3XHHHerXr5/at2+v5cuXN6j97rvv1vz587Vo0SINHz5cDz74oE4//XS9++67GjhwYIPbmT9/voYPH66CgoK9/i3mzp2rW2+9VQsWLFAoFJLneerVq5f++Mc/qmPHjnrllVd0ySWXqHv37jrnnHOSP7ds2TJ1795dy5Yt09q1a3Xuuedq2LBhyb/hrm677TbddtttWrp0qY444ogmPWYAkBIDAPuR0aNHm8GDBxvP85LnzZ492wwePNgYY8yHH35oJJkVK1YkL//qq69MYWGheeKJJ4wxxhx22GFm7ty5e7z9ZcuWGUlm+/btyfNqa2tNmzZtzCuvvNLgupMmTTLnn39+g5976qmnGlxnzpw5ZujQocnTPXr0MDfffHOD63zrW98yV1xxhTHGmPXr1xtJZsGCBY3+LSSZ6dOnN3q9K6+80px11lnJ0xMmTDB9+/Y1sVgsed7ZZ59tzj333OTpvn37mrvuusv85Cc/Md27dzfvvPNOo/cDAM1FxxTAfufII4+U4zjJ00cddZTmz58v13X1/vvvKxQKadSoUcnLO3bsqEGDBun999+XJE2dOlWXX365li5dqrFjx+qss87SkCFD9np/a9euVXV1tU488cQG50ciEQ0fPrzBeSNHjtzr7VRUVGjTpk065phjGpx/zDHH6K233kr5dhq73r333qsHH3xQGzZsUE1NjSKRyG47AxxyyCEKBoPJ0927d9fbb7/d4Drz589XVVWVXnvtNfXr1y+legCgOZhjCsA6F198sT7++GP96Ec/0ttvv62RI0fqnnvu2ev1KysrJUlLlizR6tWrk1/vvfdeg3mmklRUVNQiNaZ6O9+83h/+8AfNnDlTkyZN0tKlS7V69WpNnDhRkUikwfXC4XCD047jyPO8Bucdd9xxcl1XTzzxRBN+AwBIH8EUwH5n1apVDU7/61//0sCBAxUMBjV48GDFYrEG19m6davWrFmjgw8+OHle7969ddlll+kvf/mLZsyYod/+9reSpLy8PEmS67rJ6x588MHKz8/Xhg0bNGDAgAZfvXv3TrnukpIS9ejRQytWrGhw/ooVKxrU1hwrVqzQ0UcfrSuuuELDhw/XgAEDtG7duibd1hFHHKFnn31Wt9xyi+64444WqQ8A9oWhfAD7nQ0bNujqq6/WpZdeqjfeeEP33HOP5s+fL0kaOHCgzjjjDE2ePFmLFi1S27Ztdc0116hnz54644wzJEnTp0/XKaecogMPPFDbt2/XsmXLNHjwYElS37595TiO/va3v+nUU09VYWGh2rZtq5kzZ+rHP/6xPM/Tscceq/Lycq1YsUIlJSWaMGFCyrXPmjVLc+bMUf/+/TVs2DA99NBDWr169V5X3qdr4MCBeuSRR/T3v/9dZWVl+v3vf69XX31VZWVlTbq9o48+Ws8884xOOeUUhUIhTZ8+vUXqBIA9IZgC2O+MHz9eNTU1OuKIIxQMBjVt2jRdcsklycsfeughTZs2TaeddpoikYi+/e1v65lnnkkOX7uuqyuvvFKff/65SkpKdPLJJ+uuu+6SJPXs2VM33HCDrrnmGk2cOFHjx4/X4sWL9Ytf/EKdO3fWvHnz9PHHH6tdu3Y6/PDD9bOf/Syt2qdOnary8nLNmDFDW7Zs0cEHH6ynn366wYr85rj00kv15ptv6txzz5XjODr//PN1xRVX6Nlnn23ybR577LFasmSJTj31VAWDQV111VUtUisAfJNjzC6b/wGAz40ZM0bDhg3jcJkA0AoxxxQAAAC+QDAFAACALzCUDwAAAF+gYwoAAABfIJgCAADAFwimAAAA8AWCKQAAAHyBYAoAAABfIJgCAADAFwimAAAA8AWCKQAAAHyBYAoAAABf+P8B1uPU6sbrimwAAAAASUVORK5CYII=\n", + "image/png": "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T3T00UdLktq3by/HcXT22Wc3WnvKE088of3220+lpaU6+uij9cknn+zx+/HJJ5/IcZwGw9lbtmyR4zhaunRpg3/zs88+q1GjRqlNmzY6/PDD9cEHHzR4rJtuukldu3ZV27ZtNXnyZNXV7Tzk9fvf/15DhgxRSUmJBg8erP/8z//cqZZHHnlEY8aMUUlJiR5++OGc1Txnzpz0kPmcOXM0YcIESVIoFEq/Kfm+r2uvvVa9evVScXGxhg8frqeeeqrRms8++2yddNJJuvHGG9W1a1e1a9dO1157rVzX1YwZM9ShQwf16tVL999//y7/Xbv7PXjwwQfVsWNHxWKxBt+Tk046SWedddZO3ysAzRf3fElGJw6u0OlDO1jxMaxLRGVFIfYxRZO0ymCaK3PnztWDDz6ou+++W++++64uv/xy/fSnP9Xzzz8vx3H0wAMP6JVXXtGdd94pSbrooovUs2fPdDBNmTFjhubNm6dXXnlFnTt31oQJE5RIJP+qXr16tcaPH6+TTz5Zb731lh555BG9+OKLuuSSS9JfP3HiRP2///f/dOedd2rlypVauHChysvL1bt3b/35z3+WJH3wwQdav3697rjjjkZrl6TPPvtM//7v/64JEyZoxYoVOu+88zRr1qwW+95deeWVmjdvnl599VVFIhGde+656dseffRRzZkzRzfeeKNeffVVde/evUHolKSHH35YV199tW644QatXLlSN954o6666io98MADDe43a9YsTZkyRStXrtSxxx6bs5p3NH369HRIXL9+vdavXy9JuuOOOzRv3jzdeuuteuutt3TsscfqxBNP1EcffdRozc8995zWrVunF154Qbfddptmz56tE044Qe3bt9fy5ct10UUX6cILL9Tnn3++Uz27+z045ZRT5Hme/vrXv6bvu2HDBi1evHi3/zYATef7Rgk3ufipKGLP4dbxkycTsPGUpBLBtLla1VB+LsViMd144436+9//rsMOO0yS1L9/f7344otauHChxowZo549e2rhwoWaOHGivvzySz3xxBN64403durOzp49W9///vclSQ888IB69eqlxx57TKeeeqrmzp2rM888U1OnTpUkDRw4UHfeeafGjBmjBQsWaO3atXr00Uf1zDPPaNy4cek6Ujp06CBJ6tKlS3puYSa1L1iwQPvuu6/mzZsnSRo0aJDefvtt/eY3v2mR798NN9ygMWPGSEoGsR/+8Ieqq6tTSUmJ5s+fr8mTJ2vy5MmSpOuvv15///vfG3RNZ8+erXnz5unf//3fJUn9+vXTe++9p4ULF2rSpEnp+02dOjV9n1zWvKPy8vL093rH4fRbb71VM2fO1Omnny5J+s1vfqMlS5Zo/vz5+u1vf7vHmjt06KA777xToVBIgwYN0s0336yamhr96le/kiT98pe/1E033aQXX3wx/fgp4XB4l78HkvSTn/xE999/v0455RRJ0kMPPaQ+ffpo7NixTfwuAdidZLdUMsayYOolR2UIpmgKgmmGVq1apZqamnSgTInH4xoxYkT68imnnKLHHntMN910kxYsWKCBAwfu9FipcCglA8igQYO0cuVKSdKbb76pt956q8EwdGofvDVr1ujtt99WOBxOB6aWqn3lypUaPXr0butsrqFDh6Y/7969u6Rkt65Pnz5auXKlLrroop2ee8mSJZKk7du3a/Xq1Zo8ebLOP//89H1c11VlZWWDrxs1alReam5MdXW11q1bpyOOOKLB9UcccYTefPPNBtftquYDDjhAodA3B7KuXbvqwAMPTF8Oh8Pq2LGjNmzYkNk/pt7555+v73znO/riiy/Us2dPLVq0SGeffTZvpEAOxNzkML4kFdsUTP3kCKBtQ/nML20ZBNMMpU4nt3jxYvXs2bPBbcXF30zwrqmp0WuvvaZwOLzTkG2mz3PhhRfqsssu2+m2Pn36aNWqVU16TKnx2rOVCk6pObWS0lMSvm3HBT07zsHMRKr+3/3udzuF53C44WKCsrKyQNScjV3V/O0FUI7j7PK6bOsZMWKEhg0bpgcffFA/+MEP9O6772rx4sXZFw2gUXHXlzFSOCSFLAosqX1Mq2tiqtq0qcDV5I8xRtFolHDaTATTDO2///4qLi7W2rVr99itnDZtmkKhkJ588kkdf/zx+uEPf6jvfe97De7zj3/8I91127x5sz788EMNGTJEknTwwQfrvffe04ABA3b5+AcddJB839fzzz+fHsrfUVFR8i/UHfdyzaT2IUOGNJh7mKpzTzp37iwpOa8y1Xltyr6jQ4YM0fLlyzVx4sRdPnfXrl3Vo0cPffzxxzrzzDOzfvxc1NyYiooK9ejRQ8uWLWvwPV+2bJkOOeSQFn++b9vV70HKeeedp/nz5+uLL77QuHHj1Lt375zXA9goNZQfCdkVVFIdU09h9e7d25pTsUrJhkFjDRLsGcE0Q23bttX06dN1+eWXy/d9HXnkkaqqqtKyZctUUVGhSZMmafHixbrvvvv08ssv6+CDD9aMGTM0adIkvfXWWw32tbz22mvVsWNHde3aVVdeeaU6deqU3ox95syZOvTQQ3XJJZfovPPOU1lZmd577z0988wz+o//+A/ts88+mjRpks4991zdeeedGjZsmD799FNt2LBBp556qvr27SvHcfS3v/1Nxx9/vEpLSzOq/aKLLtK8efM0Y8YMnXfeeXrttde0aNGiPX5PSktLdeihh+qmm25Sv379tGHDBv3617/O+ns7ZcoUnX322Ro1apSOOOIIPfzww3r33XcbzJ295pprdNlll6myslLjx49XLBbTq6++qs2bN+uKK67I+LlaquZMzJgxQ7Nnz9a+++6r4cOH6/7779eKFSt2uVtAS9vV70Fqe6uf/OQnmj59un73u9/pwQcfzHktgK1iCU+SUZE9o/iSvumYmlC0wRx8IBOt8uXiuq7i8fgeP1zXzfpxr7vuOl111VWaO3euhgwZovHjx2vx4sXq16+fvv76a02ePFlz5szRwQcfLCkZprp27brT/MmbbrpJU6ZM0ciRI/Xll1/qf/7nf9IdrqFDh+r555/Xhx9+qKOOOkojRozQ1VdfrR49eqS/fsGCBfrxj3+siy++WIMHD9b555+f3k6qZ8+euuaaazRr1ix17do1vZp/T7VLyWkCf/7zn/X4449r2LBhuvvuu3XjjTc2+j2577775LquRo4cqalTp+r666/P+vt62mmn6aqrrtIvfvELjRw5Up9++ql+9rOfNbjPeeedp9///ve6//77ddBBB2nMmDFatGhRuv5stETNmbjssst0xRVXaNq0aTrooIP01FNP6a9//esu5x23tN39HkhSZWWlTj75ZJWXl+f17FSAbeKeLyN7O6Z+qIhhbWTNMTtOtguQ6upqVVZWqqqqShUVFQ1uq6ur05o1a9SvX78GQwRBP/MTZ+NBUBxzzDE64IAD0lub7c7uXmsAGvfmZ1s0809vqDLi6tpjG1802Vr0XDpF4brNev+Aadr3kPE7HcPRuuwprzVFqxrKj0ajGjRo0C7n1e1KOBzmrE+wyubNm7V06VItXbp0p71iAbSs1BzTaKscm9y91FC+6JiiCVpVMJWS4ZSw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1qal39cCs/gJAAAAdgtsxxQAAAB2IZgCAAAgEAimAAAACASCKQAAAAIhsMH0t7/9rfbZZx+VlJRo9OjR+uc//1nokgCgSebMmSPHcRp8DB48uNBlAUDGXnjhBU2YMEE9evSQ4zh6/PHHG9xujNHVV1+t7t27q7S0VOPGjdNHH32U9fMEMpg+8sgjuuKKKzR79my9/vrrGjZsmI499lht2LCh0KUBQJMccMABWr9+ffrjxRdfLHRJAJCx7du3a9iwYfrtb3+7y9tvvvlm3Xnnnbr77ru1fPlylZWV6dhjj1VdXV1WzxPI7aJGjx6t73znO/qP//gPSZLv++rdu7cuvfRSzZo1q8DVAUB25syZo8cff1wrVqwodCkA0GyO4+ixxx7TSSedJCnZLe3Ro4emTZum6dOnS5KqqqrUtWtXLVq0SKeffnrGjx24jmk8Htdrr72mcePGpa8LhUIaN26cXn755QJWBgBN99FHH6lHjx7q37+/zjzzTK1du7bQJQFAi1izZo2+/PLLBtmtsrJSo0ePzjq7BS6Y/utf/5LneeratWuD67t27aovv/yyQFUBQNONHj1aixYt0lNPPaUFCxZozZo1Ouqoo7R169ZClwYAzZbKZy2R3SItVhUAYJeOO+649OdDhw7V6NGj1bdvXz366KOaPHlyASsDgGAJXMe0U6dOCofD+uqrrxpc/9VXX6lbt24FqgoAWk67du203377adWqVYUuBQCaLZXPWiK7BS6YFhUVaeTIkXr22WfT1/m+r2effVaHHXZYASsDgJaxbds2rV69Wt27dy90KQDQbP369VO3bt0aZLfq6motX7486+wWyKH8K664QpMmTdKoUaN0yCGHaP78+dq+fbvOOeecQpcGAFmbPn26JkyYoL59+2rdunWaPXu2wuGwzjjjjEKXBgAZ2bZtW4NRnjVr1mjFihXq0KGD+vTpo6lTp+r666/XwIED1a9fP1111VXq0aNHeuV+pgIZTE877TR9/fXXuvrqq/Xll19q+PDheuqpp3aaVAsAe4PPP/9cZ5xxhjZu3KjOnTvryCOP1D/+8Q917ty50KUBQEZeffVVHX300enLV1xxhSRp0qRJWrRokX7xi19o+/btuuCCC7RlyxYdeeSReuqpp1RSUpLV8wRyH1MAAADYJ3BzTAEAAGAngikAAAACgWAKAACAQCCYAgAAIBAIpgAAAAgEgikAAAACgWAKAACAQCCYAkAOzZkzR8OHDy90GVnbZ599NH/+/EKXAcAyBFMA2MHSpUvlOI62bNnSIo83ffr0BuePBgDsHsEUAHLAGCPXdVVeXq6OHTs267ESiUSL3g8AgopgCmCvMnbsWF1yySW65JJLVFlZqU6dOumqq67SjmdX3rx5syZOnKj27durTZs2Ou644/TRRx+lb//00081YcIEtW/fXmVlZTrggAP0xBNP6JNPPkmfC7p9+/ZyHEdnn322JMn3fc2dO1f9+vVTaWmphg0bpv/6r/9KP2aq0/rkk09q5MiRKi4u1osvvrjTUL7v+7r22mvVq1cvFRcXa/jw4XrqqafSt3/yySdyHEePPPKIxowZo5KSEj388MO7/F44jqMFCxboxBNPVFlZmW644QZ5nqfJkyen6xw0aJDuuOOOBl939tln66STTtKtt96q7t27q2PHjvr5z3++x2D7+9//Xu3ataP7CyCnIoUuAACy9cADD2jy5Mn65z//qVdffVUXXHCB+vTpo/PPP19SMnh99NFH+utf/6qKigrNnDlTxx9/vN577z1Fo1H9/Oc/Vzwe1wsvvKCysjK99957Ki8vV+/evfXnP/9ZJ598sj744ANVVFSotLRUkjR37lw99NBDuvvuuzVw4EC98MIL+ulPf6rOnTtrzJgx6dpmzZqlW2+9Vf3791f79u21dOnSBrXfcccdmjdvnhYuXKgRI0bovvvu04knnqh3331XAwcObPA48+bN04gRI1RSUrLb78WcOXN00003af78+YpEIvJ9X7169dKf/vQndezYUS+99JIuuOACde/eXaeeemr665YsWaLu3btryZIlWrVqlU477TQNHz48/T3c0c0336ybb75ZTz/9tA455JAm/cwAICMGAPYiY8aMMUOGDDG+76evmzlzphkyZIgxxpgPP/zQSDLLli1L3/6vf/3LlJaWmkcffdQYY8xBBx1k5syZs8vHX7JkiZFkNm/enL6urq7OtGnTxrz00ksN7jt58mRzxhlnNPi6xx9/vMF9Zs+ebYYNG5a+3KNHD3PDDTc0uM93vvMdc/HFFxtjjFmzZo2RZObPn9/o90KSmTp1aqP3+/nPf25OPvnk9OVJkyaZvn37Gtd109edcsop5rTTTktf7tu3r7n99tvNL37xC9O9e3fzzjvvNPo8ANBcdEwB7HUOPfRQOY6TvnzYYYdp3rx58jxPK1euVCQS0ejRo9O3d+zYUYMGDdLKlSslSZdddpl+9rOf6emnn9a4ceN08skna+jQobt9vlWrVqmmpkbf//73G1wfj8c1YsSIBteNGjVqt49TXV2tdevW6Ygjjmhw/RFHHKE333wz48dp7H6//e1vdd9992nt2rWqra1VPB7faWeAAw44QOFwOH25e/fuevvttxvcZ968edq+fbteffVV9e/fP6N6AKA5mGMKwDrnnXeePv74Y5111ll6++23NWrUKN111127vf+2bdskSYsXL9aKFSvSH++9916DeaaSVFZW1iI1Zvo4377fH//4R02fPl2TJ0/W008/rRUrVuicc85RPB5vcL9oNNrgsuM48n2/wXVHHXWUPM/To48+2oR/AQBkj2AKYK+zfPnyBpf/8Y9/aODAgQqHwxoyZIhc121wn40bN+qDDz7Q/vvvn76ud+/euuiii/SXv/xF06ZN0+9+9ztJUlFRkSTJ87z0fffff38VFxdr7dq1GjBgQIOP3r17Z1x3RUWFevTooWXLljW4ftmyZQ1qa45ly5bp8MMP18UXX6wRI0ZowIABWr16dZMe65BDDtGTTz6pG2+8UbfeemuL1AcAe8JQPoC9ztq1a3XFFVfowgsv1Ouvv6677rpL8+bNkyQNHDhQP/rRj3T++edr4cKFatu2rWbNmqWePXvqRz/6kSRp6tSpOu6447Tffvtp8+bNWrJkiYYMGSJJ6tu3rxzH0d/+9jcdf/zxKi0tVdu2bTV9+nRdfvnl8n1fRx55pKqqqrRs2TJVVFRo0qRJGdc+Y8YMzZ49W/vuu6+GDx+u+++/XytWrNjtyvtsDRw4UA8++KD+93//V/369dMf/vAHvfLKK+rXr1+THu/www/XE088oeOOO06RSERTp05tkToBYFcIpgD2OhMnTlRtba0OOeQQhcNhTZkyRRdccEH69vvvv19TpkzRCSecoHg8ru9+97t64okn0sPXnufp5z//uT7//HNVVFRo/Pjxuv322yVJPXv21DXXXKNZs2bpnHPO0cSJE7Vo0SJdd9116ty5s+bOnauPP/5Y7dq108EHH6xf/epXWdV+2WWXqaqqStOmTdOGDRu0//77669//WuDFfnNceGFF+qNN97QaaedJsdxdMYZZ+jiiy/Wk08+2eTHPPLII7V48WIdf/zxCofDuvTSS1ukVgD4NseYHTb/A4CAGzt2rIYPH87pMgGgFWKOKQAAAAKBYAoAAIBAYCgfAAAAgUDHFAAAAIFAMAUAAEAgEEwBAAAQCARTAAAABALBFAAAAIFAMAUAAEAgEEwBAAAQCARTAAAABALBFAAAAIHw/wHRwjavWfTaHgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -489,11 +544,39 @@ "execution_count": 16, "metadata": {}, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "80616613a5b24018bde222bb7f7aae8c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Drawing 1000 posterior samples: 0%| | 0/1000 [00:00" ] @@ -625,16 +736,44 @@ "execution_count": 21, "metadata": {}, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "db025cf99159435b80b6dfc0de55eae8", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Drawing 1000 posterior samples: 0%| | 0/1000 [00:00" ] @@ -692,16 +831,44 @@ "execution_count": 23, "metadata": {}, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7ad02300bee7434ca05c813fd80a028e", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Drawing 1000 posterior samples: 0%| | 0/1000 [00:00" ] @@ -721,7 +888,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The rank histograms now look more like a very wide gaussian distribution centered in the middle. The KS p-values again vanish unsurprisingly (we must reject the hypothesis that both distributions are from the same uniform PDF) and the c2st_ranks indicate that the rank histogram is not uniform too. As our posterior samples are distributed too broad now, we obtain more \"medium\" range ranks and hence produce the peak of ranks in the center of the histogram.\n" + "The rank histograms now look more like a very wide gaussian distribution centered in the middle. The KS p-values are again small (we must reject the hypothesis that both distributions are from the same uniform PDF) and the c2st_ranks indicate that the rank histogram is not uniform too. As our posterior samples are distributed too broad now, we obtain more \"medium\" range ranks and hence produce the peak of ranks in the center of the histogram.\n" ] }, { @@ -745,16 +912,44 @@ "execution_count": 25, "metadata": {}, "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8fec496527154b2eaf5718e6c19f3f53", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Drawing 1000 posterior samples: 0%| | 0/1000 [00:00" ] @@ -774,7 +969,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The histogram of ranks now shoots above the allowed (greyed) area for a uniform distributed around the extrema. We made the posterior samples too thin, so we received more extreme counts of ranks. The KS p-values vanish again and the `c2st` metric of the ranks is also larger than `0.5` which underlines that our rank distribution is not uniformly distributed.\n" + "The histogram of ranks now shoots above the allowed (greyed) area for a uniform distributed around the extrema. We made the posterior samples too thin, so we received more extreme counts of ranks. The KS p-values are small again and the `c2st` metric of the ranks is also larger than `0.5` which underlines that our rank distribution is not uniformly distributed.\n" ] }, { @@ -835,7 +1030,22 @@ "cell_type": "code", "execution_count": 27, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d1bbef1d247f4006aabb68e919079351", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Drawing 1000 posterior samples: 0%| | 0/1000 [00:00" ] @@ -923,7 +1133,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.14" + "version": "3.10.16" }, "toc": { "base_numbering": 1,