{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Discrete" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from scipy.stats import binom, bernoulli, multinomial, poisson, norm, uniform\n", "import numpy as np\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Binomial\n", "\n", "Toss a coint $n$ times with $k$ times success, probability of head is $\\theta$, $X \\in \\{0, ..., n\\}$.\n", "\n", "- **PMF**\n", "$$Bin(k|n, \\theta) = {{n}\\choose{k}}\\theta^k (1 - \\theta)^{n - k}$$" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment\n", "n = 5\n", "theta = 0.4\n", "k = x = np.arange(binom.ppf(0.01, n, theta), binom.ppf(0.99, n, theta))\n", "y = binom.pmf(k, n, theta)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, y, 'bo', ms=8, label='binom pmf')\n", "ax.vlines(x, ymin=0, ymax=y, colors='b', lw=5, alpha=0.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bernouli\n", "\n", "Toss a coin only once $X \\in \\{0, 1\\}$.\n", "\n", "- **PMF**\n", "$$Ber(x | \\theta) = \\theta^{\\mathbf{I}(x = 1)} (1 - \\theta)^{\\mathbf{I}(x = 0)}$$\n", "\n", "- **Likelihood**\n", "$$L(p) = log(p) = klog(\\theta) + (n - k)log(1 - \\theta)$$\n", "\n", "- **MLE**\n", "$$\\frac{d L(p)}{d \\theta} = 0 \\iff k\\frac{1}{\\theta} - (n - k)\\frac{1}{1 - \\theta} = 0$$\n", "$$\\theta_{MLE} = \\frac{k}{n}$$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment\n", "theta = 0.3\n", "k = x = np.arange(bernoulli.ppf(0.01, theta), bernoulli.ppf(0.99, theta))\n", "y = bernoulli.pmf(k, theta)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, y, 'bo', ms=8, label='bernoulli pmf')\n", "ax.vlines(x, 0, y, colors='b', lw=5, alpha=0.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multinomial\n", "\n", "Tossing a $K$-sided die, let $\\textbf{x} = (x_1, ..., x_K) \\in \\{0, 1, ..., n\\}^K$, $x_j$ is the number of times side $j$ of the die occurs.\n", "\n", "- **PMF**\n", "$$Mu(\\textbf{x} | n, \\boldsymbol{\\theta}) = {{n}\\choose{x_1 ... x_K}} \\prod_{j=1}^K \\theta_{j}^{x_j}$$\n", "$${{n}\\choose{x_1 ... x_K}} = \\frac{n!}{x_1!x_2!...x_K!}$$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.29030399999999973\n", "0.2903040000000001\n" ] } ], "source": [ "# setup experiment\n", "x = [3, 4]\n", "n = 7\n", "theta = [0.4, 0.6]\n", "print multinomial.pmf(x, n, theta)\n", "print binom.pmf(3, 7, 0.4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multinouli\n", "\n", "One-hot encoding $\\textbf{x} \\in \\{0, 1\\}^K$.\n", "\n", "$$Mu(\\textbf{x} | 1, \\boldsymbol{\\theta}) = \\prod_{j=1}^K \\theta_j^{\\mathbf{I}(x_j = 1)}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Poisson\n", "\n", "Counts rare events like radioactive decay and traffic accidents. $X \\in \\{0, 1, ...\\}$, $\\lambda > 0$, $e^{-\\lambda}$ is normalization constant.\n", "\n", "- **PMF**\n", "$$Poi(x|\\lambda) = e^{-\\lambda}\\frac{\\lambda^x}{x!}$$" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAEbZJREFUeJzt3X+MHGd9x/H31z6MCY7aEF/VKLGxk1qtTEsbuKauW0FMU+EkwqYCJEdFStogKzYuVFRWg1LFVfpHW1sqVVUnxdBIUBVMSNrKgFHKj6CqRQ6+0JBgUsPZBHIyKmeTQk9wCabf/rFzMN6sfbN3u3t3j98vabUzz/PMzjfPTT433tm9icxEklSWJfNdgCSp9wx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoGG5mvHK1euzDVr1szX7iVpUXrsscdOZ+bwTOPmLdzXrFnD6OjofO1ekhaliPhGk3G+LSNJBTLcJalAhrskFchwl6QCLZpwn5yEPXtgeBiWLGk979nTapcknWvePi3TjclJ2LABTpyAqalW2+nTsHcvPPQQHDkCK1bMb42StJAsijP3ffvODfZpU1Ot9n375qcuSVqoFkW433vvC4N92tQU3HffYOuRpIVuUYT7mTNz65eki82iCPfLL59bvyRdbBZFuO/cCcuXd+5bvhx27BhsPZK00C2KcN+9G665BobaPtszNNRq3717fuqSpIVqUYT7ihWtjztu3AiXXAIRreeNG/0YpCR1sig+5w6tAN+0qfVob5cknWtRnLlLkrpjuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVKBG4R4RmyPieESMRcSdHfpvi4iJiHi8eryt96VKkpqa8RuqEbEU2A/8NjAOHI2IQ5n5lbahH8nMXX2oUZLUpSZn7tcBY5l5MjOfBw4CW/tbliRpLpqE+5XAM7X18aqt3Zsi4omIeDAiVvWkOknSrDQJ9+jQlm3rHwPWZOYrgU8DH+j4QhHbI2I0IkYnJia6q1SS1FiTcB8H6mfiVwGn6gMy80xmPletvg94dacXyswDmTmSmSPDw8OzqVeS1ECTcD8KrIuItRGxDNgGHKoPiIgraqtbgKd6V6IkqVszflomM89GxC7gYWApcH9mHouIe4DRzDwEvCMitgBnge8At/WxZknSDBrdrCMzDwOH29ruri2/G3h3b0uTJM2W31CVpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVyHCXpAIZ7pJUIMNdkgrUKNwjYnNEHI+IsYi48wLj3hwRGREjvStRktStGcM9IpYC+4EbgfXALRGxvsO4S4F3AI/2ukhJUneanLlfB4xl5snMfB44CGztMO7PgL3AVA/rkyTNQpNwvxJ4prY+XrX9WERcC6zKzI/3sDZJ0iw1Cffo0JY/7oxYArwH+KMZXyhie0SMRsToxMRE8yolSV1pEu7jwKra+lXAqdr6pcAvAp+LiKeBDcChThdVM/NAZo5k5sjw8PDsq5YkXVCTcD8KrIuItRGxDNgGHJruzMzvZubKzFyTmWuAI8CWzBztS8WSpBnNGO6ZeRbYBTwMPAU8kJnHIuKeiNjS7wIlSd0bajIoMw8Dh9va7j7P2OvnXpYkaS78hqokFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuwRMTsKePTA8DEuWtJ737Gm1S4tRozsxSSWbnIQNG+DECZiaarWdPg1798JDD8GRI7BixfzWKHXLM3dd9PbtOzfYp01Ntdr37ZufuqS5MNx10bv33hcG+7SpKbjvvsHWI/WC4a6L3pkzc+uXFiLDXRe9yy+fW7+0EBnuuujt3AnLl3fuW74cduwYbD1SLxjuuujt3g3XXANDbZ8dGxpqte/ePT91SXNhuOuit2JF6+OOGzfCJZdAROt540Y/BqnFy8+5S7QCfNOm1qO9XVqMPHOXpAI1CveI2BwRxyNiLCLu7NB/R0Q8GRGPR8S/R8T63pcqSWpqxnCPiKXAfuBGYD1wS4fw/lBm/lJm/gqwF/irnlcqSWqsyZn7dcBYZp7MzOeBg8DW+oDM/F5t9aVA9q5ESVK3mlxQvRJ4prY+Dvxa+6CIeDvwLmAZ8LqeVCdJmpUmZ+7Roe0FZ+aZuT8zrwH+GPiTji8UsT0iRiNidGJiortKJUmNNQn3cWBVbf0q4NQFxh8E3tipIzMPZOZIZo4MDw83r1KS1JUm4X4UWBcRayNiGbANOFQfEBHraqs3A1/rXYmSpG7N+J57Zp6NiF3Aw8BS4P7MPBYR9wCjmXkI2BURNwA/BJ4Fbu1n0ZKkC2v0DdXMPAwcbmu7u7b8zh7XJUmaA7+hKkkFMtwlqUCGuyQVyHCXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVqFG4R8TmiDgeEWMRcWeH/ndFxFci4omI+ExEvLz3pUqSmpox3CNiKbAfuBFYD9wSEevbhv0nMJKZrwQeBPb2ulBJUnNNztyvA8Yy82RmPg8cBLbWB2TmI5n5/Wr1CHBVb8uUJHWjSbhfCTxTWx+v2s7nduCTcylKkjQ3Qw3GRIe27Dgw4q3ACPDa8/RvB7YDrF69umGJkqRuNTlzHwdW1davAk61D4qIG4C7gC2Z+VynF8rMA5k5kpkjw8PDs6lXktRAk3A/CqyLiLURsQzYBhyqD4iIa4H30gr2b/e+TElSN2YM98w8C+wCHgaeAh7IzGMRcU9EbKmG7QNWAB+NiMcj4tB5Xk6SNABN3nMnMw8Dh9va7q4t39DjuiRJc+A3VCWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVyHCXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAjUK94jYHBHHI2IsIu7s0P+aiPhiRJyNiDf3vkxJWtwmJ2HPHhgehiVLWs979rTa+2HGcI+IpcB+4EZgPXBLRKxvG/ZN4DbgQ70uUJIWu8lJ2LAB9u6F06chs/W8d2+rvR8B3+TM/TpgLDNPZubzwEFga31AZj6dmU8A/9f7EiVpcdu3D06cgKmpc9unplrt+/b1fp9Nwv1K4Jna+njVJklq4N57Xxjs06am4L77er/PJuEeHdpyNjuLiO0RMRoRoxMTE7N5CUladM6cmVv/bDQJ93FgVW39KuDUbHaWmQcycyQzR4aHh2fzEpK06Fx++dz6Z6NJuB8F1kXE2ohYBmwDDvW+FEkq086dsHx5577ly2HHjt7vc8Zwz8yzwC7gYeAp4IHMPBYR90TEFoCI+NWIGAfeArw3Io71vlRJWpx274ZrroGhoXPbh4Za7bt3936fQzMPgcw8DBxua7u7tnyU1ts1kqQ2K1bAkSNw880wOgo/+AG85CUwMgKf+ESrv9cahbskaW5WrIBNm1qP9vZ+8M8PSFKBDHdJKpDhLkkFMtwlqUCGuyQVyHCXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKlCjcI+IzRFxPCLGIuLODv0vjoiPVP2PRsSaXhcqSWpuxnCPiKXAfuBGYD1wS0Ssbxt2O/BsZv4c8B7gL3tdqCSpuSZn7tcBY5l5MjOfBw4CW9vGbAU+UC0/CPxWRETvypQkdaNJuF8JPFNbH6/aOo7JzLPAd4HLe1GgJKl7Qw3GdDoDz1mMISK2A9sBVq9e3WDX57r++q43kRrz+FK/DfIYaxLu48Cq2vpVwKnzjBmPiCHgp4DvtL9QZh4ADgCMjIy8IPxn4v986iePL/XbII+xJm/LHAXWRcTaiFgGbAMOtY05BNxaLb8Z+Gxmdh3ekqTemPHMPTPPRsQu4GFgKXB/Zh6LiHuA0cw8BPw98A8RMUbrjH1bP4uWJF1Yk7dlyMzDwOG2trtry1PAW3pbmiRptvyGqiQVyHCXpAIZ7pJUIMNdkgpkuEtSgWK+Po4eERPAN2a5+UrgdA/L6RXr6o51dW+h1mZd3ZlLXS/PzOGZBs1buM9FRIxm5sh819HOurpjXd1bqLVZV3cGUZdvy0hSgQx3SSrQYg33A/NdwHlYV3esq3sLtTbr6k7f61qU77lLki5ssZ65S5IuYMGF+1xuxh0R767aj0fE6wdc17si4isR8UREfCYiXl7r+1FEPF492v9ccr/rui0iJmr7f1ut79aI+Fr1uLV92z7X9Z5aTV+NiP+p9fVzvu6PiG9HxJfP0x8R8TdV3U9ExKtqfX2ZrwY1/W5VyxMR8fmI+OVa39MR8WQ1V6O9qqmL2q6PiO/Wfl531/oueAz0ua7dtZq+XB1TL6v6+jJnEbEqIh6JiKci4lhEvLPDmMEdX5m5YB60/qTwCeBqYBnwJWB925idwN9Vy9uAj1TL66vxLwbWVq+zdIB1bQIuqZZ3TNdVrU/O43zdBvxth21fBpysni+rli8bVF1t4/+A1p+S7ut8Va/9GuBVwJfP038T8EladxfbADw6gPmaqaaN0/uidaP6R2t9TwMr53G+rgc+PtdjoNd1tY19A617TPR1zoArgFdVy5cCX+3w/+PAjq+FduY+l5txbwUOZuZzmfl1YKx6vYHUlZmPZOb3q9UjtO5Y1W9N5ut8Xg98KjO/k5nPAp8CNs9TXbcAH+7Rvi8oM/+NDncJq9kKfDBbjgA/HRFX0Mf5mqmmzPx8tU8Y3LE1ve+Z5ut85nJs9rqugRxfmfmtzPxitfy/wFO88H7TAzu+Flq4z+Vm3E227WdddbfT+u08bXlEjEbEkYh4Y49q6qauN1X/BHwwIqZvmbgg5qt6+2ot8Nlac7/mq4nz1d7P+epG+7GVwL9GxGPRukfxfPj1iPhSRHwyIl5RtS2I+YqIS2iF5EO15r7PWbTeLr4WeLSta2DHV6ObdQzQXG7G3egm3bPU+LUj4q3ACPDaWvPqzDwVEVcDn42IJzPzxIDq+hjw4cx8LiLuoPWvntc13LafdU3bBjyYmT+qtfVrvpqYj+OrkYjYRCvcf7PW/BvVXP0M8KmI+K/qrHZQvkjr6/CTEXET8C/AOhbAfFXeAPxHZtbP8vs6ZxGxgtYvkz/MzO+1d3fYpC/H10I7c+/mZtzEuTfjbrJtP+siIm4A7gK2ZOZz0+2Zeap6Pgl8jtZv9IHUlZlnarW8D3h10237WVfNNtr+ydzH+WrifLX3c75mFBGvBN4PbM3MM9Pttbn6NvDP9O6tyEYy83uZOVktHwZeFBErmef5qrnQ8dXzOYuIF9EK9n/MzH/qMGRwx1evLyrM8YLEEK0LCWv5yUWYV7SNeTvnXlB9oFp+BedeUD1J7y6oNqnrWloXkNa1tV8GvLhaXgl8jR5dWGpY1xW15d8BjuRPLuB8varvsmr5ZYOqqxr387QubsUg5qu2jzWc/wLhzZx7wesL/Z6vBjWtpnUNaWNb+0uBS2vLnwc293KuGtT2s9M/P1oh+c1q7hodA/2qq+qfPvF76SDmrPrv/iDw1xcYM7Djq6cHQY8m6CZaV5lPAHdVbffQOhsGWA58tDrYvwBcXdv2rmq748CNA67r08B/A49Xj0NV+0bgyergfhK4fcB1/TlwrNr/I8Av1Lb9/Woex4DfG2Rd1fqfAn/Rtl2/5+vDwLeAH9I6W7oduAO4o+oPYH9V95PASL/nq0FN7weerR1bo1X71dU8fan6Gd/Vy7lqWNuu2vF1hNovoE7HwKDqqsbcRutDFvXt+jZntN4uS+CJ2s/qpvk6vvyGqiQVaKG95y5J6gHDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAv0/e2NGQF6XIJ4AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment\n", "mu = Lambda = 0.6\n", "k = x = np.arange(poisson.ppf(0.01, Lambda), poisson.ppf(0.99, Lambda))\n", "y = poisson.pmf(x, Lambda)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, y, 'bo', ms=8, label='poisson pmf')\n", "ax.vlines(x, 0, y, colors='b', lw=5, alpha=0.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Continuous" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from scipy.stats import norm, laplace, gamma, pareto, beta, expon, erlang, chi2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Normal\n", "\n", "- **Probability density function**\n", "$$f(x | \\mu, \\sigma^2) = \\frac{1}{\\sqrt{2\\pi \\sigma^2}} e^{-\\frac{(x - \\mu)^2}{2\\sigma^2}}$$\n", "\n", "- **Likelihood**\n", "$$L(\\mu, \\sigma^2) = \\prod_{i=1}^n f(x_i | \\mu, \\sigma^2) = \\prod_{i=1}^n \\frac{1}{\\sqrt{2\\pi \\sigma^2}} e^{-\\frac{(x - \\mu)^2}{2\\sigma^2}} = (2\\pi\\sigma^2)^{-n/2} e^{-\\frac{1}{2\\sigma^2} \\sum_{i=1}^n (x_i - \\mu)^2}$$\n", "\n", "- **Log-likelihood**\n", "$$ln L(\\mu, \\sigma^2) = \\sum_{i=1}^n ln f(x_i | \\mu, \\sigma^2) = -\\frac{n}{2} ln(2\\pi) - \\frac{n}{2} ln \\sigma^2 - \\frac{1}{2\\sigma^2} \\sum_{i=1}^n (x_i - \\mu)^2$$\n", "\n", "- **MLE**: Taking derivatives with respect to $\\mu$ and $\\sigma^2$.\n", "$$\\hat{\\mu} = \\frac{1}{n} \\sum_{i=1}^n x_i$$\n", "$$\\hat{\\sigma}^2 = \\frac{1}{n} \\sum_{i=1}^n (x_i - \\hat{\\mu})^2$$\n", "\n", "- **Prior**\n", "$$p(y)$$\n", "\n", "- **Posterior**\n", "$$p(y|x) = \\frac{p(x|y) p(y)}{p(x)}$$\n", "- **Posterior predictive distribution**\n", "- https://en.wikipedia.org/wiki/Conjugate_prior" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment\n", "mu = 0\n", "std = 1\n", "x = np.linspace(norm.ppf(0.01, mu, std), norm.ppf(0.99, mu, std), 100)\n", "y = norm.pdf(x, mu, std)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, y, 'r-', lw=5, alpha=0.6, label='norm pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Laplace\n", "\n", "Heavy tails, also known as the double sided exponential distribution, $\\mu$ is location, $b$ is scala.\n", "\n", "- **PDF**\n", "$$Lap(x|\\mu, b) = \\frac{1}{2b}e^{-\\frac{|x - \\mu|}{b}}$$\n", "$$mean = \\mu, mode = \\mu, var = 2b^2$$" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment\n", "mu = 0\n", "std = 1\n", "x = np.linspace(laplace.ppf(0.01, mu, std), laplace.ppf(0.99, mu, std), 100)\n", "y = laplace.pdf(x, mu, std)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, y, 'r-', lw=5, alpha=0.6, label='laplace pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gamma\n", "\n", "Flexible distribution for positive real valued rv’s.\n", "\n", "- **PDF**\n", "$$Ga(T|shape = a, rate = b) = \\frac{b^a}{\\Gamma(a)}T^{a - 1}e^{-Tb}$$\n", "$$\\Gamma(x) = \\int_0^\\infty u^{x - 1}e^{-u}du$$\n", "$$mean = \\frac{a}{b}, mode = \\frac{a - 1}{b}, var = \\frac{a}{b^2}$$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3XmUVNW59/HvwxwmQWiMMqug4gh2wEQj0aCCKGqiEYxTrjfEvHrNu8wy0fcm8Ybc3GX0Jsv3RjIQo9cZjUkUvSBRg68RI9IoooDIIEMLMgsy0/Tz/rGLUNQ53V3dVJ+afp+1zuqqfU5VPyj86tQ+++xt7o6IiJSHFvkuQEREkqPQFxEpIwp9EZEyotAXESkjCn0RkTKi0BcRKSMKfRGRMqLQFxEpIwp9EZEy0irfBWTq3r279+vXL99liIgUlTlz5mxw94qGjiu40O/Xrx9VVVX5LkNEpKiY2YpsjlP3johIGVHoi4iUEYW+iEgZUeiLiJQRhb6ISBkpuNE7JammBjZtgk8/hY4doaICWujzVkSSp9BvLsuWwSuvwPvvw5YtB+9r1Qp69ID+/eHMM+Hoo8EsL2WKSHlR6OeSO8ydC9Onw4cf1n1cTQ2sXh22mTOhZ08YPhy+8AVo3Tq5ekWk7Cj0c2X3bnjkEZg9u/Gv/egjePxxeOkluOoqOOGE3NcnIoIu5ObGxo1w991NC/x069bBvffCAw+E/n8RkRzTmf6hWroUJk6E7dvrPsYMDjsMOnWCzZth27b633PWLFi0CL79bdA8RCKSQwr9Q7FuHdx3H+zYEb+/d28YMQJOP/3gvvpt22D+fHj1VViyJP61n3wC99wDX/966OsXEckBhX5T7dwJv/pVfOC3bg3XXANDh8aPyunYEYYNC9uqVfDkk7B4cfS4mhp46KHQ53/55RrhIyKHTH36TVFbC/ffD2vWRPcdfjh873sh0LMJ6d694bvfhWuvhQ4d4o956aVwkbi29tDqFpGyp9BviilT4L33ou3dusEdd0CfPo17P7MwXv+HP4S+feOPmTkTHnxQwS8ihySr0DezkWa2yMyWmNntMftvNLN3zWyumb1mZoNS7f3MbGeqfa6Z/SbXf4DErVoFL7wQbW/bFm66CTp3bvp7d+0Kt90GZ5wRv//NN+F3v1Pwi0iTNRj6ZtYSmAiMAgYB4/aHeprH3f1kdz8NuBv4Rdq+pe5+Wmq7MVeF54V7GE/vfnC7GdxwQ7jJ6lC1bg3XXw+XXBK//6234NFHozWIiGQhmzP9ocASd1/m7nuAycBBieTuW9OedgBKM5HeeCNMr5Dpoovg1FNz93vM4MIL4Yor4vfPnAnPPpu73yciZSOb0O8JrEp7Xp1qO4iZ3WRmSwln+rek7epvZm+b2f8zsy8eUrX5tGMH/PGP0fYjj4RRo5rnd44YEe7QjTNtGrz8cvP8XhEpWdmEftwQlMiZvLtPdPdjgO8DP0g1rwH6uPtg4FbgcTOLdHqb2XgzqzKzqvXr12dffZKeey7+LtmxY6Fly+b7vcOHw7hx8fueegrefrv5freIlJxsQr8a6J32vBewup7jJwOXArj7bnffmHo8B1gKDMx8gbtPcvdKd6+sqGhwMffkbdgQZszMVFkJxx/f/L//S1+C0aPj9z34IFRXN38NIlISsgn92cAAM+tvZm2AscCU9APMbEDa09HA4lR7RepCMGZ2NDAAiOkUL3AvvxwdMdOmTbhhKikXXwxfjOkd27073CSmuXpEJAsNhr671wA3A9OBhcBT7j7fzCaY2ZjUYTeb2Xwzm0voxrku1X42MM/M3gGeBm509005/1M0p+3b4bXXou0jR4YhlkkxC/37cReMN26E3/wm3MErIlIP8wIb+ldZWelVVVX5LuOAadPgmWcObmvbFu66C9q3T76eXbvgZz8Lc/FnOueccI1BRMqOmc1x98qGjtMdufWpqYG//jXaftZZ+Ql8gHbtwk1gcVM2zJgBhfSBKSIFR6Ffn1mzYOvWg9tatIAvfzk/9ezXvTvceGP8OrsPPwxr1yZfk4gUBYV+XdzhxRej7aefHubYybeBA+MvJO/eHfr3d+9OviYRKXgK/bosWhQ/i+Z55yVfS13OPReGDIm2r14dxvCLiGRQ6Ndl1qxo28CBdc+CmQ9mcN110KNHdN9rr4V5ekRE0ij04+zdGx+Yw4cnX0tD2rWDb33r4JW59nvkEdhUXCNkRaR5KfTjvPNOGBqZrl273E6qlku9esGVV0bbd+wIi6xrKmYRSVHox4nr2hkyJP5sulCcdRYMHhxtX7w4fv5/ESlLCv1M27bFr4o1bFjytTSGWViXt0uX6L7nnoOVK5OvSUQKjkI/U1VVtDukS5dwEbfQdegQFnPJXJu3tjZ08+zdm5+6RKRgKPQzxXXtDB0afyNUIRo4EC64INq+Zk10OgkRKTtFkmQJWb8+fmWsQu/ayXTxxeHibqaXXgr3H4hI2VLop5s7N9rWs2d8gBayVq3gn/4p/Mz00EO6W1ekjCn00737brTtc59Lvo5c6NkzfnH1jRvhT39Kvh4RKQgK/f127QrDGzOdckryteTKiBEwYEC0/ZVX4P33Ey9HRPJPob/fwoXRUTtdu8JRR+Wnnlxo0QKuvTb+/oKHH1Y3j0gZUujvF9e1c9JJ0eGPxaZHD/jKV6Lt6uYRKUsKfQjTKMeF/sknJ19LczjnnLq7eeK6tESkZCn0AVatii6W0qoVHH98furJtf2zcbZpE9338MO6aUukjGQV+mY20swWmdkSM7s9Zv+NZvaumc01s9fMbFDavjtSr1tkZjF3DRWAuGkXBg4Ma+GWiooKuOyyaPu6dWGaBhEpCw2Gvpm1BCYCo4BBwLj0UE953N1PdvfTgLuBX6ReOwgYC5wIjAR+lXq/wlJXf36p+dKX4Oijo+1/+QusWJF4OSKSvGzO9IcCS9x9mbvvASYDBw0Ad/f0vpEOgKceXwJMdvfd7v4hsCT1foVj2zb48MNoe6n056fbP5on86Yt93DT1r59+alLRBKTTej3BFalPa9OtR3EzG4ys6WEM/1bGvna8WZWZWZV69evz7b23FiwIIReuh494lejKgVHHgmjR0fbP/oonPGLSEnLJvTjxix6pMF9orsfA3wf+EEjXzvJ3SvdvbKioiKLknLogw+ibaXYtZPuggugd+9o+/PPw9q1ydcjIonJJvSrgfSE6AWsruf4ycClTXxt8uKGLJbKqJ26tGwZ5t7PvAehpiYssZj5zUdESkY2oT8bGGBm/c2sDeHC7JT0A8wsfRD4aGB/kk4BxppZWzPrDwwA3jz0snPk00/h44+j7ccem3wtSevbF847L9q+eHFYVF1ESlKDoe/uNcDNwHRgIfCUu883swlmNiZ12M1mNt/M5gK3AtelXjsfeApYALwA3OTuhXO1cMmSaNtRR4XFSMrBxRdD9+7R9j/+EbZsSb4eEWl2MXPvRrn7VGBqRtuP0h5/p57X/hT4aVMLbFZxXTtxd66WqjZt4Oqr4d57D27fuROefBLGj89PXSLSbMr7jty4M/1yCn2AE06Az38+2j5nDsybl3w9ItKsyjf0d+2KXyy8HPrzM11xBXTsGG1//PHw30lESkb5hv7SpdFRKt27h+mUy02HDvC1r0XbN2+GZ59Nvh4RaTblG/pxXTvleJa/39ChMChzdg1gxgxYvjzxckSkeZRv6Jf7RdxMZvD1r0cXXHEPY/c1RYNISSjP0K+piZ9vp5xDH0L31pgx0fbqanj55eTrEZGcK8/QX748BH+6Tp1Kd76dxhgxIn6KhilTYMOG5OsRkZwqz9Cva6hmsS+NmAstWoSx+5n/LfbuDaN5NEWDSFErz9CPuzBZzhdxM/XrB+eeG22fPx+qqhIvR0RypzxDP258fr9+iZdR0MaMiR+++uSTsH178vWISE6UX+hv3w4bNx7cZhbfj13O2rWDceOi7Z9+GubmEZGiVH6hH7cs4JFHxi8aXu5OPRWGDIm2z5wZvw6BiBQ8hT5Anz7J11EsrrwynPVnevTR6AgoESl4Cn1Qf359unSByy6Ltq9dC9OmJV+PiByS8gv9uIu4OtOv3/DhcPTR0fZp02DNmuTrEZEmK6/Q10XcpjELY/dbZPx12bcPHntMY/dFikh5hb4u4jZdz55hQfVMWl5RpKgo9NW1k73Ro+OnqvjTn2Dr1uTrEZFGyyr0zWykmS0ysyVmdnvM/lvNbIGZzTOzl82sb9q+fWY2N7VNyXxtonQR99C0bh1m4sy0YwdMnpx8PSLSaA2Gvpm1BCYCo4BBwDgzy5x4/W2g0t1PAZ4G7k7bt9PdT0ttMVM4JkgXcQ/d8cdreUWRIpbNmf5QYIm7L3P3PcBk4JL0A9x9hrvvSD19A+iV2zJzQBdxc0fLK4oUrWxCvyewKu15daqtLjcA6QO425lZlZm9YWaXNqHG3NBF3Nypb3nFZ55Jvh4RyVo2oR8333DsGD0zuxqoBO5Ja+7j7pXAVcC9ZnZMzOvGpz4YqtavX59FSU2gi7i5NXQonHhitP2VV2DZssTLEZHsZBP61UB6H0gvYHXmQWY2AvhXYIy7797f7u6rUz+XAa8AgzNf6+6T3L3S3SsrKioa9QfIWnV1tK1v32ibZMcMrroq+k1p//KKmqJBpCBlE/qzgQFm1t/M2gBjgYNG4ZjZYOC3hMBfl9be1czaph53B84EFuSq+EZZHfmcgl6Fd+mhqNS1vOLq1fDCC8nXIyINajD03b0GuBmYDiwEnnL3+WY2wcz2/4u/B+gI/CFjaOYJQJWZvQPMAO5y9+RDf9++MFdMpqOOSryUkvPlL8d/Y5o6Nf6DVkTyqlU2B7n7VGBqRtuP0h6PqON1rwMnH0qBObFuXQj+dJ07x49AkcZp0QKuuQb+4z+gtvZA+759oZvnttui0zeISN6Ux7/Gjz6KtuksP3d6946fomHZsnBhV0QKRnmEftxMkEcemXwdpWz0aDjiiGj7n/8MGzYkX4+IxCqP0I/rW+5Z360G0mitW4dunkx79oQFVzQTp0hBKI/QV/dOMgYMgLPPjrYvXAivv558PSISUfqhX1MDcTd8qXuneXz1q9C1a7T9D3+ATz5Jvh4ROUjph/7HHx88qgTCEoDt2+ennlLXrl1YcCXTzp1acEWkAJR+6MddxFXXTvM66SQ444xo+7x58OabydcjIv9Q+qGv/vz8+NrXwr0QmSZP1oIrInlU+qEfN3JHod/8OnQIc/Nk2rFDo3lE8qj0Q1/dO/kzeDBUVkbb33kHZs9Ovh4RKfHQ37NHI3fybexY6NQp2v7EE7BlS/L1iJS50g79jz+OdiN06xZGmEgyOnWCceOi7ermEcmL0g79uP58neUn7/TTYciQaPu8eTBrVvL1iJSx8gt99efnx1VXxXfzTJ4cllkUkUSUdujrIm7h6NQJvv71aPvOnfDww+rmEUlIaYf+unXRNnXv5M/gwTBsWLR9wQJ49dXk6xEpQ6Ub+rW18VP69uiRfC1ywNixcNhh0fann47/kBaRnCrd0N+0Kbo4d4cOmnMn39q3h+uui7bv2QMPPhidJ0lEciqr0DezkWa2yMyWmNntMftvNbMFZjbPzF42s75p+64zs8WpLeZfezOJO2vUWX5hOPHE+CmYly3TguoizazB0DezlsBEYBQwCBhnZoMyDnsbqHT3U4CngbtTrz0cuBMYBgwF7jSzmHl3m4FCv7BdfjlUVETbn3sOli9PvByRcpHNmf5QYIm7L3P3PcBk4JL0A9x9hrvvSD19A+iVenwB8KK7b3L3zcCLwMjclN4AhX5ha9sWvvENMDu4vbYWHngAdu/OT10iJS6b0O8JrEp7Xp1qq8sNwLQmvjZ31q6NtsWt4Sr5c8wxMDLmHGDt2nBhV0RyLpvQt5i22EHVZnY1UAnc05jXmtl4M6sys6r1cXPlNEXc++hMv/BcdBH06RNtf/XVcMeuiORUNqFfDfROe94LiNzqamYjgH8Fxrj77sa81t0nuXulu1dWxPXzNlZtrUK/WLRqBTfcEBZWz/TQQ5qUTSTHsgn92cAAM+tvZm2AscCU9APMbDDwW0Lgp3emTwfON7OuqQu456famtfGjdGhf506wWc+0+y/Wprgs58NF3YzbdsWhnHqbl2RnGkw9N29BriZENYLgafcfb6ZTTCzManD7gE6An8ws7lmNiX12k3ATwgfHLOBCam25qWLuMVn+PCwzGKmhQvhxReTr0ekRLXK5iB3nwpMzWj7UdrjEfW89gHggaYW2CQK/eJjBtdfDxMmRJdTfOYZOO446Ns39qUikr3SvCM3buSOQr/wdeoUgj/Tvn1w//2wa1fiJYmUmtIMfZ3pF68TT4QRMV8c163ToisiOaDQl8Jz2WXQu3e0ffZseP315OsRKSGlF/r79oXRO5kU+sWjVSv45jfDXbuZnngifnEcEclK6YX+hg3R4ZqdO2td3GJzxBHxi67s3QuTJmmaBpEmKr3Q101ZpWPYMDjzzGj7mjXw+OPq3xdpgtILfY3cKS1XXhm/2tkbb8DMmcnXI1LkSi/0dRG3tLRtC+PHx0/T8MQTsGpVtF1E6lR6oR/XvaPZNYvbUUfB1VdH22tq4Le/hR07ovtEJFbphX7curi5mMRN8uuMM+Css6Lt69drfh6RRiit0HePH67ZrVvytUjujR0LvXpF2+fNg6lTo+0iElFaob91a3Qx9HbtNLtmqWjdGr71rfj/n889B/PnJ1+TSJEprdCPO8vv3j26JJ8Urx49wjKLmdzD/Dy5WoRHpESVfugffnjydUjzOvVUuPDCaPuOHfCrX+nGLZF6lH7oqz+/NF18MQwaFG1fvVoXdkXqUfqh37178nVI82vRAv75n+P//779NkyblnxNIkWg9ENf3Tulq0MH+Pa3oU2b6L5nnw3hLyIHKf3QV/dOaevVK37hFYAHHtAduyIZSif06xqjr+6d0nf66TBqVLR9zx6YODG6/KJIGcsq9M1spJktMrMlZnZ7zP6zzewtM6sxs8sz9u1LLZb+jwXTm8W2bWHa3XRt20L79s32K6WAjBkDp5wSbd+8GX796+jfDZEy1WDom1lLYCIwChgEjDOzzGETK4Hrgcdj3mKnu5+W2sYcYr11q6trR2P0y0OLFnDDDdCzZ3TfsmXw3/+tET0iZHemPxRY4u7L3H0PMBm4JP0Ad1/u7vOA2rg3SETcnDvqzy8v7drBTTeFBdYzVVWFi7siZS6b0O8JpF8Nq061ZaudmVWZ2RtmdmncAWY2PnVM1fqm3lG5aVO0TaFffrp1gxtvDEsuZpo2TXPwS9nLJvTj+kca8z25j7tXAlcB95rZMZE3c5/k7pXuXlnR1BkxNXJH9jv2WLj22vh9jz6qOXqkrGUT+tVA77TnvYCsV6Z299Wpn8uAV4DBjagve+rekXTDhoW7djPV1oY5+FeuTL4mkQKQTejPBgaYWX8zawOMBbIahWNmXc2sbepxd+BMYEFTi62Xunck0+jRIfwz7d4Nv/xl/ImCSIlrMPTdvQa4GZgOLASecvf5ZjbBzMYAmNnnzKwauAL4rZnt//58AlBlZu8AM4C73D33oa959CWOWejmGTgwum/rVviv/4JPP02+LpE8Mi+wYWyVlZVeVVXVuBdt2wbf/e7Bba1bh7M5DdmUHTvgnnvCZGyZ+vaFW28NI39EipiZzUldP61XadyRqzH6Up/27eGWW6Br1+i+FSvCzVuZi++IlKjSDn2R/bp2DcEft+rW++/D738fLvKKlDiFvpSPo46Cm28OXX+Z3noLHnlEd+1KyVPoS3k59tiwzm6LmL/6r78OTz6p4JeSptCX8nPyyXDddfH7ZsyAP/9ZwS8lS6Ev5emMM2Ds2Ph906fD888nW49IQoo/9DVGX5rqnHPgssvi9z3/vIJfSlLxh/7OnbBr18FtrVpB5875qUeKy8iRcOGF8fueew6mTk22HpFmFjMVYZFp3x7uuy8slrFxY9h27tQYfcnemDFhaoaXX47ue/bZ8G1y9Ojk6xJpBsUf+hCG4PXoETaRxjKDK64I4/RnzIjunzIl3Lw1ZoxOJqToFX/3jkgumMGVV8Lw4fH7p07VqB4pCQp9kf3MYNw4OPvs+P3Tp2scvxQ9hb5IOjO46qowsifOjBlhvV1N2SBFSqEvkml/V89558Xvf+ONsBDL3r3J1iWSAwp9kThm8NWvwqhR8fvnzg3z8e/cmWxdIodIoS9SFzO49NK6b+D64AP4z/+ELVuSrUvkECj0RRoycmTo548brlldDT/7Gaxdm3xdIk2g0BfJxvDh8I1vxM/OuXFjCP7Fi5OvS6SRsgp9MxtpZovMbImZ3R6z/2wze8vMaszs8ox915nZ4tRWx9SGIkVg2LAwH3+bNtF927fDvffC7NnJ1yXSCA2Gvpm1BCYCo4BBwDgzG5Rx2ErgeuDxjNceDtwJDAOGAneaWcyadSJF4sQTw3rMHTtG99XUwP33hxu5NJZfClQ2Z/pDgSXuvszd9wCTgUvSD3D35e4+D8gcvHwB8KK7b3L3zcCLwMgc1C2SP/36wfe+B927x+9/9ll48EEN6ZSClE3o9wRWpT2vTrVl41BeK1K4jjgCbr8d+veP3z9rFvz857B1a7J1iTQgm9CPm2Eq2++uWb3WzMabWZWZVa1fvz7LtxbJs06d4NZbYfDg+P0ffgg//Wn4KVIgsgn9aqB32vNewOos3z+r17r7JHevdPfKioqKLN9apAC0aRPW3L3ggvj9n3wSxvLPnJlsXSJ1yCb0ZwMDzKy/mbUBxgJTsnz/6cD5ZtY1dQH3/FSbSOkwg698Ba6/Pizgk6mmBh5+GB57TP38kncNhr671wA3E8J6IfCUu883swlmNgbAzD5nZtXAFcBvzWx+6rWbgJ8QPjhmAxNSbSKl5/OfD909nTrF73/1VbjnnvjlPUUSYl5gQ8sqKyu9qqoq32WINN3mzfDrX8OKFfH727cPN3qdckqydUlJM7M57l7Z0HG6I1ck17p2hdtugy98IX7/jh0wcSL84Q+h60ckQQp9kebQujVce22Ysyeunx/gpZfg7rtBI9YkQQp9keZiFubsue02OPzw+GNWrICf/ARef1138UoiFPoiza1fP/jBD+Ckk+L3794NDz0EkyaFOXxEmpFCXyQJHTqEydouvzx+pk6At96CH/8Y3n032dqkrCj0RZJiFpZg/P736563Z8sWuO++MK5fq3JJM1DoiyStXz/44Q/hjDPqPmbmzHDW/957iZUl5UGhL5IP7dqFsfrf/GYYtx9n82b45S/hgQdg27Zk65OSpdAXyafKSvjRj8I8/XWZNSscoxE+kgMKfZF869oV/uVf4OqroW3b+GO2bw8jfH7+c1izJtn6pKQo9EUKgRl88Ytw550wKHNhujSLF8OECfD007BrV3L1SclQ6IsUkm7d4JZbwoyddfX119bCiy+Gi8FvvKEuH2kUhb5IoTELM3b++McwdGjdx23dGpZlvOsuWLo0ufqkqCn0RQpV585www3wne9AfYsLLV8e5vD53e80j480SFMrixSDvXth+nR44YX6F2Jp2RLOPhtGj657Xn8pSdlOrazQFykmGzeGKZnffrv+49q1gxEjwvaZzyRTm+SVQl+klL3/fgj/6ur6j2vfHs4/H845J3wQSMlS6IuUutraMF3DlCnhom59OnQIZ/3nnqvwL1EKfZFysXt3GML5l7+Ex/Vp3z6c9Z97LnTsmEx9koicLpdoZiPNbJGZLTGz22P2tzWzJ1P7Z5lZv1R7PzPbaWZzU9tvGvsHEZEGtG0LF10E//7vIdDrWqkLwlKN//M/cMcd8NRTWqS9DDV4pm9mLYEPgPOAamA2MM7dF6Qd87+AU9z9RjMbC1zm7lemwv95d69j9YgonemLHKKNG0Ow//3voQuoPi1awJAhYcrnfv0SKU+aR7Zn+vWcEvzDUGCJuy9LvfFk4BJgQdoxlwD/lnr8NHCfmVmjKhaR3OjWLazPO3IkTJsW7tqtK/xra6GqKmzHHBO6fQYPDkM/pSRlE/o9gVVpz6uBYXUd4+41ZrYF6Jba19/M3ga2Aj9w979l/gIzGw+MB+jTp0+j/gAiUocePeC668KY/WnTwpn/vn11H790adi6dAnzAJ11VngsJSWb0I87Y8/sE6rrmDVAH3ffaGanA8+Y2YnuftBQA3efBEyC0L2TRU0ikq3u3eGaa0K//0svwauvwp49dR//ySfw3HOhi+jUU8MHwAkn1L3MoxSVbEK/Guid9rwXsLqOY6rNrBVwGLDJwwWD3QDuPsfMlgIDAXXaiySta1e44gq48MIQ/H/9a/1DPWtrw01gb78Nhx8OZ54Z5gTq1q3u10jBy+ZCbivChdwvAx8RLuRe5e7z0465CTg57ULuV9z9a2ZWQQj/fWZ2NPC31HGb6vp9upArkpCaGnjzTXj55YZv8kp33HEh/AcP1pj/ApKzC7mpPvqbgelAS+ABd59vZhOAKnefAvweeMTMlgCbgLGpl58NTDCzGmAfcGN9gS8iCWrVCr7whRDgS5aE8H/nnYZH/CxaFLbHHoPTTgszgQ4aVP9QUSkYujlLRA7YvBleew3+9jfYsiX717VvH878Tz8djj9eo3/yQHfkikjT7dsH774bPgDee69xC7W0bx8uAA8eHL4BtG7dfHXKPyj0RSQ3Nm8OY/3//ndYu7Zxr23TJgT/qafCySdruudmpNAXkdxyhw8/DOE/Z05YrL0xzKBv3xD+J50UHusezpxR6ItI86mpgQULwuifefManugtTseOYfz/oEHhZ9euua+zjCj0RSQZe/aEfv85c8J1gKZ8AAAccUQYDnrccTBwYFguUrKm0BeR5O3dG74BvPVW+ABobBdQus9+FgYMCNuxx4YbxNQdVKdcTrgmIpKd1q3DRdtTTw3j/ZcuhblzwwdAYy8Cf/xx2P6Wmq6rSxc4+ugwMVz//tCnj0YGNYHO9EUkGevXh/CfPz/c3FXfAu/ZaNECevcOF4T79Qs/jzyybO8RUPeOiBSuvXvDXcALF4b1fleubNy9AHVp1Qp69gzfAnr1Ch8KPXuWxXQR6t4RkcLVunUYsXPCCeH59u3NwATVAAAGrUlEQVTwwQdhW7QIPvqoae9bUwMrVoQtXbduIfx79oSjjgrbEUeUZfeQQl9E8q9Dh3AH7+DB4fn27eGbwJIlsHhx+CZQ31oADdm4MWzz5h1oM4OKinDBeP/Wo0f4MOjUqWQvGiv0RaTwdOhw4IIwhO6gFStg2bJwg9iyZWHe/0PhDuvWhS39wwBCd1CPHmGrqDiwdesW7ico4rUFFPoiUvhatw7DNo899kDbJ5+ED4Lly8PPlSvh009z8/t27Qrvt3JldF+LFmH4aPfu4UPg8MMP3rp2LehuI4W+iBSnLl3Ctv/bgHuYGXTlSli1KqwRsGoVbNiQm4vE+9XWhvfcsKHuYzp0COHfteuBOg877OCtc+e8fGNQ6ItIaTA7ELCnnHKgffduWLMmXBxevfrAdqjdQ/XZvj1s9S1OYxamoujUKXwApG+9esGJJzZLaQp9ESltbduGcfz9+h3cvmtXuPlrzZpw49jateH5+vWHfg9BNtxDd9Snn4YPoXRDhij0RURyql27+A8D9/AtYP9F3g0bwgfB/i6dQ5laIlvNOO+QQl9EJJ3Zgf74446L7t+1K4T/xo2waVP4uXlzeLxpU7iucKjXEPId+mY2Evi/hDVy73f3uzL2twUeBk4HNgJXuvvy1L47gBsIa+Te4u7Tc1a9iEjS2rULfe69esXvr60Nwb95c/jGsH/bsuXgrb5vDPkMfTNrCUwEzgOqgdlmNsXdF6QddgOw2d2PNbOxwM+AK81sEGGR9BOBo4CXzGygux/CXRYiIgWsRYsD3xTqU1MT+vO3bj3wc//Wp0+zlZfNmf5QYIm7LwMws8nAJUB66F8C/Fvq8dPAfWZmqfbJ7r4b+NDMlqTe7++5KV9EpEi1apXdh0OOZTNItCewKu15daot9hh3rwG2AN2yfK2IiCQkm9CPm4Ai8ypFXcdk81rMbLyZVZlZ1fr167MoSUREmiKb0K8Geqc97wWsrusYM2sFHAZsyvK1uPskd69098qKiorsqxcRkUbJJvRnAwPMrL+ZtSFcmJ2SccwU4LrU48uBv3qYqH8KMNbM2ppZf2AA8GZuShcRkcZq8EKuu9eY2c3AdMKQzQfcfb6ZTQCq3H0K8HvgkdSF2k2EDwZSxz1FuOhbA9ykkTsiIvmjlbNEREpA0S6XaGbrgRUNHNYdqGeKu4Km2vNDteeHak9OX3dv8KJowYV+NsysKptPtEKk2vNDteeHai88xbv8i4iINJpCX0SkjBRr6E/KdwGHQLXnh2rPD9VeYIqyT19ERJqmWM/0RUSkCYoq9M1spJktMrMlZnZ7vutpDDN7wMzWmdl7+a6lMcyst5nNMLOFZjbfzL6T75qyZWbtzOxNM3snVfuP811TY5lZSzN728yez3ctjWVmy83sXTOba2ZFc/ONmXUxs6fN7P3U3/vP57umXCqa7p3UvP4fkDavPzAuY17/gmVmZwPbgIfd/aR815MtMzsSONLd3zKzTsAc4NJi+O+emt67g7tvM7PWwGvAd9z9jTyXljUzuxWoBDq7+0X5rqcxzGw5UOnuxTTWHTN7CPibu9+fmnqmvbs34yrqySqmM/1/zOvv7nuA/fP6FwV3f5UwRUVRcfc17v5W6vGnwEKKZHpsD7alnrZObcVxlgOYWS9gNHB/vmspF2bWGTibMLUM7r6nlAIfiiv0NTd/nplZP2AwMCu/lWQv1T0yF1gHvOjuRVM7cC/wPaA234U0kQN/MbM5ZjY+38Vk6WhgPfBgqlvtfjPrkO+icqmYQj+rufmleZhZR+CPwP929635ridb7r7P3U8jTOs91MyKomvNzC4C1rn7nHzXcgjOdPchwCjgplQXZ6FrBQwBfu3ug4HtQFFdP2xIMYV+VnPzS+6l+sP/CDzm7n/Kdz1NkfqK/gowMs+lZOtMYEyqX3wycK6ZPZrfkhrH3Venfq4D/kzooi101UB12jfCpwkfAiWjmEI/m3n9JcdSF0N/Dyx091/ku57GMLMKM+uSevwZYATwfn6ryo673+Huvdy9H+Hv+l/d/eo8l5U1M+uQuvBPqnvkfKDgR665+8fAKjM7LtX0ZQ5eD7zoZbMwekGoa17/PJeVNTN7AvgS0N3MqoE73f33+a0qK2cC1wDvpvrGAf6Pu0/NY03ZOhJ4KDXyqwXwlLsX3dDHInUE8OdwzkAr4HF3fyG/JWXtX4DHUieXy4Bv5LmenCqaIZsiInLoiql7R0REDpFCX0SkjCj0RUTKiEJfRKSMKPRFRMqIQl9EpIwo9EVEyohCX0SkjPx/ZOrFgXvaijMAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment\n", "a = 1.99\n", "b = 1\n", "x = np.linspace(gamma.ppf(0.01, a), gamma.ppf(0.99, a), 100)\n", "y = gamma.pdf(x, a)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, y, 'r-', lw=5, alpha=0.6, label='gamma pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- **Exponential**\n", "$$Expon(x|\\lambda) = Ga(x|1, \\lambda)$$" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAHQFJREFUeJzt3XuUVOWZ7/Hv03RDA+EmdBTlqqCIooINMaLxxGgihohrJXFwxngyccJknSRmJrdxJpmZxKzMmGTmxGSOyYRkNBNPIuMkR0WDGqJ4IVykkZvcFBGkA5GrXESahn7OH293urpqd3fRXb131a7fZ629dtW7N9WP5eLXL+9+97vN3RERkXSpSLoAEREpPIW7iEgKKdxFRFJI4S4ikkIKdxGRFFK4i4ikkMJdRCSFFO4iIimkcBcRSaHKpH7wsGHDfMyYMUn9eBGRkrRy5cq97l7T2XmJhfuYMWOoq6tL6seLiJQkM9uez3kalhERSSGFu4hICincRURSqNNwN7N7zWy3mb3UznEzs++b2RYzW2tmUwpfpoiInIp8eu4/Ba7r4PgMYHzzNgf4YffLEhGR7ug03N39OWB/B6fMAn7mwTJgsJkNL1SBOfbuhSeegG99CxoaeuzHiIiUskJMhTwL2JHxvr65bVf2iWY2h9C7Z9SoUaf2U55/PmzbM2YBrVsHtbWnXLCISNoV4oKqRbRFPrvP3ee6e62719bUdDoHv61t29oGO4DmyYuIRCpEuNcDIzPejwB2FuBz24rqoa9bB8eOFfxHiYiUukKE+3zg1uZZM5cBB909Z0im2847DwYMaNt24gSsWVPwHyUiUurymQr5ALAUOM/M6s3sNjP7lJl9qvmUBcBWYAvwY+B/9UylFTAlYpalhmZERHJ0ekHV3W/u5LgDny5YRR2prYVnn23btn49HD0K/frFUoKISCkorTtUx42DQYPatp08CatXJ1OPiEiRKq1wr6iASy/NbdfQjIhIG6UV7hA9a2bjRjhyJP5aRESKVOmF+9lnw5AhbduammDVqmTqEREpQqUX7mbRvfcVK+KvRUSkSJVeuEN0uL/8Mrz5Zvy1iIgUodIM99GjIXv5Anf13kVEmpVmuJvBu96V2758efy1iIgUodIMd4Bp03LbduyAXYVf+UBEpNSUbriffnoYnsn2wgvx1yIiUmRKN9whemjmhRfC+LuISBkr7XCfOjWMv2fauxe2bk2mHhGRIlHa4T5wIEyYkNuuoRkRKXOlHe4QPTSzYkVY611EpEyVfrhPngxVVW3b3norPKVJRKRMlX64V1fDJZfkti9dGn8tIiJFovTDHeDd785tW7cODh+OvxYRkSKQjnA//3wYPLhtW1OTLqyKSNlKR7hXVERfWNXQjIiUqXSEO0QPzezYAfX18dciIpKw9IT78OEwZkxuu3rvIlKG0hPuEN17X748PERbRKSMpCvcp06Fysq2bYcPw9q1ydQjIpKQdIV7//5w8cW57YsXx1+LiEiC0hXuAFdckdu2fj0cOBB/LSIiCUlfuJ9/Pgwd2rbNXRdWRaSspC/czeDyy3PbFy/WOu8iUjbSF+4A06fnrvO+bx9s2pRMPSIiMUtnuA8ZAhdckNuuC6siUibSGe4QfWF11SotJiYiZSG94T5pEgwY0Lbt5ElYsiSZekREYpRXuJvZdWa22cy2mNkdEcdHmdkiM1tlZmvN7PrCl3qKKiujL6w+95wurIpI6nUa7mbWC7gHmAFMBG42s4lZp30VeNDdJwOzgR8UutAuec97oh+gvWFDMvWIiMQkn577NGCLu2919+PAPGBW1jkODGx+PQjYWbgSu2HYMJiY/XsIePbZ+GsREYlRPuF+FrAj4319c1umrwG3mFk9sAD4bEGqK4SrrsptW7tWd6yKSKrlE+4W0ZY9aH0z8FN3HwFcD9xvZjmfbWZzzKzOzOr27Nlz6tV2xaRJYWpkJnd4/vl4fr6ISALyCfd6YGTG+xHkDrvcBjwI4O5LgWpgWPYHuftcd69199qampquVXyqKirgyitz2xcv1lLAIpJa+YT7CmC8mY01s96EC6bzs855HXgfgJmdTwj3mLrmebjiihDymQ4eDPPeRURSqNNwd/cTwGeAJ4GNhFkx683sTjO7ofm0LwCfNLM1wAPAx92LaL7hoEFwySW57U8/HX8tIiIxqOz8FHD3BYQLpZlt/5DxegMwvbClFdjVV8OLL7Zte/VV2L4dRo9OpiYRkR6S3jtUs40bByNG5LYvWhR/LSIiPax8wt0s9N6zrVih9WZEJHXKJ9wBpk0Lj+LLdOKEpkWKSOqUV7hXVUWvFvnss5oWKSKpUl7hDuGO1ez1Zt58E1auTKYeEZEeUH7hPnRo9LTIhQu1WqSIpEb5hTvANdfktr3+OrzySvy1iIj0gPIM93POgTFjctsXLoy9FBGRnlCe4W4G116b2752LfzhD/HXIyJSYOUZ7gBTpoTx92xPPRV/LSIiBVa+4V5REX1T09KluqlJREpe+YY7hDnv1dVt2xobtSSBiJS88g736urwnNVsixbBsWPx1yMiUiDlHe4A73sfVGYtjnn0qJYkEJGSpnAfPBguuyy3/be/DevOiIiUIIU7wPvfH70kwfLlydQjItJNCneA008PUyOzPfkkNDXFX4+ISDcp3Ft84AO5bW+8kfv0JhGREqBwbzF6NJx/fm77r3+tBcVEpOQo3DNdf31u286dsHp1/LWIiHSDwj3T+PFhy/bYY+q9i0hJUbhnMoMPfjC3vb4+LComIlIiFO7ZJkyAs8/ObdfYu4iUEIV7NjOYOTO3fft2WLcu/npERLpA4R5l4sToh3nMn6/eu4iUBIV7lPbG3nfsgFWr4q9HROQUKdzbM2lS+7133bUqIkVO4d4eM7jxxtz2XbtgxYr46xEROQUK945MmBA97/3RR+HkyfjrERHJk8K9I2Ywa1Zu+549sGRJ/PWIiORJ4d6Z8eOj15x59FFoaIi/HhGRPOQV7mZ2nZltNrMtZnZHO+fcZGYbzGy9mf2isGUmLGrs/eBBePrp+GsREclDp+FuZr2Ae4AZwETgZjObmHXOeOBvgenufgHwVz1Qa3LGjIle7/2JJ+DIkdjLERHpTD4992nAFnff6u7HgXlA9kD0J4F73P0AgLvvLmyZReDGG6Ei6+s6dgwefzyZekREOpBPuJ8F7Mh4X9/clulc4Fwz+52ZLTOz6wpVYNE4/XS44orc9meegX37Yi9HRKQj+YS7RbRl34NfCYwH/gdwM/ATMxuc80Fmc8yszszq9uzZc6q1Jm/mTOjdu23biRPw0EPJ1CMi0o58wr0eGJnxfgSwM+KcR9y90d1fAzYTwr4Nd5/r7rXuXltTU9PVmpMzaBBcc01u+4oVsHVr/PWIiLQjn3BfAYw3s7Fm1huYDczPOudh4L0AZjaMMEyTzrT7wAdgwIDc9v/+by0qJiJFo9Nwd/cTwGeAJ4GNwIPuvt7M7jSzG5pPexLYZ2YbgEXAl9w9nQPR1dVwww257Vu3Ql1d/PWIiEQwT6i3WVtb63WlGoZNTfCNb4Tnq2Y67TS4806oqkqmLhFJPTNb6e61nZ2nO1S7oqICbropt33/fli4MP56RESyKNy76vzzw7LA2RYsCCEvIpIghXt3fOQjuTc2NTaGi6siIglSuHfHGWfA1Vfntr/4ImzaFH89IiLNFO7d9aEPwcCBue3z5mnNdxFJjMK9u6qr4cMfzm3ftQueeir+ekREULgXxrveBeeck9v+6KO6uCoiiVC4F4IZzJ4d9pmOHw/DMyIiMVO4F8qoUXDVVbnta9bA6tXx1yMiZU3hXkg33hgWF8s2b54eyScisVK4F1LfvtF3rh44AI88En89IlK2FO6FdumlcMEFue1PP61lgUUkNgr3QjODP/3T3MXD3OFnPwsP9xAR6WEK954wbFi4uSnbrl1h7RkRkR6mcO8p114Lo0fntj/+ONTXx1+PiJQVhXtPqaiAW2/NXVisqQl++lMNz4hIj1K496QRI2DGjNz2HTtCD15EpIco3Hva9dfD8OG57QsWwPbt8dcjImVB4d7TKivhz/88enjmvvvC+u8iIgWmcI/D6NGhB59t1y54+OH46xGR1FO4x2XGDBg5Mrf9t7+FjRvjr0dEUk3hHpfKSvjEJ8I+2333wZEj8dckIqmlcI/TmWfCrFm57QcPhrtX3eOvSURSSeEet2uvhQkTctvXrIHnn4+/HhFJJYV73MzC7Jn+/XOPPfig7l4VkYJQuCdh8GD42Mdy2xsbYe5crf0uIt2mcE/K5Mlw5ZW57W+8Ab/4hcbfRaRbFO5JuummcJE127JlsGRJ/PWISGoo3JPUuzfMmRP22R54IKxBIyLSBQr3pA0fDn/2Z7ntjY3w7/8Ob70Vf00iUvIU7sXgssvg8stz2/fuhXvv1fi7iJwyhXuxuPnmsERwtpdegscei78eESlpeYW7mV1nZpvNbIuZ3dHBeR8xMzez2sKVWCZ694ZPfQr69cs99thjsGpV/DWJSMnqNNzNrBdwDzADmAjcbGYTI84bANwOLC90kWWjpiasPxPlvvt0g5OI5C2fnvs0YIu7b3X348A8IGKBFL4BfBs4VsD6ys+kSTBzZm57QwP84Adw+HD8NYlIyckn3M8CMufk1Te3/ZGZTQZGunuHg8NmNsfM6sysbs+ePadcbNmYORMuvji3fd8++NGP9PxVEelUPuFuEW1/nL5hZhXAd4EvdPZB7j7X3Wvdvbampib/KsuNWRieibrB6ZVX4P77NYNGRDqUT7jXA5lPmRgB7Mx4PwC4EHjGzLYBlwHzdVG1m6qr4dOfjl5gbNky+PWv469JREpGPuG+AhhvZmPNrDcwG5jfctDdD7r7MHcf4+5jgGXADe5e1yMVl5Nhw8IMmuznrwI8+igs17VrEYnWabi7+wngM8CTwEbgQXdfb2Z3mtkNPV1g2Tv33OgVJAH+8z9h06Z46xGRkmCe0NhtbW2t19Wpc5+3hx+Gxx/Pba+uhi9+Mfr5rCKSOma20t07HfbWHaqlYtYsqI34/3nsGHz/+2GpAhGRZgr3UmEGH/84jBuXe+zQIfje98JeRASFe2mpqgozaKKmSO7eDXffrVUkRQRQuJeefv3g9tthyJDcY7//Pfzbv4WhGhEpawr3UjRkCHzuc9GLjL32Wlim4Pjx+OsSkaKhcC9Vw4eHHnyfPrnHNm8OAd/YGH9dIlIUFO6lbOzYMAZfWZl7bONG+OEPFfAiZUrhXurOOw/+8i+j72Jdvz48qk8BL1J2FO5pcNFF8MlPRgf8Sy9pDF6kDCnc02LKFLjttjAfPtuGDZpFI1JmFO5pUlvbfsC//HK40eno0fjrEpHYKdzTZurUEPBRQzRbt8K//iscPBh/XSISK4V7Gk2dCnPmQK9eucfq6+Hb39ZaNCIpp3BPq8mTw1rwUdMk9+6Fb30LduzIPSYiqaBwT7OLLoLPfjb6RqdDh+A73wkXW0UkdRTuaTdhAnz+89GP62toCLNoliyJvy4R6VEK93IwZgx86UsweHDusaam8ESnRx7RQ7dFUkThXi6GD4c77oheLhhgwQKYO1c3O4mkhMK9nAwZEnrw554bffzFF+Ff/gUOHIi3LhEpOIV7uenXLywXPG1a9PHt2+Gf/gm2bIm3LhEpKIV7OaqshE98AmbOjD5+6FC42em55+KtS0QKRuFerszgQx+Cv/iL6LnwTU3w85+Hi60ahxcpOQr3cjd1KnzxizBoUPTxJUvCDU+7d8dbl4h0i8JdwkM/vvIVOPvs6OP19fDNb0JdXbx1iUiXKdwlGDQIvvAFuPLK6OPHjsGPfwz3369hGpESoHCXVpWVcMstcOutUFUVfc7ixWE2TX19vLWJyClRuEuu6dPhb/4Gamqij+/aBf/8z/Cb34QLryJSdBTuEm3kyDAOP2VK9PETJ+BXv4Lvfhf27Yu3NhHplMJd2te3b1gX/pZb2h+mefll+PrXw5x4rU0jUjQU7tIxs3CR9e/+rv11aRoawpz4u+/WQ0BEioTCXfJz5pkh4K+5pv1zNm0KvfiFCzUWL5KwvMLdzK4zs81mtsXM7og4/nkz22Bma83sKTMbXfhSJXFVVfDRj8Jf/3VYhCzK8ePwy1/CXXfB66/HW5+I/FGn4W5mvYB7gBnAROBmM5uYddoqoNbdLwJ+CXy70IVKEZkwAf7xH8Osmva0LEA2bx4cPRpfbSIC5NdznwZscfet7n4cmAfMyjzB3Re5e8vf4GXAiMKWKUWnb98wH/7229vvxbvDokXhF8GyZbrgKhKjfML9LCDzScr1zW3tuQ14vDtFSQm54AL42tfgve8NF1+jHDoE990X1qh57bVYyxMpV/mEe9Tf2MgumJndAtQC32nn+BwzqzOzuj179uRfpRS36mqYPRu+/OX2Z9RACPa77oJ774X9++OrT6QM5RPu9cDIjPcjgJ3ZJ5nZNcBXgBvcvSHqg9x9rrvXunttTXt3P0rpOvts+OpX4cMfhj592j9v+XL4+7+Hhx6Ct9+Orz6RMpJPuK8AxpvZWDPrDcwG5meeYGaTgR8Rgl1rw5azXr3g/e8PUyLbu7sVwh2uTzwR7oJduBAaG+OrUaQMmOdxkcvMrgfuBnoB97r7N83sTqDO3eeb2W+BScCu5j/yurvf0NFn1tbWep2WkE2/TZvgv/4Ldub8Y6+tIUPggx+Eyy8PvyBEJJKZrXT32k7Pyyfce4LCvYw0NYXlCebPh7fe6vjcoUNDyF92mUJeJILCXYrP22/D44/DU0+FYZmODB0K110XevJRjwEUKVMKdyle+/bBY4/B0qWdz30fPBiuvRauuCLMyhEpcwp3KX67dsEjj8CqVZ2f27cvXHUVXH11+897FSkDCncpHdu3h5782rWdn9urV3io9zXXhDXnRcqMwl1Kz7ZtIeTXrcvv/PHjw52xl1yii69SNhTuUrp27AgXXl98Mb/1aAYPDmvOT5/e/jo3IimhcJfS98Yb4QanpUs7n10DYW2bSZNC0F94IVTocQWSPgp3SY9Dh+Dpp8Nc+c7mybcYNCjMlZ8+HU4/vWfrE4mRwl3S5/jxsC7NU0+FmTb5GjMG3v1uqK2Fd7yjx8oTiYPCXdLLPTyY+5lnYPXq/B/pV1ERliieOjVchO1ocTORIpVvuOvWPyk9ZnDeeWF7801YvDhsBw50/OeamsJMnHXrwiMDL7ww9OYnTVLQS+qo5y7p0NQE69fD734Ha9ac2gO6q6pg4kSYPBkuugj69++5OkW6ST13KS8VFaEHPmkSHD4cxuaXLQvTKjvT2Bh+IaxZEz5n3LgQ8hdfDO98Z8/XLtID1HOXdKuvD0H/wgthCOdUvfOdrb80xo0LvXyRBOmCqkgmd3jlFVixAlauzH9KZaaqKjj33DCEM3EiDB/e/nNjRXqIwl2kPU1NsHlzCPnVq8MwTlcMHAgTJoTt3HNh2DCFvfQ4hbtIPpqa4NVXw8qUq1eH5Yi7asiQEPLjx4chnDPOUNhLwSncRU6Ve3gc4Jo1YYXKbdvyW9umPf37wznnhKA/+2wYNUpTLqXbFO4i3XX4MGzYEObFb9wIR4507/MqKuCss2Ds2HDX7NixoXevNXDkFCjcRQrJHV5/PYT9pk2wZUt+i5l1pnfvsC79qFEwenR4PXy4ljCWdmmeu0ghmYXwHT0aZswIc+NffTVcmN28GV577dRunGpx/Hj4nFdfbW2rrAwBP3Jk6OmPGBH2AwYU7r9HUk/hLtIVVVWtM2UAGhpCwL/ySlj35rXXwi+ArjhxItx8lX0D1oABIeSHD4czzwz7M84Ii6Hpwq1kUbiLFEKfPm3D/uTJEM6vvgpbt4aw785MHAjXADZtClum/v3DssZnnBH2LVtNjW66KmMacxeJy8GDIeS3bQvb9u1w9GjP/swhQ0LIZ27DhoWtf3/1+EuQxtxFis2gQWGp4UsuCe/dQ29++/aw1deHi7ZdvakqyoEDYXv55dxjffrA0KEh6E87Lbw+7bTWbeBAzeQpYQp3kaSYtfaiL700tLmHHv7vfx/Cvr4+zL3ftSsM9RRSQ0P47J07o49XVIRfSEOGhG3w4LbboEFhr7n7RUnhLlJMzFrD84ILWttPngzPlN21K2w7d8If/hDaCjElM0pTU2vPvyN9+oSgHzQoXPQdOLDt6wEDWrc+fTQUFBOFu0gp6NUrzJA588y27U1NYWjnjTdaw3737rDvLJQLpaEh/Mzduzs/t7IyzO7J3vr3D1vm65atb18ND3WBwl2klFVUtF4ovfDCtscaG2HPntZt797W/d69Pdfj78iJE2Hp5VNdfrm6Gvr1a9369s3dt2zV1bn7MvwXg8JdJK2qqqJ7+xDG9g8fDiG/bx/s3x+2fftCj3///p6fyXMqjh0L2/79Xf+MPn3C1hL22fvMrXfvtq8zt5a2qqqwr6wsyl8cCneRcmQWxsMHDgyLmkVpaAg97AMH2u7ffDNc9G3ZCn2ht6c0NITt0KHCfq5ZCPqWsM8M/Zb3lZWt52RuV10VZib1gLzC3cyuA74H9AJ+4u53ZR3vA/wMuBTYB/yJu28rbKkiEqs+fVpviGqPe+jhtwT9oUPhXwQHD4b94cOtbUeOdP2u3WLmHpaROH781B8CM2VKcuFuZr2Ae4BrgXpghZnNd/cNGafdBhxw93FmNhv4FvAnPVGwiBQRs9YLn1HDP5laQvDIkdawP3IkBGLLPnM7ejTs3347nv+WJPTgHcT59NynAVvcfSuAmc0DZgGZ4T4L+Frz618C/8fMzJO6/VVEio9Z6zj20KH5/7mmphDwR4+2bi3v33677XbsWO7rluGYYpRwuJ8FZK5gVA+8q71z3P2EmR0EhgJ7C1GkiJSxiorWfx10VVNTCPhjx9rus1+3bMePt+5btuz3jY1h351ZRwmHe9Rl4OweeT7nYGZzgDkAo0aNyuNHi4gUQEVF61TJQmtqag36xsbc1y3biRO5bT1RT7N8wr0eGJnxfgSQfb9yyzn1ZlYJDAJy5iy5+1xgLoSFw7pSsIhIUamoaB1uKiL53Pa1AhhvZmPNrDcwG5ifdc584H82v/4I8LTG20VEktNpz715DP0zwJOEqZD3uvt6M7sTqHP3+cB/APeb2RZCj312TxYtIiIdy2ueu7svABZktf1DxutjwEcLW5qIiHSVVuMREUkhhbuISAop3EVEUiixZ6ia2R5gexf/+DB0gxToe2ih7yHQ99Aqzd/FaHev6eykxMK9O8ysLp8HxKadvodA30Og76GVvgsNy4iIpJLCXUQkhUo13OcmXUCR0PcQ6HsI9D20KvvvoiTH3EVEpGOl2nMXEZEOlFS4m9m9ZrbbzF5KupakmNlIM1tkZhvNbL2ZfS7pmpJiZtVm9oKZrWn+Lr6edE1JMrNeZrbKzB5LupakmNk2M1tnZqvNrC7pepJUUsMyZvYe4AjwM3e/MOl6kmBmw4Hh7v6imQ0AVgI3Zj32sCyYmQH93f2ImVUBi4HPufuyhEtLhJl9HqgFBrr7zKTrSYKZbQNq3T2tc9zzVlI9d3d/joh14suJu+9y9xebXx8GNhKehFV2PDjS/LaqeSud3koBmdkI4IPAT5KuRYpDSYW7tGVmY4DJwPJkK0lO81DEamA3sNDdy/W7uBv4MtCUdCEJc+A3Zray+clvZUvhXqLM7B3Ar4C/cvdDSdeTFHc/6e6XEJ4QNs3Mym64zsxmArvdfWXStRSB6e4+BZgBfLp5KLcsKdxLUPP48q+An7v7/0u6nmLg7m8CzwDXJVxKEqYDNzSPN88Drjaz/5tsSclw953N+93AQ8C0ZCtKjsK9xDRfRPwPYKO7/++k60mSmdWY2eDm132Ba4BNyVYVP3f/W3cf4e5jCE9Be9rdb0m4rNiZWf/mSQaYWX/g/UDZzqwrqXA3sweApcB5ZlZvZrclXVMCpgMfI/TOVjdv1yddVEKGA4vMbC3hWb8L3b1spwEKpwOLzWwN8ALwa3d/IuGaElNSUyFFRCQ/JdVzFxGR/CjcRURSSOEuIpJCCncRkRRSuIuIpJDCXUQkhRTuIiIppHAXEUmh/w8hvjehsRP9igAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment exponential\n", "a = 1\n", "x = np.linspace(expon.ppf(0.01, a), expon.ppf(0.99, a), 100)\n", "y = expon.pdf(x, a)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, y, 'r-', lw=5, alpha=0.6, label='exponential pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- **Erlang**\n", "$$Erlang(x|\\lambda) = Ga(x|2, \\lambda)$$" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xt4VdWd//H3NwRQEOQWEQUFaVRQUDFiLdXH8YKgI1RtFayjndqxzmi1j50Z7b2105lWpzPttPza2tYZrRdArRat9yKObb0QFC8R0XCTCMpVRZRLyPf3xzoMh7N3yE5yss/t83qe/ZCz9j7JN7bP5+ystfZa5u6IiEhlqCp0ASIikh6FvohIBVHoi4hUEIW+iEgFUeiLiFQQhb6ISAVR6IuIVBCFvohIBVHoi4hUkOpCF5Br0KBBPnz48EKXISJSUhYsWLDO3Wvauq7oQn/48OHU19cXugwRkZJiZiuSXKfuHRGRCqLQFxGpIAp9EZEKotAXEakgCn0RkQpSdLN3ypI7bNgA774LvXrBoEHQvXuhqxKRCqTQ7yrr1sHcubBoEaxZA83Nu5/v3x8OPhiOPx7GjoVq/U8hIl1PSZNvTU3w8MOwYAG0tLR+3caN4Vi4EPr0gY9/HCZOhL5906tVRCqOQj9f3OGhh2DOnPB1e2zaBI89Bk89BVOnwsknQ5WGW0Qk/xT6+bB9O9xyC8yf37nvs2ULzJoFf/4zXHxx6P4REckj3U521vvvw7//e9uB36sXDBsW+vLb0tQEN9wQ7vxFRPJId/qdsXUr/OQnIaTj9OkDp54KEyaEr81C+/bt0NgY7uhfeCE6yAuh7bbbYNkymD5ds31EJC8U+h3lDrfe2nrgn3EGnH12fFh37w6jRoVj0yb4/e/hT3+KHwv4859h9Wr40pfCXwsiIp2g7p2OevRRiFsNtLoaPv95OPfcZHfnffrARRfBtdeG7p84S5fCj34UupJERDohUeib2SQzW2xmjWZ2Xcz5y83sZTNbaGZ/MrPRmfbhZvZRpn2hmf0i379AQTQ0wL33Rtu7d4drrglz79trxIgQ/BMmxJ9vagpjBxs3tv97i4hktBn6ZtYNmAFMBkYD03eGepY73H2Mux8N3AD8R9a5Je5+dOa4PF+FF8yHH8J//3d8V8zFF8PIkR3/3t27h+9x0UXxD2u98w7ceKOCX0Q6LMmd/nig0d2Xuvs2YCYwNfsCd8/ud+gNtHOiegl54IHQD59r4kQYPz4/P+PEE+Gqq6Bnz+i59evD4PHmzfn5WSJSUZKE/oHAyqzXTZm23ZjZFWa2hHCnf1XWqRFm9oKZPWlmJ3aq2kJbtQqeeCLaPmoUnHNOfn/WYYfBl78cP3i7ejX89Kdh9pCISDskCX2LaYvcybv7DHcfCVwLfCPTvBo4yN2PAa4B7jCzyDoDZnaZmdWbWf3atWuTV58m9/DgVO7SCj16wCWXdM0TtIccAl/5ShjszbVsGfziF7BjR/5/roiUrSRJ1QRkTysZCqzaw/UzgU8BuPtWd1+f+XoBsAQ4NPcN7n6Tu9e5e11NTZv7+hbGwoXw2mvR9jPPTPbAVUcNHQpXXw177RU99+qrcOed7V/2QUQqVpLQnw/UmtkIM+sBTAPmZF9gZrVZL88C3si012QGgjGzQ4BaYGk+Ck9VczPcdVe0vaYGTjut63/+sGFwxRXxg7tPPRXf5SQiEqPN0Hf3ZuBK4BFgETDb3RvM7Hozm5K57EozazCzhYRunEsy7ScBL5nZi8DdwOXuviHvv0VXmz8/DKDmOv/89J6UPfRQuOyyXU/1Zps9O0wjFRFpg3mRdQ3U1dV5fdxDT4XiDt/7Hrz11u7tRxwRnpKNC+GuNG9e6NLJtdde8LWvweDB6dYjIkXBzBa4e11b1+mJ3La89lo08CEssZB24ENYdvnkk6PtW7aEgV3N6BGRPVDot+Wxx6JtI0eGJ2gL5fzz4fDDo+2rVsHtt2tgV0RapdDfk1Wr4vvKTz89/VqydesGX/wi7Ldf9Nyzz2pJZhFplUJ/Tx5/PNpWUwNHHZV+Lbl69QrBHzeQPGsWrFiRfk0iUvQU+q3ZtCncNec69dTi2cpw6NCwTk+u5mb41a9CP7+ISJYiSa8i9Nxz0c1NevWCT3yiMPW05uMfD2v15Fq7Nn6Wj4hUNIV+a557Ltp24onxi6AV2gUXwEEHRdufeSb+rxURqVgK/Thr1sDy5dH2E05IvZREuneHL3wh/gPp9tvDXb+ICAr9eHF3x8OGwZAh6deS1ODBYS/dXFu3ws03RxeKE5GKpNDP5R7ftZOvtfK70sc/DscdF21fuhQefjj9ekSk6Cj0c61YEbp3spmVRuibwWc/C4MGRc/df7+mcYqIQj8irmvn0EOhX7/0a+mIvfcOG7PnLhHR0hK2edy+vTB1iUhRUOhna2kJK2rm6shG54U0ciSccUa0ffXq+A3dRaRiKPSzLV4c3f+2uhqOOaYw9XTG2WeHh7dyzZ0Lb7yRfj0iUhQU+tlefjnaNmZM/D61xa66Gi69NLrxijvceqtW4xSpUAr9bHGhX4p3+TsdcABMnRptX7MG7rsv/XpEpOAU+jutWRM/a+fIIwtTT76cdlrYYD3X3Lnw+uvp1yMiBaXQ3+mVV6JtI0ZA797p15JPVVXwuc/Fr8Z5662wbVvqJYlI4Sj0d4oL/TFj0q+jKwweDJ/6VLR97VqYMyfaLiJlK1Hom9kkM1tsZo1mdl3M+cvN7GUzW2hmfzKz0Vnnvpp532Izi5lHWAS2bg0zd3IdcUT6tXSVU04JUzlzPf44LFuWfj0iUhBthr6ZdQNmAJOB0cD07FDPuMPdx7j70cANwH9k3jsamAYcAUwC/l/m+xWXxYujyyj37Ru/cmWpqqqCSy6Jn81zyy3R319EylKSO/3xQKO7L3X3bcBMYLcpIe7+ftbL3sDOTVqnAjPdfau7LwMaM9+vuMRtiXjkkYXZ+LwrDR4c5u/nWr0aHnww/XpEJHVJQv9AYGXW66ZM227M7AozW0K407+qPe8tKPf4qZqlPmunNRMnwsEHR9sfegjeeiv9ekQkVUlCP+521yMN7jPcfSRwLfCN9rzXzC4zs3ozq1+b9trvb78N69fv3lZVBaNGpVtHWqqq4OKLo1s+trSE2TxaglmkrCUJ/SZgWNbrocCqPVw/E9g5VSTRe939Jnevc/e6mpqaBCXl0auvRttGjizNp3CTGjoUJk+Oti9fDk88kXo5IpKeJKE/H6g1sxFm1oMwMLvbPD8zq816eRawc3GXOcA0M+tpZiOAWiBmsfoCiluHppxm7bTmzDNh//2j7ffdF/3LR0TKRpuh7+7NwJXAI8AiYLa7N5jZ9WY2JXPZlWbWYGYLgWuASzLvbQBmA68CDwNXuPuOLvg9OsYdGhuj7Ycemn4taauuDt08ubZtC1sseqQXTkTKQHXbl4C7Pwg8mNP2rayvr97De78PfL+jBXapd96JrqrZvXv8QGc5GjkSTj4Z5s3bvb2hISwxXQobx4hIu1T2E7lxXTsjRkTnspezc86B/v2j7bNnw+bN6dcjIl2qskM/rmvnYx9Lv45C2msvuPDCaPumTXD33enXIyJdqrJDP+5Ov7Y22lbuxo6FceOi7X/5C7z2Wvr1iEiXqdzQ37gxOkvFLH4Z4kowbVrYXzfXbbdpX12RMlK5oR/XtXPQQaG7oxLtuy+cd160fe1a+MMf0q9HRLpE5YZ+XNdOpfXn5/rkJ+P/GzzyiJZoECkTCv1sldifn80MLroIuuUshNrSErp5NHdfpORVZuhv3gyrYlaSqPQ7fYAhQ+KXaFi6FJ58Mv16RCSvKjP0lyyJtg0eDH36pF9LMZo0Kfz3yHXvvfDuu+nXIyJ5o9DfqdK7drJ17x66eXJt2QKzZqVfj4jkTWWG/ooV0ba4rQQr2aGHwoQJ0fbnn4cXX0y/HhHJi8oLfff40K+U9Xba47zz4ru87rwz3PWLSMmpvNBfvx4+/HD3tu7dwwCm7K53bzj//Gj7xo0wZ060XUSKXuWF/ptvRtuGDYvuJCXBccfB6NHR9rlzw6YrIlJSKi/p1LXTPmbw2c+Gv4ayucNvfws7imd7BBFpm0IfwvIL0rpBg+Dss6PtTU3wxz+mX4+IdFhlhb57fPeO7vTbdtppYW/dXHPmwLp16dcjIh1SWaG/YUN0YxAN4ibTrRv8zd+E7p5s27fDHXdoiQaREpEo9M1skpktNrNGM7su5vw1Zvaqmb1kZn80s4Ozzu0ws4WZo7BTPuK6djSIm9zw4XDKKdH2hgZ4rrj2uxeReG2mnZl1A2YAk4HRwHQzy53O8QJQ5+5jgbuBG7LOfeTuR2eOKRSS+vM7b8qU1rdX/OCD9OsRkXZJcos7Hmh096Xuvg2YCUzNvsDdn3D3nZPfnwFiOn+LgGbudF5r2yt+8AHcdVf69YhIuyQJ/QOBlVmvmzJtrbkUeCjr9V5mVm9mz5jZpzpQY35oEDd/xo6FY4+Ntj/zDCxalH49IpJYktC3mLbYUTszuwioA27Maj7I3euAC4Efm1lkkRszuyzzwVC/du3aBCV1gAZx8+uCC1rfXnHbtvTrEZFEkoR+EzAs6/VQILIYvZmdBnwdmOLuW3e2u/uqzL9LgXnAMbnvdfeb3L3O3etqamra9QskpkHc/Gpte8V16+D++9OvR0QSSZJ484FaMxthZj2AacBus3DM7Bjgl4TAX5PV3t/Mema+HgRMAF7NV/HtEte1o0HczvnkJ+OXpH7ssfj/3iJScG2Gvrs3A1cCjwCLgNnu3mBm15vZztk4NwL7AHflTM0cBdSb2YvAE8AP3L0woR+3x6tCv3PMwtz96urd293h1lu1RINIEapu+xJw9weBB3PavpX19WmtvO8vwJjOFJg3caEf94SptM/gwXDWWfD73+/evnIlPP44nHFGYeoSkViV0aG9dWtYUjnX/vunX0s5mjgRDoyZ0HX//bBmTbRdRAqmMkJ/9epo26BB0LNn+rWUo+pquPji+CUabr1VSzSIFJHKCP1VkclGcMAB6ddRzoYPh1NPjba/8Qb87/+mXo6IxFPoS/5MmRL+gsp1zz3hOQkRKTiFvuRPz55hNk+urVvDQ1vq5hEpOIW+5Nfhh4f5+7kaGuDZZ9OvR0R2U/6h/9FHYSPvbGaaudOVzjsP+vWLts+aBe+9l349IvJ/yj/042bu7LdfdM9XyZ9eveJX4vzwQ7j9dnXziBRQ+Yd+3ENZ6trpekcdBccdF21/8UWor0+/HhEBKiH04+70FfrpmDYN+vSJtt95J7z/fvr1iEgFhL4GcQtnn33iu3k2b9a+uiIFUv6hr+6dwho3Lhy5XnhB3TwiBVDeob95c7QboaoqDORKei68MNz157rjDs3mEUlZeYd+XNfO4MHRpYCla/Xp0/psHj20JZKqygv9uNUgpesdeyzU1UXbX3op7K0rIqmovNDXnriFM316/GyemTO1No9ISso79N9+O9qmQdzC2Wcf+Oxno+1btsAtt6ibRyQF5R36cRt4aPmFwjrmGDj++Gj7a6/BvHmplyNSaco39Ldvj665A1BTk34tsrtp0+LX5rnnnvi/zkQkbxKFvplNMrPFZtZoZtfFnL/GzF41s5fM7I9mdnDWuUvM7I3McUk+i9+jtWuj3QX9+2vNnWLQqxd87nPR9u3b4eabtaG6SBdqM/TNrBswA5gMjAamm9nonMteAOrcfSxwN3BD5r0DgG8DxwPjgW+bWf/8lb8HcV07gwen8qMlgVGj4OSTo+0rVsADD6RejkilSHKnPx5odPel7r4NmAlMzb7A3Z9w9w8zL58Bhma+PgN4zN03uPtG4DFgUn5Kb8M770Tb9FBWcTn33Pj/TR56CJYsSb8ekQqQJPQPBFZmvW7KtLXmUuChDr43f+Lu9BX6xaVnT7j00vCUdDb30M2zZUth6hIpY0lC32LaYufWmdlFQB1wY3vea2aXmVm9mdWvXbs2QUkJKPRLw/DhcNZZ0fZ168L8fRHJqySh3wQMy3o9FIg89WRmpwFfB6a4+9b2vNfdb3L3Onevq8nX7BqFfuk480w45JBo+9NPw/z56dcjUsaShP58oNbMRphZD2AaMCf7AjM7BvglIfCz0/YRYKKZ9c8M4E7MtHWtrVvh3Xd3bzPTdM1iVVUFn/986O7JdfvtsH59+jWJlKk2Q9/dm4ErCWG9CJjt7g1mdr2ZTclcdiOwD3CXmS00szmZ924Avkf44JgPXJ9p61pxXUQDBmihtWJWUxPm7+f66CP4zW+gpSX9mkTKUKIUdPcHgQdz2r6V9fVpe3jvzcDNHS2wQ9S1U5pOOAEaGqLr7C9ZAn/4A5x9dmHqEikj5flEbtx0Tc3RL35mYW2eAQOi5/7wB3j99fRrEikz5Rn6utMvXb16hf59y5n45R66eTZtKkxdImVCoS/Fp7Y2fhrnu+/C//yPVuMU6QSFvhSns84K4Z/rlVfgscfSr0ekTJRf6G/ZEr8v7qBBhalHOqaqKjyt27t39Ny992qZBpEOKr/Qj7vLHzgQunVLvxbpnP7941fjbGmBX/0KPvgg9ZJESl1lhL5m7pSusWPhtJgZwRs3hvV51L8v0i6VEfrqzy9t55wDI0ZE2xsawoqcIpJY+YW+llQuP9XVcNll8f37c+bAokXp1yRSosov9OOWYFDol74BA+Bv/zba7g6//jVs6PrVPUTKQfmFftziXFporTyMGQOTJ0fbP/gAfvlLaG5OvyaRElNeod/cDO+9F22Pe6xfStOUKXD44dH25cu1/r5IAuUV+hs2RGdz9Oun1TXLSVUVfOELYTpnrqeeCoeItKq8Qj+ua2fgwPTrkK7Vpw988Yvxz17ceace3BLZA4W+lKYRI+CCC6LtO3bAL34R3URHRACFvpSyk06CCROi7e+/H4J/+/b0axIpcgp9KV1mMH16/INby5bBbbfpiV2RHOUV+uvWRdu00Fp5694dLr8c+vaNnnvmGXj00fRrEiliiULfzCaZ2WIzazSz62LOn2Rmz5tZs5l9Oufcjsy+uf+3d26XibvT13TN8tevXwj+uIHde++Fl15KvyaRItVm6JtZN2AGMBkYDUw3s9E5l70JfA64I+ZbfOTuR2eOKTHn80Nz9CvbyJFw0UXR9p1P7DY1pV+TSBFKcqc/Hmh096Xuvg2YCUzNvsDdl7v7S0BLF9SYTNwc/X33DX/+S2X4xCfg9NOj7Vu3ws9+phk9IiQL/QOBlVmvmzJtSe1lZvVm9oyZfapd1bWHBnEF4Nxz4cgjo+0bN8KMGeEDQKSCJQl9i2lrz5SIg9y9DrgQ+LGZjYz8ALPLMh8M9WvjFkxLQqEvsOuJ3QMOiJ57882wuXpL4f4gFSm0JKHfBAzLej0UWJX0B7j7qsy/S4F5wDEx19zk7nXuXlfT0cXR4kJfM3cq0957w5VXhid3c734IsyapamcUrGShP58oNbMRphZD2AakGgWjpn1N7Oema8HAROAVzta7B7pTl+yDRwYgj9uTGfePE3llIrVZui7ezNwJfAIsAiY7e4NZna9mU0BMLPjzKwJ+AzwSzNryLx9FFBvZi8CTwA/cHeFvqRj+HD4/Ofjz/3ud/Dss6mWI1IMEi0/6e4PAg/mtH0r6+v5hG6f3Pf9BRjTyRqTUehLnHHj4DOfgbvuip675ZbQBTQ6dwaySPkqjydym5vjp+Npjr5A2Fj91FOj7TsXZ1u2LP2aRAqkPEJ/40bN0Zc9+8xnwl1/rq1b4ac/hdWr069JpADKI/TVtSNtMQv9+7W10XObN8NPfqJ9dqUiKPSlcnTvDldcAUMjw0/hr8X//M+wLLNIGSuP0I9bXVOhL3H23huuvjr+GY41a0Lwb96cfl0iKSmP0NedvrRH377w5S/HL8e8alXo6vnoo/TrEkmBQl8qU01NCP7evaPnVqyA//ov2LIl/bpEulj5hr6WYJC2HHggXHUV7LVX9NzSpWFWjxZokzJT+qGvOfrSGcOHt75cQ2Ojgl/KTumH/o4dMHUqnHgijBoF++0XunY0R1+Sqq0Ns3qqYx5Qf+ONEPzq6pEyYV5kqw3W1dV5fX19576Je5iXLdIer7wCP/95+Osx18iRrXcFiRQBM1uQWcZ+j0r/Tj+OAl864sgj4YtfjN9rd8mSMJ3zww/Tr0skj8oz9EU6auzY1oN/+XL40Y9g06bUyxLJF4W+SK6jjoK///v4Pv6mJrjxxvAEr0gJUuiLxBkzBv7hH+InBLzzDtxwQ3iCV6TEKPRFWnPEEWE6Z8+e0XMbNoTgX7Ei/bpEOkGhL7Inhx8entzt1St6btOm0Me/aFH6dYl0kEJfpC2HHAJf+Ur8Rus71+PX1otSIhT6IkkMHQr/9E/xazrt2AE33wwPPRTdzEekyCQKfTObZGaLzazRzK6LOX+SmT1vZs1m9umcc5eY2RuZ45J8FS6SusGD4Z//OazZE+e+++D226GlJd26RNqhzdA3s27ADGAyMBqYbma5O0m/CXwOuCPnvQOAbwPHA+OBb5tZ/86XLVIg/frBP/5j/A5cAE89FVbo1ENcUqSS3OmPBxrdfam7bwNmAlOzL3D35e7+EpB7i3MG8Ji7b3D3jcBjwKQ81C1SOL16hY1Yjj02/vyiRfDDH2pKpxSlJKF/ILAy63VTpi2JzrxXpHh17w5/93cwcWL8+bffhh/8ABYvTrcukTYkCf24hWySjlYleq+ZXWZm9WZWv3bt2oTfWqTAzOC882D69Pj1njZvhh//GObO1QCvFI0kod8EDMt6PRRYlfD7J3qvu9/k7nXuXldTU5PwW4sUiZNPDg9xxa3A2dICs2bBLbfA9u2plyaSK0nozwdqzWyEmfUApgFzEn7/R4CJZtY/M4A7MdMmUl6OPBKuvbb1Hduefjo8wbtuXbp1ieRoM/TdvRm4khDWi4DZ7t5gZteb2RQAMzvOzJqAzwC/NLOGzHs3AN8jfHDMB67PtImUnwMOgOuua31mz5tvwve/H9btFymQ8txERaSQduyA2bNh3rzWr5k8GaZMgSo9Hyn5UdmbqIgUUrduYXD34ovjl2eG8PTuj36kJZoldQp9ka4yYUJYumHAgPjzjY3wve/BSy+lW5dUNIW+SFcaPhy+8Y2wTHOczZthxgy44w7Yti3V0qQyKfRFulrv3vClL8HUqa3v3/zkk2GQ9803061NKo5CXyQNZnDmmWGJ5n794q95+234t3+DBx4Ig8EiXUChL5Km2trQ3TNmTPz5lha4//6wds/q1enWJhVBoS+Stj594IorwgyfuD14IWzD+C//Ag8+qLt+ySuFvkghmIXlG77+9bBBS5zmZvj97+Ff/1V9/ZI3Cn2RQhoyBL761dDf39ogb1NTCP677grbM4p0gkJfpNCqq8PMnmuvDbtzxXGHxx+Hb38bFi7Uqp3SYQp9kWIxYgR885twxhmt3/Vv3Ag//3nYjF2btEgHKPRFikn37nDuuaHLp7W9eAEaGuC73w378m7Zkl59UvIU+iLF6OCD4Wtfg3POaX2GT3NzWMPnm9+Ev/xFXT6SiFbZFCl269aFZRoaGvZ83bBh8OlPw+GHp1OXFJWkq2wq9EVKgTu88EJYsrmtlTmPOCJ0EbU2FVTKUtLQb2XdVxEpKmYwblwI9IcfhkcfDd07cRoa4NVXoa4urNm/337p1ipFTXf6IqVo3Tq45x54/vk9X1dVBSecEJ4DaG0rRykL6t4RqQRvvBEe2lqxYs/XKfzLnkJfpFK4Q319mL7Z1sbrVVUwfjxMmhSeBpaykdftEs1skpktNrNGM7su5nxPM5uVOf+smQ3PtA83s4/MbGHm+EV7fxERaYMZHHdcmLd//vlhQbfWtLTAM8/Ad74THvJaujS1MqU4tDmQa2bdgBnA6UATMN/M5rj7q1mXXQpsdPePmdk04IfABZlzS9z96DzXLSK5qqvh1FPhk5+EuXPDYO+HH7Z+/cKF4Rg5Ek4/HY46Shu1V4Aks3fGA43uvhTAzGYCU4Hs0J8KfCfz9d3Az8xae45cRLpUz54weXJYxXPu3LBmz57Cf8mScAwcCH/1V2Fv3169UitX0pXkY/1AYGXW66ZMW+w17t4MvAcMzJwbYWYvmNmTZnZi3A8ws8vMrN7M6teuXduuX0BEWrH33nDWWWE3rqlTYZ999nz9+vVw991w3XVw221hdU8pO0nu9OPu2HNHf1u7ZjVwkLuvN7NjgfvM7Ah3f3+3C91vAm6CMJCboCYRSWqvvcKsnVNPhT//OXT77OkBr61b4amnwnHIIXDiiWHOf48e6dUsXSZJ6DcBw7JeDwVWtXJNk5lVA/sCGzxMDdoK4O4LzGwJcCig6TkiaevZE045BU46CRYsCOHf1t380qXhmDULjj8ePvGJsC6Qem9LVpLQnw/UmtkI4C1gGnBhzjVzgEuAp4FPA3Pd3c2shhD+O8zsEKAW0HQBkUKqrg4BPn48vPZa6PN/5ZU9v2fLFnjyyXAMGRLCf/z41jd5l6LVZui7e7OZXQk8AnQDbnb3BjO7Hqh39znAb4DfmlkjsIHwwQBwEnC9mTUDO4DL3X1DV/wiItJOZjBqVDjWrAmDvk8/3fZSzatXh6eBf/c7OOywEP7HHKPB3xKhh7NEZJetW+G552DevPYN5FZXw+jRoe//qKPCOIKkSk/kikjHucPy5WEwt76+fXvz7vwAGDcOxo6F3r27rEzZRaEvIvmxZUsY+H366bDWT3tUVcHHPhbu/seO1YqfXUihLyL5t2YNPPtsODryTM3gwTBmDBx5JNTWhr8KJC8U+iLSddxh2bLQ/79gAbz/ftvvydWjRxgIHj06DCbvv7+mgnaCQl9E0tHSErp96uvDWj4d+QAA2HffsNXjYYeFY+BAfQi0g0JfRNLX0hLW8XnhhfABsH59x79X//6hC6i2NowLDBmiD4E9UOiLSGG5w1tvwYsvwssvh9lAncmbXr3CshAjR8KIETB8eFhfSACFvogUm02bwv69r7wS9vDdvLlz388sjAMcfHD4ADj4YBg2DLp3z0u5pUahLyLFq6UF3nwTFi0Kx5IlrW/03h5VVeGD4KCDwgfAsGEwdGhFPCug0BeR0rGkJQnKAAAGsElEQVRtWwj+xYvDsXx5+GDIl3794MADwzFkCBxwQPi3Z8/8/YwCSxr6miQrIoXXo8eudYAgPAG8bFmYFdTYGL5uz1PBud59NxwNDbu3DxgQwn///cMxeHA49t23bAeNFfoiUnx69gzTNw8/PLxuaQmDwkuWhA+ApUvDg2KdtWFDOHI/DHr0CE8P77cf1NTsOgYNCh8UJbytpEJfRIpfVdWuPvqTTw5tmzfDihWhK2j5cli5MgR4PmzbFhaci1t0rqoqTCcdOHDXh8DAgaFtwIDwbxFvOKPQF5HS1Lt3eJp39OhdbR98EAaIm5rCh8DKlfDOO/kdH2hpCc8frF8Pr7/eem39+4exhOxj3313HX37FuQvBoW+iJSPffaJfhA0N8Pbb4cPglWrwn4Aq1aF0O6qiSybN4djT8tTm4V6+/QJHwDZx9ChcMQRXVKaQl9Eylt1dQjRoUN3b9+2LfwVsHp1+Pftt8O/a9Z0btA4Kffw7MKmTeFDKNu4cQp9EZG86tFj1zhBtp1h/M47YSXR7GP9+nCuq/Xt22XfWqEvIpLNbFc3S21t9PzWrbBuXfgA2LBh178bN4av33uv891GhQ59M5sE/ISwR+6v3f0HOed7ArcCxwLrgQvcfXnm3FeBSwl75F7l7o/krXoRkbT17LnrQa84LS1hpdENG8IHwLvvhg+E997b/djTMhSFDH0z6wbMAE4HmoD5ZjbH3V/NuuxSYKO7f8zMpgE/BC4ws9GETdKPAA4AHjezQ919R75/ERGRolBVtWu2zp40N4euovff3/XvzuOgg7qsvCR3+uOBRndfCmBmM4GpQHboTwW+k/n6buBnZmaZ9pnuvhVYZmaNme/3dH7KFxEpUdXVYVpn//6p/tgkk0QPBFZmvW7KtMVe4+7NwHvAwITvFRGRlCQJ/bgFKHJHKVq7Jsl7MbPLzKzezOrXdmTfTRERSSRJ6DcB2XOahgKrWrvGzKqBfYENCd+Lu9/k7nXuXldTU5O8ehERaZckoT8fqDWzEWbWgzAwOyfnmjnAJZmvPw3M9bBm8xxgmpn1NLMRQC3wXH5KFxGR9mpzINfdm83sSuARwpTNm929wcyuB+rdfQ7wG+C3mYHaDYQPBjLXzSYM+jYDV2jmjohI4WgTFRGRMlCyO2eZ2VpgRRuXDQLWpVBOVyjV2ku1blDthaLa03Wwu7c5KFp0oZ+EmdUn+UQrRqVae6nWDaq9UFR7cSrd7V9ERKTdFPoiIhWkVEP/pkIX0AmlWnup1g2qvVBUexEqyT59ERHpmFK90xcRkQ4oqdA3s0lmttjMGs3sukLX0x5mdrOZrTGzVwpdS3uY2TAze8LMFplZg5ldXeiakjKzvczsOTN7MVP7dwtdU3uZWTcze8HMHih0Le1hZsvN7GUzW2hmJfXgjZn1M7O7zey1zP/vTyh0TflUMt07mXX9XydrXX9ges66/kXLzE4CPgBudfcjC11PUmY2BBji7s+bWR9gAfCpUvjvnlneu7e7f2Bm3YE/AVe7+zMFLi0xM7sGqAP6uvtfF7qepMxsOVDn7qU21x0zuwV4yt1/nVl6ppe7v1vouvKllO70/29df3ffBuxc178kuPv/EpaoKCnuvtrdn898vQlYRIksj+3BB5mX3TNHadzlAGY2FDgL+HWha6kUZtYXOImwtAzuvq2cAh9KK/S1Nn+Bmdlw4Bjg2cJWklyme2QhsAZ4zN1Lpnbgx8A/Ay2FLqQDHHjUzBaY2WWFLqYdDgHWAv+d6Vb7tZn1LnRR+VRKoZ9obX7pGma2D3AP8GV3f7/Q9STl7jvc/WjCst7jzawkutbM7K+BNe6+oNC1dNAEdx8HTAauyHRvloJqYBzwc3c/BtgMlNT4YVtKKfQTrc0v+ZfpD78HuN3df1foejoi8yf6PGBSgUtJagIwJdM3PhM4xcxuK2xJybn7qsy/a4B7Cd2zpaAJaMr6i/BuwodA2Sil0E+yrr/kWWYw9DfAInf/j0LX0x5mVmNm/TJf7w2cBrxW2KqScfevuvtQdx9O+P/6XHe/qMBlJWJmvTOD/mS6RiYCJTFrzd3fBlaa2WGZplPZfT/wkpdkY/Si0Nq6/gUuKzEzuxM4GRhkZk3At939N4WtKpEJwN8AL2f6xgG+5u4PFrCmpIYAt2RmflUBs929pKY+lqjBwL3hfoFq4A53f7iwJbXLl4DbMzeXS4G/LXA9eVUyUzZFRKTzSql7R0REOkmhLyJSQRT6IiIVRKEvIlJBFPoiIhVEoS8iUkEU+iIiFUShLyJSQf4/RNfDfytzsNYAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment exponential\n", "a = 2\n", "x = np.linspace(erlang.ppf(0.01, a), erlang.ppf(0.99, a), 100)\n", "y = erlang.pdf(x, a)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, y, 'r-', lw=5, alpha=0.6, label='erlang pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- **Chi-square**\n", "$$\\chi^2(x|\\nu) = Ga(x|\\frac{\\nu}{2}, \\frac{1}{2})$$" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment exponential\n", "nu = 55\n", "x = np.linspace(chi2.ppf(0.01, nu), chi2.ppf(0.99, nu), 100)\n", "y = chi2.pdf(x, nu)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, y, 'r-', lw=5, alpha=0.6, label='Chi-square pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Beta\n", "\n", "$$Beta(x|a, b) = \\frac{1}{B(a, b)} x^{a - 1}(1 - x)^{b - 1}$$\n", "$$B(a, b) = \\frac{\\Gamma(a)\\Gamma(b)}{\\Gamma(a + b)}$$\n", "$$\\Gamma(a) = (a - 1)!$$\n", "$$mean = \\frac{a}{a + b}, mode = \\frac{a - 1}{a + b - 2}, var = \\frac{ab}{(a + b)^2(a + b + 1)}$$" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment\n", "a, b = 2.31, 0.627\n", "x = np.linspace(beta.ppf(0.01, a, b), beta.ppf(0.99, a, b), 100)\n", "y = beta.pdf(x, a, b)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, y, 'r-', lw=5, alpha=0.6, label='beta pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pareto\n", "\n", "Exhibit long tails, also called heavy tails, known as Zipf’s law or power law.\n", "\n", "$$Pareto(x|k, m) = km^kx^{-(k + 1)}\\mathbf{I} (x \\ge m)$$\n", "$$mean = \\frac{km}{k - 1} \\ if \\ k > 1, mode = m, var = \\frac{m^2k}{(k - 1)^2(k - 2)} \\ if \\ k > 2$$" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# setup experiment\n", "b = 2.62\n", "x = np.linspace(pareto.ppf(0.01, b), pareto.ppf(0.99, b), 100)\n", "y = pareto.pdf(x, b)\n", "\n", "# plotting result\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x, pareto.pdf(x, b), 'r-', lw=5, alpha=0.6, label='pareto pdf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# KL Divergence\n", "\n", "$$D_{KL}(p||q) = \\sum_{i=1}^N p(x_i) log\\frac{p(x_i)}{q(x_i)}$$" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/usr/local/anaconda2/lib/python2.7/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n", " return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Evidence\n", "x = pd.Series([0]*2 + [1]*3 + [2]*5 + [3]*14 + [4]*16 + [5]*15 + [6]*12 + [7]*8 + [8]*10 + [9]*8 + [10]*7)\n", "p_true = dict(zip(np.histogram(x)[1], np.histogram(x)[0]))\n", "p_true[10.0] = 7\n", "p_true = np.array([p_true[val] * 0.01 for val in x])\n", "sns.distplot(x, bins=10, label=\"Evidence\")\n", "\n", "# Uniform model\n", "p_uniform = uniform.pdf(x, loc=0, scale=11)\n", "plt.plot(x, p_uniform, 'k-', lw=2, label=\"Uniform\")\n", "\n", "# Normal model\n", "mu, std = norm.fit(x)\n", "p_norm = norm.pdf(x, mu, std)\n", "plt.plot(x, p_norm, 'r-', lw=2, label=\"Normal\")\n", "plt.legend(loc=\"best\")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Log likelihood (Uniform): -239.7895272798371\n", "Log likelihood (Normal): -234.1304210201753\n" ] } ], "source": [ "print \"Log likelihood (Uniform):\", np.log(p_uniform).sum()\n", "print \"Log likelihood (Normal):\", np.log(p_norm).sum()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "KL (Uniform): 3.9965854232729168\n", "KL (Normal): 1.889817124546627\n" ] } ], "source": [ "print \"KL (Uniform):\", (p_true * np.log(p_true / p_uniform)).sum()\n", "print \"KL (Normal):\", (p_true * np.log(p_true / p_norm)).sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Binning" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3XuUVPWV6PHvBlpAno20GmlejYA8BWzAV9QYjWAMOImZoCsJeYzERG6YlTgzOskyN+RmrjEzcZgJWRMm0Ti5GsNoMiEJiImKjyiERl42nebRCDSoyPsN3fS+f5xqrKpzqqu663Fe+7MWi65fnVO1+3TVrl/t8zu/n6gqxhhj4qGT3wEYY4wpHUv6xhgTI5b0jTEmRizpG2NMjFjSN8aYGLGkb4wxMWJJ3xhjYsSSvjHGxIglfWOMiZEufgeQrn///jpkyBC/wzDGmFBZs2bNPlWtyLZd4JL+kCFDqKmp8TsMY4wJFRHZkct2Vt4xxpgYsaRvjDExYknfGGNiJHA1fWOMaa+mpiYaGxs5deqU36EUXbdu3aisrKSsrKxD++eU9EVkGrAA6Az8RFUfyrDdHcB/A5NVtSbR9gDwReAs8FVVXd6hSI0xJoPGxkZ69erFkCFDEBG/wykaVWX//v00NjYydOjQDj1G1qQvIp2BhcDNQCOwWkSWqOqmtO16AV8FViW1jQZmAWOAS4A/isgIVT3boWiNMf45dgzefhvOnoUePWDAAOgUjArxqVOnIp/wAUSECy64gPfee6/Dj5FLT38KsFVVGxJP+hQwE9iUtt13gIeB+5LaZgJPqeppYLuIbE083usdjtgYUzqqUFMDL7wA27c7t1v16AGTJsGtt0K/fv7FmBD1hN8q398zl6Q/ANiVdLsRmJoWxERgoKr+TkTuS9t3Zdq+AzoYqzGmlPbtg5/9DLZs8b7/+HF45RVYuRJmzICbb4aYJN4wy+W7mddf8dzHvYh0Ah4Bvt7efZMeY46I1IhITT5fW4wxBdLQAA89lDnhJ2tqgmeegcceg+bm4scWE2+99RZjx44t+OPmkvQbgYFJtyuBPUm3ewFjgRUi8hZwJbBERKpz2BcAVV2kqtWqWl1RkfUqYmNMMW3fDo88AkePtm+/Vatg0SJoaSlOXKYgcinvrAaGi8hQYDfOidm7Wu9U1cNA/9bbIrICuE9Va0TkJPCkiPwA50TucODPhQvfGFNQ+/bBwoVw5oz3/f37Q69esHu39zbr18MvfwmzZvlT6vnSl4r/HD/+sWfzd77zHZ544gkGDhxI//79ueKKK7jpppu45557OHHiBMOGDePRRx+lvLycdevWebavWbOGL3zhC5x//vlce+21RQk/a09fVZuBucByoA5YrKq1IjJfRGZk2bcWWIxz0vdZ4F4buWNMQDU1OQnfq4ffrx989avw3e/C/ffDww/DjTd6P86KFfDaa0UNNWhqamp45plnWLt2Lb/61a/OzR/22c9+lu9973ts2LCBcePG8e1vf7vN9s9//vP827/9G6+/XryxLjmNt1LVpao6QlWHqep3E20PquoSj21vaB2jn7j93cR+I1V1WeFCN8YU1K9/DXtc1VeorIQHHoAxY95v694dPvUp+OxnvXv0v/wlxOj83KuvvsrMmTPp3r07vXr14mMf+xjHjx/n0KFDXH/99QDMnj2bl19+mcOHD+fU/pnPfKYosQZjkK0xxl/19fD88+72fv1g3jzo3dt7v2uugTvucLefPu2c2FXXuI1I0gL8nqpakmGnlvSNibuzZ+EXv3C3d+kC996bOeG3+vCH4eqr3e3btsWmzHPttdfy29/+llOnTnHs2DF+//vf06NHD8rLy3nllVcA+PnPf871119Pnz59PNv79u1Lnz59ePXVVwF44oknihKrzb1jTNy9+KJzpW26v/orp7STjYhT6tm82TkRnOzXv4aJE+H88wsTazYZTrIW2+TJk5kxYwaXX345gwcPprq6mj59+vD444+fO2FbVVXFY489BpCx/bHHHjt3IveWW24pSqxSiK8lhVRdXa22iIoxJXL8OPzjP0L6RGXDhsHf/V37RuBs3gz/8i/u9ptv9i4BFVBdXR2jRo0q6nNkc+zYMXr27MmJEye47rrrWLRoEZMmTSrKc3n9viKyRlWrs+1r5R1j4mz5cnfCF+nYkMsRI6DaI+esWAGHDnU4xLCYM2cOEyZMYNKkSXziE58oWsLPl5V3jImrI0ec0k66a6+FQYM69ph33OGM1W9qer+tqQmefdb5IImwJ5980u8QcmI9fWPi6rnn3BdYlZXBbbd1/DHLy73H77/8Mhw82PHHNQVjSd+YODpxwknE6a6/Hvr2ze+xb7kFunVLbTt71pmp0/jOkr4x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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# cho distribution training good (x, y)\n", "mu = 1\n", "std = 1\n", "x_good = np.linspace(norm.ppf(0.01, mu, std), norm.ppf(0.99, mu, std), 100)\n", "y_good = norm.pdf(x_good, mu, std)\n", "\n", "# cho distribution training bad (x, y)\n", "mu = -1\n", "std = 2\n", "x_bad = np.linspace(norm.ppf(0.01, mu, std), norm.ppf(0.99, mu, std), 50)\n", "y_bad = norm.pdf(x_bad, mu, std)\n", "\n", "# plot 2 distribution\n", "fig, ax = plt.subplots(1, 1)\n", "ax.plot(x_good, y_good, 'r-', lw=5, alpha=0.6, label='good')\n", "ax.plot(x_bad, y_bad, 'g.', lw=5, alpha=0.6, label='bad')\n", "ax.legend(loc=\"best\")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PMF good\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countsfreqs
categories
(-1.327, -0.163]250.25
(-0.163, 1.0]250.25
(1.0, 2.163]250.25
(2.163, 2.861]150.15
(2.861, 3.326]100.10
\n", "
" ], "text/plain": [ " counts freqs\n", "categories \n", "(-1.327, -0.163] 25 0.25\n", "(-0.163, 1.0] 25 0.25\n", "(1.0, 2.163] 25 0.25\n", "(2.163, 2.861] 15 0.15\n", "(2.861, 3.326] 10 0.10" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "PMF bad\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countsfreqs
categories
(-5.654, -3.326]130.26
(-3.326, -1.0]120.24
(-1.0, 1.326]120.24
(1.326, 2.722]80.16
(2.722, 3.653]50.10
\n", "
" ], "text/plain": [ " counts freqs\n", "categories \n", "(-5.654, -3.326] 13 0.26\n", "(-3.326, -1.0] 12 0.24\n", "(-1.0, 1.326] 12 0.24\n", "(1.326, 2.722] 8 0.16\n", "(2.722, 3.653] 5 0.10" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Good: {0: 0.25, 1: 0.25, 2: 0.25, 4: 0.1}\n", "Bad: {1: 0.24, 2: 0.24, 3: 0.16, 4: 0.1}\n", "Diff: [0.01 0.01 0.09 0. ]\n" ] } ], "source": [ "# binning with quantiles 10\n", "qtiles = [0, .25, .5, .75, .9, 1.]\n", "bin_good = pd.qcut(x_good, qtiles)\n", "bin_bad = pd.qcut(x_bad, qtiles)\n", "\n", "# calculate pmf of each bin\n", "pmf_good = bin_good.describe()\n", "pmf_bad = bin_bad.describe()\n", "\n", "print \"PMF good\"\n", "display(pmf_good)\n", "\n", "print \"PMF bad\"\n", "display(pmf_bad)\n", "\n", "# cho testing data, xac dinh prob cua data nay\n", "test_data = np.array([-10, -1, 1, 2, 3])\n", "\n", "def map_to_prob(data, pmf):\n", " res = {}\n", " for i in range(pmf.shape[0]):\n", " idx = pmf.index[i]\n", " for j in data:\n", " if j in idx:\n", " res[i] = pmf.loc[idx].freqs\n", " \n", " return res\n", "\n", "test_prob_good = map_to_prob(test_data, pmf_good)\n", "test_prob_bad = map_to_prob(test_data, pmf_bad)\n", "print \"Good:\", test_prob_good\n", "print \"Bad:\", test_prob_bad\n", "print \"Diff:\", np.array(test_prob_good.values()) - np.array(test_prob_bad.values())" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
freqs
categories
(-1.327, -0.163]0.112432
(-0.163, 1.0]0.377585
(1.0, 2.163]0.377585
(2.163, 2.861]0.091043
(2.861, 3.326]0.021363
\n", "
" ], "text/plain": [ " freqs\n", "categories \n", "(-1.327, -0.163] 0.112432\n", "(-0.163, 1.0] 0.377585\n", "(1.0, 2.163] 0.377585\n", "(2.163, 2.861] 0.091043\n", "(2.861, 3.326] 0.021363" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# apply model on quantiles\n", "mu = 1\n", "std = 1\n", "cat = []\n", "freqs = []\n", "for b in bin_good.categories:\n", " cat.append(b)\n", " freqs.append(norm.cdf(b.right, mu, std) - norm.cdf(b.left, mu, std))\n", "norm_model = pd.DataFrame({\"categories\": cat, \"freqs\": freqs})\n", "norm_model = norm_model.set_index(\"categories\")\n", "norm_model" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.15" } }, "nbformat": 4, "nbformat_minor": 2 }