Created
August 27, 2024 20:20
-
-
Save davipatti/956930f91740ff890c003d7305ee08d3 to your computer and use it in GitHub Desktop.
Investigating the behaviour of pymc.distributions.transforms.ordered
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pymc as pm\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"plt.style.use(\"ggplot\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"I just learnt about [`pymc.distributions.transforms.ordered`](https://www.pymc.io/projects/docs/en/latest/api/distributions/generated/pymc.distributions.transforms.ordered.html) and wanted to test its behaviour." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"Auto-assigning NUTS sampler...\n", | |
"Initializing NUTS using jitter+adapt_diag...\n", | |
"Multiprocess sampling (4 chains in 4 jobs)\n", | |
"NUTS: [n]\n", | |
"Sampling 4 chains for 1_000 tune and 1_000 draw iterations (4_000 + 4_000 draws total) took 0 seconds.\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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p5+qT58+ql27tut4dub87du36/e//70cDoccDoduueUW12nDH374QYMGDVJkZKRCQ0N13XXXaceOHR7b27Nnj6ZMmaIOHTooMjLStf+OGTNG6enppX6N33//vT755BMNGDDAI+RblqUXX3xRkvTkk08qIOC/f5779++vrl27aufOnV6Ps2URHBysPn36KDo6ukzL9e/fX6GhoeU+blaUIH8XUNUFBATokUce0ZYtW/Taa6/p6aefPm/7KVOm6Mknn1RcXJwGDRqkiIgIHTp0SJ9//rlWrlypwYMHq0mTJpo+fboWLlwoSbr//vtdyycmJrqt79dff9U111yjWrVq6dZbb5VlWapfv/4F6963b5+uueYatWnTRmPHjtWhQ4f05ptvqk+fPnr99dfP+UeqNKZPn653331X33zzjSZMmCCHwyFJrv+ez5AhQ/Tmm28qNjZWo0ePls1mU0pKiu655x599NFHXg+42dnZuvbaaxUcHKxbb71V+fn5WrlypUaPHq2AgAD98Y9/LFP97dq10+23367k5GS9+uqrpVp+1apVuu2222Sz2XTrrbcqNjZW27dv14svvqhVq1Zp69atatq0qcdy9913n7Zu3aobb7xRffv2VWBgoNv8iRMnasuWLbrpppvUu3dvrV69WtOmTVNhYaHCw8P16KOPasCAAfrd736njRs36vnnn1dRUZFeeOEFt/VMmTJFAQEB6tSpky6//HJlZ2dr06ZNeuCBB5SamqrXX3+9VH2zYcMGBQUF6eqrry5V+0tJ586dJUnr16/X2LFjS71cYWGhevfuraNHj6p///4qKCjQG2+8oVtuuUXr16/XM888oy+//FJ9+vRRSEiIVq5cqXvvvVf16tUr0340ZMgQffzxx+rTp48uu+wyrVu3Tk899ZSOHDni+lBQXqU57pSWzWbTU089pZ49e7renxeSlZWlzp076/vvv1fHjh01cOBAZWZm6q233tINN9yg559/XuPGjfNY7pNPPtGcOXPUtWtXjRo1SkeOHFFwcLBr/ueff6758+erW7duGj16tP7973/rnXfe0bfffquUlBR16dJFrVu31rBhw5Senq63335bvXr1UlpamsLDw13reeedd/Tiiy/quuuuU+fOnRUcHKxvv/1Wixcv1urVq/XFF1+oUaNGF3ydzkDmfK+d6ccff1R6erri4+MVFxfnMb9Pnz76+OOPtXnzZvXo0eOC2/K1kJAQtW/fXv/617+UnZ1dquN1pbBwUSRZF+rG/Px8KygoyJJk7du3zzW9W7duHsvWrl3batiwoZWbm+uxnoyMDLefGzdubDVu3PiCtd1xxx1WYWGhx/zhw4d71LRv3z7XchMnTnRr//nnn1tBQUGWw+Gwjh075po+ffp0S5K1efNmj2041zd8+PALbvtM3vrmtddesyRZHTp0cOuf3Nxcq3379pYka9myZV77YNSoUVZRUZFr+nfffWcFBgZarVq18rr989X0ww8/WOnp6VaNGjWsyy+/3Dpx4oTH69qwYYNr2vHjx606depYgYGB1rZt29zWOWfOHEuS1atXL7fpzvU0bNjQSktL86jFOb9x48bWzz//7JqelZVl1a1b1woLC7Pq1q1r7dy50zXv1KlT1pVXXmkFBwdb//nPf9zWt3fvXo9tFBcXW0OHDrUkWf/617+8bv/M319ubq4VEBBgJSQkeOs+D6+88oolyZo2bVqp2pdX48aNLUle94Gz1a5d26pXr16Z192vXz8rPz/fNf2jjz6yJFkRERFWhw4drKysLNe8ffv2WXa73UpMTHRb1+bNmy1J1vTp092mO9937du3t3799VfX9NzcXKtZs2ZWQECAdfDgQbf1e9vnzl7f2a+7tMedczn793njjTdakqxVq1Z5vMahQ4e6LTtmzBhLknX33Xe7Tf/++++tWrVqWXa73W0/cK5HkvXiiy961HLm/LOPCSNHjnT9bmbPnu0274knnrAkWQsXLnSb/vPPP7v9fp3WrVtnBQQEWGPHjvW6/bN/l3/4wx8sSdaXX37psa41a9a43kverFixwpJkDRo0yOv88nIev19++eULtr3//vstSdaaNWt8WsPF4HRSJQgJCVGdOnUkSUeOHDlvW5vNpuDgYAUFeQ6SledceXBwsJ566imv6zufiIgIPfbYY27TOnTooKFDhyo7O1spKSllruViLVmyRNLpC5LPvOulZs2amjdvniR5HeoMCwvTggUL3EYxWrdurWuvvVbff/+9jh8/XuZaYmJidP/99+uXX3654Ojau+++q6NHj2rw4MEen8AmTpyoxo0ba+PGjV4vhJw0aZLXT2VOjz32mNuF2Q6HQzfffLPy8vI0btw4XXHFFa55wcHBGjRokAoKCjwumm7WrJnHugMCAvTA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DsOXlJQoOztb3333nbZu3aqCggJ17NhRr7322gWv8j958qR69eqlJk2aqFOnTmrcuLHy8/O1YcMG7dq1S/369VPr1q1d7Xv27KnPP/9cffr0UdeuXRUcHKy2bdvqpptuuujX87vf/U6LFi3SZ599pmuvvdb1nJiSkhK99NJLbqdtOnbsqO7du2vLli3q2LGjevToof/85z967733dMMNN3gNKj179tSf//xnjRkzRrfccovCw8PlcDjO+8j1IUOGaNWqVXrrrbd05ZVXasCAAbLZbHr33Xe1b98+DRo0yONOhMry1FNP6be//a3XP97h4eFasmSJbrvtNnXr1k233XabYmNj9cUXX2j9+vWKiorSSy+95IeqTxs2bJj+/Oc/64EHHtCWLVvUokUL/fDDD1qzZo0GDhyoN998s9TruuWWW/T222/rgw8+UPPmzT3mL1q0yDXy5Oyr9957z/UJvVWrVm53jDj/sJ59Aeb5ZGZmauLEiW4/S6cDrjMMTZkyxeOJ0M47TLyNSJlm8uTJGjFihK699lrddtttqlGjhjZv3qzCwkK1bdtW33zzjattWY875TFixAgtXLjwnN85Nm/ePH388cd6/vnn9fnnn+u6665zPSfm+PHjev755y94Kr6iREVFafDgwVq+fLkSExN1/fXX69ixY9qwYYNq1KihxMREj7uZzqVHjx5yOBz64IMPNHv2bI/5Dz74oNasWaOVK1eqU6dO6tmzp9LT07VixQqFhYVpyZIlbg/Bk+QKO2W5A3XevHmuURVn7a+88opr3+zSpYtGjx7ttszu3buVnp6uO++889IaqfTrDd5VgP7/WQTOf8HBwVbdunWt9u3bW6NHj7b++c9/WsXFxV6XPft5DQUFBdb8+fOt3//+91ZMTIwVEhJi1atXz+rUqZP1wgsvWKdOnXJbPjc317rrrrusyy+/3AoMDPR4NoQkq1u3bues/XzPiRk+fLi1a9cu6+abb7YcDocVGhpqde7c2Xr//fe9ris7O9u68847rcjISCs4ONi68sorrZdeeum8z6z4y1/+YrVq1coKDg52PfPkXH3jVFxcbP31r3+1rrrqKis0NNQKDQ212rdvbz3//PNe+/l8fXChZ9Wc7cznxHgzePBg1/vgzOfEOKWmploDBgyw6tWrZ9ntdismJsa66667rF9++aXMtZ1v/vme2+N8lscrr7ziNv27776zbrrpJisyMtIKCwuz2rdvb7388stlfs7PqVOnrAYNGlgdO3Y8b93n+nf27+rrr7/2+lyR8znzWUfn+nd23xQXF1uNGjWy2rZtW+rtWNb5n9V0rvewZXnvvws9J8abc/0+LcuylixZYrVu3doKDg62GjRoYN15551WZmbmRR93zuVCz/15//33Xf3v7feZlZVlPfTQQ1bz5s2t4OBgKyIiwurVq5f1wQcfeLQ9V1+VZv6FnqPj7X144sQJa+rUqVazZs2skJAQq1GjRta4ceO89ueFtu981sqZz3A6U15envXYY4+5+qFevXrWrbfean333Xde2ycmJlq1atWyjh496nW+N86az/XPW988/PDDliTrq6++KvV2KgMhBoBPOR/g5+2BXmX1zDPPWDabzfr22299UNm5rV692pJkJScnV+h2gH379lkhISHWfffdd9HrysrKsgICAqxJkyb5oLJzy8/Ptxo2bGj17NmzQrdTHjbLOutEKABchPz8fMXHxyshIUHvvffeRa3rlltuUXFxset7iCqCZVm66qqrFBgYqNTU1EtrqBxV0kMPPaTnnntOe/fudXtYZVm99957uu2227R///5yP06jNBYuXKg//elP+vLLL9W2bdsK2055cE0MAJ+qUaOGkpOTtXnzZp04ccLt6cpl9fbbb/uwMu8OHz6sm2++2XWNFVDRHnnkEdWsWVP79++/qBBz0003VcpzmUJCQrR48eJLLsBIEiMxAADASNxiDQAAjESIAQAARiLEAAAAIxFiAACAkQgxAADASFX+FuusrKwyfbdFVRYZGamMjAx/l1Hl0c+Vg36uHPRz5aGvTwsKCvL4lu9ztq3gWvyuqKhIhYWF/i7D75zPvygqKvL4ojf4Dv1cOejnykE/Vx76unw4nQQAAIxEiAEAAEYixAAAACMRYgAAgJEIMQAAwEiEGAAAYCRCDAAAMBIhBgAAGIkQAwAAjESIAQAARiLEAAAAIxFiAACAkQgxAADASIQYAABgpCB/FwAA1UXxmJv9XULZrd3u7wqAc2IkBgAAGIkQAwAAjESIAQAARiLEAAAAIxFiAACAkQgxAADASIQYAABgpDI/J2bnzp1avXq19u3bp6ysLE2cOFEdO3Z0zbcsSytWrNCmTZuUm5urFi1aaNSoUYqJiXG1KSwsVHJysrZt26aC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oJdeekn5+fkaNmyYv8sz2ieffKKlS5dq9OjRio+P18aNGzVnzhwtWLBA9erV83d5VcLOnTt1ww03qFmzZiouLtby5cs1e/ZsPf3006pRo4a/y6uS9u7dq40bN6px48b+LsUonE6qpr766ivt2LFDd9xxh79LqZISExM1btw4tW3bVg0aNFCHDh100003KTU11d+lGW/NmjXq0aOHevbs6RqFqVevntavX+/v0qqMadOmqXv37oqJiVGTJk00btw4ZWZmKi0tzd+lVUn5+fl67rnnNHbsWNWsWdPf5RiFEFMNZWdn66WXXtK9996r4OBgf5dTbeTl5Sk8PNzfZRitqKhIaWlpatu2rdv0hIQE7d69209VVX15eXmSxPu3gixatEjt2rVTQkKCv0sxDiGmmrEsS3/729/Uu3dvNWvWzN/lVBuHDx/WP//5T7736yLl5OSopKTE45vsIyIiPL7xHr5hWZZeffVVtWrVSrGxsf4up8rZtm2b9u3bpyFDhvi7FCNxTUwV8dZbb2nlypXnbTN37lzt3r1bJ0+eVFJSUiVVVrWUtp/PDIhHjx7VnDlzdM0116hnz54VXWK1YLPZSjUNF2/x4sVKT0/XrFmz/F1KlZOZmamlS5dq2rRpjIqXE9+dVEXk5OTo+PHj520TGRmphQsX6osvvnA74JeUlCggIEBdunTRvffeW9GlGq20/ew8IB09elQzZ85UixYtNG7cOAUEMPh5MYqKinT77bfrwQcfVMeOHV3TX3nlFe3fv18zZ870Y3VVz5IlS/T5559r5syZql+/vr/LqXJSU1P11FNPuR0XSkpKZLPZZLPZ9Prrr3PMuABCTDWTmZnpOr8tSVlZWXriiSf04IMPqkWLFqpbt64fq6tanAEmLi5O9913HwcjH5k6daqaNm2q0aNHu6Y98MADuvrqqxmS9xHLsrRkyRKlpqZqxowZio6O9ndJVdLJkyeVkZHhNu2FF15Qw4YN1b9/f07flQKnk6qZs29Bdd4uGRUVRYDxoaNHj2rGjBmqV6+ehg0bppycHNc8h8Phv8KqgH79+um5555T06ZN1bJlS23cuFGZmZlcb+RDixcv1tatW/XQQw8pNDTUdb1RWFgYpz18KDQ01COohISEqFatWgSYUiLEABVgx44dOnz4sA4fPqy77rrLbd5bb73lp6qqhs6dO+v48eN6++23lZWVpZiYGD388MOKjIz0d2lVhvN29RkzZrhNHzdunLp37175BQHnwOkkAABgJE7SAwAAIxFiAACAkQgxAADASIQYAABgJEIMAAAwEiEGAAAYiRADAACMRIgBAABGIsQAAAAjEWIAAICRCDEAAMBI/wcIfV9JG+2fcgAAAABJRU5ErkJggg==", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"with pm.Model():\n", | |
" pm.Normal(\"n\", mu=[0.0, 1.0], sigma=1.0, shape=2)\n", | |
" idata = pm.sample(progressbar=False)\n", | |
"\n", | |
"post = idata.posterior[\"n\"].stack({\"sample\": (\"chain\", \"draw\")})\n", | |
"plt.hist(post[1] - post[0], bins=range(-5, 6))\n", | |
"plt.title(\"Distribution Normal(1, 1) minus Normal(0, 1)\");" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"Auto-assigning NUTS sampler...\n", | |
"Initializing NUTS using jitter+adapt_diag...\n", | |
"Multiprocess sampling (4 chains in 4 jobs)\n", | |
"NUTS: [n]\n", | |
"Sampling 4 chains for 1_000 tune and 1_000 draw iterations (4_000 + 4_000 draws total) took 1 seconds.\n", | |
"There were 7 divergences after tuning. Increase `target_accept` or reparameterize.\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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EckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJkrK2F1heXo7t27fjp59+gkajgaurK/r3748xY8bAyupOZhJCYPv27Th06BCKiorQrl07TJs2DT4+PtJytFot4uLicPToUZSVlaFTp06IiopCs2bNarvKRERUhSsjejR0FSxm/fGuhq4C1ZNa74lJSEjAgQMHMG3aNKxZswbPPPMMdu3ahX379hmU2b17N6ZOnYoVK1ZArVZj6dKlKCkpkcrExsYiKSkJ0dHRWLJkCUpLS7Fy5UpUVFTUdpWJiIhIhmo9xKSkpKBHjx7o1q0bmjdvjkcffRSdO3fGpUuXANzphdmzZw8iIyPRq1cv+Pr6Yvbs2bh9+zYSExMBAMXFxfj+++8xceJEdO7cGf7+/pg7dy4yMjJw5syZ2q4yERERyVCtn05q3749Dhw4gGvXrsHb2xvp6elITk7GpEmTAADZ2dnQaDTo0qWL9B6VSoXg4GAkJycjPDwcqampKC8vR+fOnaUybm5u8PX1RUpKCkJCQozWq9VqodVqpdcKhQL29vbS/5s6fRuwLeoW27l+sH2pOnLcP3jsqJlaDzEREREoLi7GSy+9BCsrK1RUVGD8+PEICwsDAGg0GgCAi4uLwftcXFyQm5srlVEqlXBycjIqo3//3eLj47Fjxw7ptb+/P1atWgUPD49a2rLGwdPTs6Gr0CSwnevelYauAD2wvLy8GroKNcZjh2VqPcQcO3YMP/30E1544QX4+PggPT0dsbGx0gW+enenTSHEPZddXZnIyEiMHDnSaPk5OTnQ6XQWbkXjo1Ao4OnpiaysLLPammqG7Vw/+GuVqpOZmdnQVbAYjx1/USqVZndA1HqI+eyzzxAREYE+ffoAAHx9fZGTk4OdO3eif//+UKvVACDduaRXWFgo9c6o1WrodDoUFRUZ9MYUFhYiKCjI5HpVKhVUKpXJeU19h6hMCMH2qAdsZ6KGI+fvHo8dlqn1C3tv374t3UotrcTKSvpQmjdvDrVabXCBrk6nw9mzZ6WAEhAQAGtra4My+fn5yMjIQGBgYG1XmYiIiGSo1ntiunfvjm+++Qbu7u5o1aoV0tPT8e2332LAgAEA7nSZDR8+HPHx8fDy8oKnpyfi4+Nha2srXTfj4OCAgQMHIi4uDs7OznByckJcXBx8fX0NLvYlIiKipqvWQ8zUqVPx1VdfYePGjSgoKICbmxvCw8Mxbtw4qUxERATKysqwceNG3Lp1C23btkVMTIx0NxEATJo0CdbW1lizZo002N2CBQuMenmIiIioaVKIRn7yLScnx+DW66ZKoVDAy8sLmZmZPN9ah9jO9UOhUEAX9URDV4MeUHIcsZfHjr+oVCqzL+xltwYRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREckSQwwRERHJEkMMERERyRJDDBEREcmSsi4WmpeXh88++wy//vorysrK4OXlhZkzZyIgIAAAIITA9u3bcejQIRQVFaFdu3aYNm0afHx8pGVotVrExcXh6NGjKCsrQ6dOnRAVFYVmzZrVRZWJiIhIZmq9J6aoqAhvvPEGlEolXn/9dbz33nuYOHEiHBwcpDIJCQnYvXs3pk6dihUrVkCtVmPp0qUoKSmRysTGxiIpKQnR0dFYsmQJSktLsXLlSlRUVNR2lYmIiEiGaj3EJCQkoFmzZpg1axbatm2L5s2b4+GHH4anpyeAO70we/bsQWRkJHr16gVfX1/Mnj0bt2/fRmJiIgCguLgY33//PSZOnIjOnTvD398fc+fORUZGBs6cOVPbVSYiIiIZqvXTSSdOnECXLl3w3nvv4ezZs3Bzc8OQIUMwePBgAEB2djY0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", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"with pm.Model():\n", | |
" pm.Normal(\"n\", mu=[0.0, 1.0], sigma=1.0, shape=2, transform=pm.distributions.transforms.ordered)\n", | |
" idata_ord = pm.sample(progressbar=False)\n", | |
"\n", | |
"post_ord = idata_ord.posterior[\"n\"].stack({\"sample\": (\"chain\", \"draw\")})\n", | |
"plt.hist(post_ord[1] - post_ord[0], bins=range(-5, 6))\n", | |
"plt.title(\"Distribution of Normal(1, 1) minus Normal(0, 1)\\nconstrained to be ordered\");" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"What do the underlying distributions look like?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0.5, 1.0, 'Normal(1, 1) (ordered)')" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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", | |
"text/plain": [ | |
"<Figure size 640x480 with 4 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"hist_kwds = dict(bins=np.arange(-5, 5.5, 0.5))\n", | |
"\n", | |
"ax = plt.subplot(221)\n", | |
"plt.hist(post[0], **hist_kwds)\n", | |
"plt.title(\"Normal(0, 1)\")\n", | |
"\n", | |
"ax_kwds = dict(sharex=ax, sharey=ax)\n", | |
"\n", | |
"plt.subplot(222, **ax_kwds)\n", | |
"plt.hist(post[1], **hist_kwds)\n", | |
"plt.title(\"Normal(1, 1)\")\n", | |
"\n", | |
"plt.subplot(223, **ax_kwds)\n", | |
"plt.hist(post_ord[0], **hist_kwds)\n", | |
"plt.title(\"Normal(0, 1) (ordered)\")\n", | |
"\n", | |
"plt.subplot(224, **ax_kwds)\n", | |
"plt.hist(post_ord[1], **hist_kwds)\n", | |
"plt.title(\"Normal(1, 1) (ordered)\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Obviously, the ordered distributions get shifted (albeit not as much as I thought they would) and\n", | |
"their variance also gets reduced a bit after the ordered transform is applied." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"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.12.4" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment