Skip to content

Instantly share code, notes, and snippets.

@wiso
Last active September 11, 2018 09:31
Show Gist options
  • Save wiso/50c941ed4de67348bbef to your computer and use it in GitHub Desktop.
Save wiso/50c941ed4de67348bbef to your computer and use it in GitHub Desktop.
Different implementation of log-normal constraints
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"from matplotlib import pyplot as plt\n",
"from scipy import stats\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Consider a random variable $A$, log-normally distributed with mean $A_0$ and standard-deviation $\\delta A_0$.\n",
"\n",
"$$ A \\sim logN[\\mu, \\sigma]\\quad f_A(x)=\\frac{1}{x\\sigma\\sqrt{2\\pi}}\\ e^{-\\frac{\\left(\\ln x-\\mu\\right)^2}{2\\sigma^2}}$$\n",
"\n",
"Where the relation between $A_0$, $\\delta$ and $\\mu$, $\\sigma$ are\n",
"\n",
"$$ \\mu=\\ln\\left(\\frac{A_0}{\\sqrt{1+\\delta^2}}\\right), \\sigma=\\sqrt{\\ln\\left(1+\\delta^2\\right)} $$\n",
"\n",
"defining $\\theta^2 = \\frac{\\left(\\ln x-\\mu\\right)^2}{\\sigma^2}$ it follows that: $\\theta\\sim N[0,1]$ and \n",
"$$A = \\frac{A_0}{\\sqrt{1 + \\delta^2}}\\exp\\left(\\sqrt{\\log(1+\\delta^2)}\\theta\\right)$$\n",
"\n",
"this is what is called \"new\", while \"improved\" is without the denominator and \"eoye\" is $A\\exp{\\delta\\theta}$.\n",
"\n",
"By construction we expect, for the \"new\", to have $E[A] = A_0$ and $V[A] = (\\delta A_0)^2$.\n",
"\n",
"If we want to conserve the standard deviation and the median (instead of the mean), using median = $e^\\mu = A_0$ (\"new2\"):\n",
"\n",
"$$A = A_0 \\exp\\left(\\theta\\sqrt{\\log\\left(\\frac{1}{2}\\left(1+\\sqrt{1 + 4\\delta^2}\\right)\\right)}\\right) $$\n",
"\n",
"This has also the good property that\n",
"\n",
"$$A/A0 -1 = \\delta + O(\\delta^2)$$\n",
"\n",
"| name | expression |\n",
"|----------|---------------------------------------------------------------------------------------|\n",
"| new | $\\frac{A_0}{\\sqrt{1 + \\delta^2}}\\exp\\left(\\sqrt{\\log(1+\\delta^2)}\\theta\\right)$ |\n",
"| improved | $A_0\\exp\\left(\\sqrt{\\log(1+\\delta^2)}\\theta\\right)$ |\n",
"| new2 | $ A_0 \\exp\\left(\\theta\\sqrt{\\log\\left(\\frac{1}{2}\\left(1+\\sqrt{1 + 4\\delta^2}\\right)\\right)}\\right)$ |\n",
"| eoye | $A_0\\exp{\\delta\\theta}$ |\n",
"| xmlanabuilder | $A_0\\exp(\\theta \\log(1+\\delta)) = (1 + \\delta)^\\theta$ |"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"DELTA = 0.98 # positive error on the resolution\n",
"\n",
"def f_eoye(theta): return np.exp(DELTA * theta)\n",
"def f_improved(theta): return np.exp(np.sqrt(np.log(1 + DELTA**2)) * theta)\n",
"def f_new(theta): return np.exp(np.sqrt(np.log(1 + DELTA**2)) * theta) / np.sqrt(1 + DELTA ** 2)\n",
"def f_new2(theta): return np.exp(theta * np.sqrt(np.log(0.5 * (1 + np.sqrt(1 + 4 * DELTA ** 2)))))\n",
"def f_xmlanabuilder(theta): return (1 + DELTA) ** theta\n",
"\n",
"functions = {'eoye': f_eoye, 'improved': f_improved, 'new': f_new, 'new2': f_new2, 'xmlanabuilder': f_xmlanabuilder}"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nhBBCCBFG/x8XsrjiRRHtNAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 720x432 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.linspace(-1.5, 1.5, 100)\n",
"\n",
"fig, ax = plt.subplots(figsize=(10, 6))\n",
"for name, f in functions.iteritems():\n",
" ls = '-' if name != 'xmlanabuilder' else '--'\n",
" ax.plot(x, f(x), label=name, ls=ls)\n",
"ax.grid()\n",
"ax.hlines(1 + DELTA, -1.5, 1.5)\n",
"ax.legend(loc=0)\n",
"ax.set_xlabel(r'$\\theta$')\n",
"ax.set_ylabel('$A/A_0$')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The \"new\" has the unlucky features that is not equal to 1 at the most probable value ($\\theta=0$)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now compute the distribuyion of $A/A_0$ for the three cases and compute mean and std"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"relative error (expected std) = 0.980\n",
"new2 mean = 1.258 std = 0.976 median = 0.995\n",
"new mean = 0.996 std = 0.979 median = 0.714\n",
"eoye mean = 1.620 std = 2.072 median = 1.004\n",
"improved mean = 1.398 std = 1.363 median = 0.995\n",
"xmlanabuilder mean = 1.260 std = 0.973 median = 0.997\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA20AAAGxCAYAAADxkV63AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3X+UXWVhN/rvQxKM119YjK01aGIv\nIJEYiiFQLD8ERSg0qLUIRd/iL/zFrfpaatprbS+6Wqxdd92KFJUXpVpUFCtSAqWrCiIVNYkFXwFB\nxCihLI1YrKhggOf+MUkYQiYzkzlzzn7O+XzWYpE5s3Pm2TPf2dnf/Txnn1JrDQAAAN20y6AHAAAA\nwMSUNgAAgA5T2gAAADpMaQMAAOgwpQ0AAKDDlDYAAIAOm7S0lVI+XEr5YSnlmxN8vpRS3ldKubWU\n8o1Syv69HyZMnczSIrmlNTJLa2SWlk1lpu38JEfv4PPHJNlz83+nJjln5sOCGTk/Mkt7zo/c0pbz\nI7O05fzILI2atLTVWq9O8uMdbHJ8ko/WMV9Jslsp5Sm9GiBMl8zSIrmlNTJLa2SWls3twXM8Ncnt\n4z7esPmxO7fdsJRyasauXOQxj3nMc575zGf24MszitatW/ejWuuCnfzrMstA9CO3MksvOdbSGpml\nNVPNbC9K25TVWj+U5ENJsnz58rp27dp+fnmGSCnle/34OjJLL/UjtzJLLznW0hqZpTVTzWwv7h55\nR5I9xn28cPNj0FUyS4vkltbILK2RWTqrF6XtkiT/Y/Mddw5K8pNa6yOmkaFDZJYWyS2tkVlaI7N0\n1qTLI0spn0hyeJInlVI2JPmLJPOSpNb6gSSXJfmdJLcm+XmSV87WYGEqZJYWyS2tkVlaI7O0bNLS\nVms9aZLP1yRv6tmI2K5NmzZlw4YNuffeewc9lL6aP39+Fi5cmHnz5k3578hs9w17nuV2OAx7TseT\n2f4ZpVzNJpkdI0/t2JnMjtfXG5Gw8zZs2JDHPe5xWbRoUUopgx5OX9Rac9ddd2XDhg1ZvHjxoIdD\nDw1znuV2eAxzTseT2f4alVzNJpl9iDy1oReZ7cVr2uiDe++9N7vvvvtI/UKWUrL77ru7ejSEhjnP\ncjs8hjmn48lsf41KrmaTzD5EntrQi8wqbQ0ZxV/IUdznUTHMP9th3rdRMyo/y1HZz67w/Z4538OH\n+F60YaY/J6UNAACgw7ymrVGLVq3u6fOtP/PYnj7fVFxwwQV5z3vek1prHve4x+Wcc87JsmXL+j4O\nBm8Y8szwk1NmwyBydfDBB+fLX/5yT7/ubDrllFNy3HHH5aUvfemgh9J5LR2n/vIv/zKPfexj88d/\n/Mc9e87169fnuOOOyze/+c0p/51LLrkkN954Y1atWjXhmHbmeXtNaWNgFi9enC9+8Yt54hOfmMsv\nvzynnnpqvvrVrw56WAAw1GajsN1///2ZO9dpJe1ZuXJlVq5c2dPnnI3fB8sjmbL169dnn332yWtf\n+9o861nPylFHHZVf/OIX+c53vpOjjz46z3nOc3LIIYfkW9/6Vh544IEsXrw4tdbcfffdmTNnTq6+\n+uokyaGHHppvf/vbOfjgg/PEJz4xSXLQQQdlw4YNg9w9Rkyv8wyz4R//8R+zYsWK7Lfffnnd616X\nBx54IJ/4xCeydOnS7Lvvvnn729+eJPnwhz+ct7zlLVv/3rnnnpu3vvWtEz4Ho+2xj31skuSqq67K\nYYcdluOPPz7PeMYzsmrVqlxwwQVZsWJFli5dmu985ztJxma6Xv/612f58uXZa6+9cumllyZJzj//\n/KxcuTJHHHFEjjzyyNRac/rpp2fffffN0qVLc+GFFyZJTjzxxKxe/dAM0CmnnJKLLrooDzzwQE4/\n/fQccMABefazn50PfvCDScbutHfaaadl7733zvOf//z88Ic/7Oe3h2lYs2ZNnv3sZ+fee+/Nz372\nszzrWc/K+9///inlarxzzz03BxxwQJYtW5bf+73fy89//vMkY1n5oz/6oxx88MF5xjOekYsuuihJ\ncs899+TII4/M/vvvn6VLl+Zzn/vc1ue6//77c/LJJ2efffbJS1/60q3PtWjRovzoRz9KkqxduzaH\nH354krEcn3baaY8Y07p167Js2bIsW7YsZ5999tbHJ8rtVVddlUMOOSQrV67MkiVLevDdfTiljWn5\n9re/nTe96U254YYbsttuu+Uzn/lMTj311Jx11llZt25d/vZv/zZvfOMbM2fOnOy999658cYbc801\n12T//ffPl770pdx33325/fbbs+eeez7sec8777wcc8wxA9orRtVs5Rl64aabbsqFF16Yf//3f891\n112XOXPm5IILLsjb3/72fOELX8h1112XNWvW5OKLL84JJ5yQf/7nf86mTZuSJB/5yEfyqle9asLn\ngC2uv/76fOADH8hNN92Uj33sY7nlllvyta99La95zWty1llnbd1u/fr1+drXvpbVq1fn9a9//da7\n4H3961/PRRddlC9+8Yv5p3/6p1x33XW5/vrr82//9m85/fTTc+edd+ZlL3tZPvWpTyVJfvnLX+bz\nn/98jj322Jx33nl5whOekDVr1mTNmjU599xz893vfjef/exnc/PNN+fGG2/MRz/60aaWco6aAw44\nICtXrsw73vGO/Mmf/Ele/vKXZ999951yrrZ4yUtekjVr1uT666/PPvvsk/POO2/r5+68885cc801\nufTSS7Nq1aokY+959tnPfjZf//rXc+WVV+Ztb3tbxt5mL7n55pvzxje+MTfddFMe//jH5+///u93\nat9e+cpX5qyzzsr111//sMcnym0y9vvwd3/3d7nlllt26mvuiHlspmXx4sXZb7/9kiTPec5zsn79\n+nz5y1/O7//+72/d5r777kuSHHLIIbn66qvz3e9+N3/6p3+ac889N4cddlgOOOCAhz3nlVdemfPO\nOy/XXHNN/3YEMjt5hl75/Oc/n3Xr1m3N2C9+8Ytce+21Ofzww7NgwYIkycknn5yrr746L3rRi3LE\nEUfk0ksvzT777JNNmzZl6dKlef/73/+I53jyk588sH2iew444IA85SlPSZL8xm/8Ro466qgkydKl\nS3PllVdu3e6EE07ILrvskj333DPPeMYz8q1vfStJ8oIXvCC/8iu/kiS55pprctJJJ2XOnDn51V/9\n1Rx22GFZs2ZNjjnmmLz5zW/Offfdl3/5l3/JoYcemkc/+tH513/913zjG9/YOnvyk5/8JN/+9rdz\n9dVXb32eX//1X88RRxzRz28J0/TOd74zBxxwQObPn5/3ve99+dKXvjTlXG3xzW9+M+94xzty9913\n55577skLX/jCrZ970YtelF122SVLlizJD37wgyRjs7F/9md/lquvvjq77LJL7rjjjq2f22OPPfLc\n5z43SfLyl78873vf+6b9urm77747d999dw499NAkySte8YpcfvnlSTJhbnfdddesWLFi1t47UGlj\nWh71qEdt/fOcOXPygx/8ILvttluuu+66R2x76KGH5pxzzsl//ud/5owzzsh73/verVPHW3zjG9/I\na17zmlx++eXZfffd+7IPsEWv8wy9VGvNH/7hH+av//qvtz72uc99Lp/5zGe2u/1rXvOa/NVf/VWe\n+cxn5pWvfOWEzwHjjT8O7rLLLls/3mWXXXL//fdv/dy2tyvf8vFjHvOYSb/G/Pnzc/jhh+eKK67I\nhRdemBNPPDHJWD7POuush52gJ8lll122czvDQNx111255557smnTpq0zsFPN1RannHJKLr744ixb\ntiznn39+rrrqqq2fG/9cW2bTLrjggmzcuDHr1q3LvHnzsmjRoq1fe6Kszp07Nw8++GCSzOj90ibK\n7VVXXTWl34edZXkkM/L4xz8+ixcvzqc//ekkY0HeMo28YsWKfPnLX84uu+yS+fPnZ7/99ssHP/jB\nrVctvv/97+clL3lJPvaxj2WvvfYa2D7AFjPJM/TakUcemYsuumjr63l+/OMfZ7/99ssXv/jF/OhH\nP9r6+rbDDjssSXLggQfm9ttvz8c//vGcdNJJEz7H9773vcHsEE379Kc/nQcffDDf+c53ctttt2Xv\nvfd+xDaHHHJILrzwwjzwwAPZuHFjrr766qxYsSJJ8rKXvSwf+chH8qUvfSlHH310kuSFL3xhzjnn\nnK3Lem+55Zb87Gc/y6GHHrr1ee68887tzszQHa973evyrne9KyeffPLW19lO109/+tM85SlPyaZN\nm6a0hPsnP/lJnvzkJ2fevHm58sorH3Zc+/73v59rr702SfLxj388v/3bv51k7DVt69atS5IJL35t\nsdtuu2W33Xbbugps/Jgmyu1sM9PWqC7dKvqCCy7IG97whrz73e/Opk2bcuKJJ2bZsmV51KMelT32\n2CMHHXRQkrGD+ZYX0CfJGWeckbvuuitvfOMbk4xdAVm7du3A9mO2LVq1ulM/ty7p0vdlZ/PM8Ot3\nTpcsWZJ3v/vdOeqoo/Lggw9m3rx5Ofvss3PmmWfmec97XmqtOfbYY3P88cdv/TsnnHBCrrvuuq03\neZroOZ7+9Kf3dV+YWJeOfzvytKc9LStWrMh///d/5wMf+EDmz5//iG1e/OIX59prr82yZctSSsnf\n/M3f5Nd+7deSJEcddVRe8YpX5Pjjj8+uu+6aZGx2eP369dl///1Ta82CBQty8cUX58UvfnG+8IUv\nZMmSJXna056W3/qt3+rrvras33n66Ec/mnnz5uUP/uAP8sADD+Tggw/OS17ykmk/z7ve9a4ceOCB\nWbBgQQ488MD89Kc/3eH2J598cn73d383S5cuzfLly/PMZz5z6+f23nvvnH322XnVq16VJUuW5A1v\n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\n/lcp5cmzNWCYjMzSGpmlNTJLi+SWlk1lpm1FkltrrbfVWn+Z5JNJjt9mm9cmObvW+l9JUmv9YW+H\nCdMis7RGZmmNzNIiuaVZUyltT01y+7iPN2x+bLy9kuxVSvn3UspXSilH92qAsBOGIrPuBjVShiKz\njJTOZdYxkynoXG5hqnp1I5K5SfZMcniSk5KcW0rZbduNSimnllLWllLWbty4sUdfeuc4uI+85jLL\nyJv1zC5atXrKx0bHUKZgSplNHGvpFOcHdNJUStsdSfYY9/HCzY+NtyHJJbXWTbXW7ya5JWOBf5ha\n64dqrctrrcsXLFiws2OGycgsrZFZWtOzzCaDy+10LlQwFBxradZUStuaJHuWUhaXUnZNcmKSS7bZ\n5uKMXZFIKeVJGZtavq2H44TpkFlaI7O0RmZpkdzSrElLW631/iSnJbkiyU1JPlVrvaGUckYpZeXm\nza5Iclcp5cYkVyY5vdZ612wNGnZEZmmNzNIamaVFckvLJr3lf5LUWi9Lctk2j71z3J9rkv+5+T8Y\nOJmlNS1mdsuysvVnHjvgkTAILWYW5JZW9epGJAAAAMwCpQ0AABrmhjrDT2kDAADosJEuba5KAAAA\nXTfSpQ0AAKDrlDYAAIAOU9oAAAA6TGkDAEaa17gDXddsaXOABQAARkGzpQ0AAGAUKG0AAAAdprQB\nMCOWqwPA7Br50rZo1WonHHSWfALAcPPvPFMx8qUNAMCJM9BlShsAAECHKW0AAAAdprQBAAB0mNIG\nwIx5PRAAzB6lDQAAoMOUNgAAGALeKmh4KW0AAAAdprQBAEDjzLANN6UNACCWlgHdpbQBAAB0mNIG\nAADQYUobNMByHQCA0aW0AQAAdJjSBkBPuIkDAMwOpQ0AAKDDlDYAAIAOU9rGsawHAADoGqVtM4UN\nAADoIqUNAACgw5Q2AACADlPaAAAAOkxpAwAYx+vcga5R2gCApilZwLBT2gBw0gswRBzTh4/SBkDP\nOWEAgN5R2gAAADpMaQMAAOgwpQ0aYbkZAMBoUtoA6CkXGACgt5Q2AAAYMi6gDRelDQAAoMPmDnoA\nAAAwasyEMR1m2gAAADpMaQMA2IZZEKBLmixts3kgXbRqtQM1AADQGU2WNgAAgFGhtAEAAHSY0gYA\nANBhShsAAECHKW0AzAo3dQKA3lDaJuBkAwAA6AKlDQBgO7wNENAVShsAAECHKW0AAAAdprTtgCUR\n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\nyAxSV9gAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 1080x504 with 5 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axs = plt.subplots(1, len(functions), figsize=(15, 7))\n",
"xspace = np.linspace(0, 5, 100)\n",
"\n",
"print \"relative error (expected std) = %.3f\" % DELTA\n",
"\n",
"for (name, f), ax in zip(functions.iteritems(), axs.flat):\n",
" y = f(np.random.normal(size=100000))\n",
" \n",
" print \"{:<15} mean = {:.3f} std = {:.3f} median = {:.3f}\".format(name, np.mean(y), np.std(y), np.percentile(y, 50))\n",
" ax.hist(y, bins=np.linspace(0, 5 * DELTA, 100), histtype='stepfilled', density=True, label=name)\n",
" ax.set_ylim(0, 1)\n",
" ax.set_xlabel('$A/A_0$')\n",
"\n",
" ax.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"Is it ok? Usually this is what we do when generating toys, no?"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"\"New2\" seems a good choice since: 1. conserve the median, 2. conserve the std, 3. pass close to up systematics for theta==1"
]
}
],
"metadata": {
"hide_input": false,
"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"
},
"latex_envs": {
"bibliofile": "biblio.bib",
"cite_by": "apalike",
"current_citInitial": 1,
"eqLabelWithNumbers": true,
"eqNumInitial": 0
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment