Skip to content

Instantly share code, notes, and snippets.

@Spacerat
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Spacerat/9102894 to your computer and use it in GitHub Desktop.
Save Spacerat/9102894 to your computer and use it in GitHub Desktop.
Uniform distribution as building block for other distributions
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Building increasing non-uniform random distributions using the uniform distribution ##\n",
"\n",
"Let U(x) is the uniform distribution - here we use 10000 samples."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def U(): return uniform(0, 1, size=10000)\n",
"hist(U(), histtype='bar')\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nx44d06RJk9KQ0F1G25tpLf9Urvf/7226uroUCATSljFdUr334fjx49qwYYOam5tv+s++z7NUxuLI\nkSNavXro7u+zZ89q//798vl8t90lw6mMxYwZM3TnnXdq4sSJmjhxor773e/q2LFjt135pzIWhw4d\n0q9+9StJUk5Ojr7xjW/o1KlTmjdvXlqzZpqj3hy3dyRScPnyZXPPPfeYWCxmPvroo898w/fw4cO3\n7ZucqYzFu+++a3Jycszhw4czlDI9UhmLT1q7dq35y1/+ksaE6ZPKWJw8edKUlpaaK1eumP/85z+m\nsLDQnDhxIkOJb51UxuLxxx83v/71r40xxvT29ppAIGDOnTuXibi3XCwWS+kN31R7M61n/je63v93\nv/udJOknP/mJli9frn379ik3N1df+cpX9MILL6QzYtqkMha/+c1vdP78+eQ8t8/nU2trayZj3xKp\njIUtUhmLgoICLV26VPfdd58mTJigDRs2KBwOZzj5+EtlLH75y19q3bp1Kioq0tWrV/Xb3/5W06ZN\ny3Dy8VdVVaXXXntNZ8+e1YwZM7RlyxZdvnxZkvPe9Bhzm06eAgBuiP/JCwAsRPkDgIUofwCwEOUP\nABai/AHAQpQ/AFjo/wHeu30RbnnJ0gAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x109a17750>"
]
}
],
"prompt_number": 222
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### For a skewed distribution, you can simply multiply uniform distributions ####\n",
"\n",
"This is what people in this thread have suggested with $rand() * rand()$.\n",
"\n",
"$P(x) = 1 - (U(x) * U(x)) = -log(1 - x)$\n",
"\n",
"See http://mathworld.wolfram.com/UniformProductDistribution.html\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"squared = U() * U()\n",
"arr = 1 - squared\n",
"d = hist(arr, bins=50, histtype='bar')\n",
"plot(linspace(0, 1, 50), -log(linspace(1, 0, 50)) * 250, 'g')\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x109af7850>"
]
}
],
"prompt_number": 228
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### To get a ramp distribution, start with a triangular one ####\n",
"\n",
"Sum of two uniform distributions\n",
"\n",
"$T(x) = (U(x) + U(x)) / 2$\n",
"\n",
"Triangular distribution, mode = 0.5"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"triangular = ((U() + U()))/2\n",
"hist(triangular, bins=50, histtype='bar')\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nfI8ZAy6WY3GpxsZGbd68ORWlpVys/y5aWlq0e/duSVNP152tYjkW3d3dGhoa0rp161RSUqLnn38+\n1WWmRCzHYteuXXr33Xf1ta99TWvWrNHevXtTXWZGiDc3k/KVGOuH07hiTr0ZP9TT+Z1ee+01HTx4\nUK+//noSK0qfWI7Fgw8+qIaGBlksFhmGYdrrLmI5FufPn9dbb72lV199VefOndPNN9+ssrIyFRYW\npqDC1InlWOzZs0fFxcXy+/16//33VVFRobfffls5OTkpqDCzxJObSQn6WObSX/me3t5eORyOZJST\nVrFeV/DOO+9o165damtri/qn22wWy7F48803ddddd0maPAF39OhR2Ww2003RjeVYLF68WAsWLNC1\n116ra6+9Vrfddpvefvtt0wV9LMfi+PHj+ulPfypJWrp0qZYsWaJ//etfKikpSWmt6RZ3bibkDMIV\nzp8/b3z96183enp6jP/+979Tnox94403THsCMpZj8eGHHxpLly413njjjTRVmRqxHItL/eAHPzD+\n+Mc/prDC1InlWLz33ntGeXm5MT4+bnz66afGypUrjXfffTdNFSdPLMfioYceMmpraw3DMIyBgQHD\n4XAYH3/8cTrKTbqenp6YTsZOJzeT0qOPNJf+wIEDkqT77rtPmzdv1ssvv6yCggJ95Stf0bPPPpuM\nUtIulmPxi1/8QsPDw6FxaZvNpo6OjnSWnRSxHItsEcuxKCoq0u23367Vq1drzpw52rVrl9xud5or\nT7xYjsVPfvIT3X333VqzZo0mJib0q1/9SvPnz09z5YlXXV2tY8eO6fTp01q8eLHq6up0/vx5STPL\nTYthmHQQFAAgiRWmAMD0CHoAMDmCHgBMjqAHAJMj6AHA5Ah6ADC5/wcAoqSgyqGotgAAAABJRU5E\nrkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x10945c5d0>"
]
}
],
"prompt_number": 223
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### You can keep rolling the dice until you get a value less than the mode ####\n",
"$ramp1(x): 2*T(x)$ with values of x>1 rejected."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ramp = array([v for v in triangular if v <= 0.5]) * 2\n",
"hist(ramp, bins=50, histtype='bar')\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nf/5Za9euVVNTU9w/18ayRNrixx9/1KOPPipp6GLb/v37lZWVZdxU3ETaIi8vT9OmTdNNN92km266\nSffff79++ukn40I+kbb49ttv9dprr0mSZs+erVmzZun48eMqKytLa61us5Wbjl0x+IfBwUHrjjvu\nsNra2qy//vprxAuv3333nbEXGxNpi1OnTlmzZ8+2vvvuO5eqTI9E2uKfnnzySeuTTz5JY4Xpk0hb\n/Pbbb9bixYutS5cuWRcuXLCKioqsX3/91aWKUyeRtnjxxRetmpoay7Isq6ury/L7/dYff/zhRrkp\n19bWltCF10RzMyU9+Vjz5Xfu3ClJWrdunVasWKEvvvhC+fn5uvnmm7Vr165UlOK6RNpi06ZN6u3t\njYxDZ2VlKRwOu1l2SiTSFuNFIm1RWFioZcuWae7cuZowYYLWrl2rYDDocuXOS6QtXn31VT311FMq\nLi7WlStX9MYbbygnJ8flyp1XVVWlgwcP6ty5c8rLy1Ntba0GBwcl2c9Nj2UZOugJAODOUABgMkIe\nAAxGyAOAwQh5ADAYIQ8ABiPkAcBg/w8XwFvGm5VVvAAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x1099f9890>"
]
}
],
"prompt_number": 224
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Or just subtract your number from the maximum if you get a value more than the mode ####\n",
"\n",
"$ramp2(x)$: Subtract 1 from $T(x)$ if $T(x) > 0.5$, then multiply by 2"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ramp2 = array([( 1 - v if v > 0.5 else v) for v in triangular]) * 2\n",
"hist(ramp2, bins=50, histtype='bar')\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nPQCY3P8DXLSSmPwlURwAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x10985de10>"
]
}
],
"prompt_number": 225
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment