Skip to content

Instantly share code, notes, and snippets.

@saulshanabrook
Created March 5, 2015 20:07
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 saulshanabrook/86b41bb246073e2130e5 to your computer and use it in GitHub Desktop.
Save saulshanabrook/86b41bb246073e2130e5 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "",
"signature": "sha256:653a4581e6c6179fef75ec32cf4e96c58a6a1305d865384910608a2758ba95e6"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"import numpy as np\n",
"from numpy.random import randn\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"import scipy as sp\n",
"import scipy.stats as st"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def percentile(i, n):\n",
" return (i - .5) / n\n",
"\n",
"def percentile_from_data(data):\n",
" n = len(data)\n",
" for i in range(1, n + 1):\n",
" yield percentile(i, n)\n",
"\n",
"def lmplot_compare(series, comparison_name, comparison_function, series_function=lambda _: _):\n",
" data = pd.DataFrame({\n",
" 'data': series_function(series),\n",
" comparison_name: comparison_function(np.array(list(percentile_from_data(series))))\n",
" })\n",
" sns.lmplot(comparison_name, 'data', data, line_kws={\"linewidth\": 1}, markers=[\".\"])\n",
" sns.residplot(comparison_name, 'data', data)\n",
"\n",
"def is_normal(series):\n",
" series.sort()\n",
" sns.distplot(series)\n",
" lmplot_compare(series, u'normal', st.norm.ppf)\n",
" #lmplot_compare(series, u'weiball', lambda series: np.log(-np.log(1-series)), lambda series: np.log(series))\n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"d = u'''54.3 54.7 54.9\n",
"55\n",
"56.7\n",
"57\n",
"57.3\n",
"58\n",
"58\n",
"58.2\n",
"58.2\n",
"59.3\n",
"59.7\n",
"59.8\n",
"60\n",
"60\n",
"60\n",
"60\n",
"60.1\n",
"60.1\n",
"60.3\n",
"60.4\n",
"60.8\n",
"61.1\n",
"62.2\n",
"62.7\n",
"63'''\n",
"\n",
"data = pd.Series(map(float, d.split()), name='data')\n",
"is_normal(data)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAekAAAFmCAYAAABJKGKaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4W/d97/k3doAACW6gKFLULh7J1i5bdrzFdmInTtI4\nduIsTdJJnaZP2/T29iadae9knpuZO5P2Pr1pO3Pb3GSapLeZpE0aJ7GTOIkT2/Eqb7FkyVqPRJEi\nRUrcFxDgCuDMHyBtmqLERSAPcPB5PY8egcAh8P2ROPjw/M7v/H4uy7IQERGR/OO2uwARERGZm0Ja\nREQkTymkRURE8pRCWkREJE8ppEVERPKUQlpERCRPeefbwDCMB4FNQItpmt9YwPafB2LAS6ZpPnL1\nJYqIiBQn15WukzYMYz/wVdM09xmGcQq4zzTNk1OPVQJ/CGwAfm6a5o8Mw3gA+BjwUaAd2GyaZny5\nGyEiIuJE83V3vwvonLrdDdw547H/Dbge+DLwkGEY1wPvBi6apjkBjAG35rZcERGR4jFfd3cNkJ66\nnQbqZjz2z1NfXwBcQDXZbu5zl9leREREFmG+I+nQrG3901+Ypvm6aZqPAfcCzwC/AkpmbO+aub2I\niIgsznxH0gNA7Yyv+2Y+aBjGauDtwO8A26a2nw5+1+ztZ7Msy3K5XIupV0REpNAtOPjmC+kDwP6p\n26VA3DCMR4BPAuPA14EngS8A35vafo9hGC4gDBy5YpUuFz09wwutNW/FYqUF3w4ntAHUjnzihDaA\nM9rhhDaAs9qxUFfs7p66hKrNMIwvAceAV4CbgEqywfwe4G+AzwCtwFeBMrKDyb45PRJcREREFm/e\n66RN0/zkrLtqpv7/4tS/2e672qJEREREM46JiIjkLYW0iIhInlJIi4iI5CmFtIiISJ5SSIuIiOQp\nhbSIiEieUkiLiIjkKYW0iIhInlJIi4iI5CmFtIiISJ5SSIuIiOQphbSIiEieUkiLiIjkKYW0iIhI\nnlJIi4iI5CmFtIiISJ5SSIuIiOQphbSIiEieUkiLiIjkKYW0iIhInlJIi4iI5Cmv3QWIiDMMJSd4\n/vULtHYlON+dIJXOcPvuOt6xbw1Bvz5qRJZCe46IXLW2rmH+nx+8zsDwOAAlAS+44IfPNPPLV87z\n/pvX8459a3C5XDZXKlJYFNIiclUOne7hH396nInJDB+4ZQM371hNZVmAcGmI7z52kl/9po1/feIM\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x7f7b9df285d0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAWYAAAFhCAYAAABDIwCuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt0JGd95vFvVV+k1n0ktUYzvs9gvzaDgWSwuZwNEIMx\nxMHZEK4LNrYJxCc2JMQcTgKbkAsmywKbzYaAOdjLJWySJScmGNuTnGwWAjhAFkNsfHsdYCYOMDO6\nazQjtbq7qvaPqu6RNLr0jNWqt1vP55w5013Vav1edfejV2+99ZYXRREiIuIOP+0CRERkOQWziIhj\nFMwiIo5RMIuIOEbBLCLiGAWziIhjsml9Y2PMtcC5wEFr7Z8bY24E9ib370irLhGRtKXSYzbGPAsY\nttbeBrzUGPNc4GZr7XuBdxljLkmjLhERF6Q1lLEHuMkYc2lSw5XAkWTfGHBFSnWJiKQurWD+OjAM\nfAvoAEaAMNkXALtTqktEJHVpBXMH8E3g34BXA/uA2rnhPpBPqS4RkdSldfDvncCngfuAe4GfTW7X\nTK73xVEURZ7nNa04EZEm2jC80grmCpCx1p4wxnwB+Cjw9mRfL/Dgel/seR7j43NNLnFrFIu9bdGW\ndmkHqC2uape2FIu9Gz4mraGMDwMvN8bcBpwP3AU8mdx/2Fp7IKW6RERSl0qP2Vo7AVy/YvO1KZQi\nIuIcnfknIuIYBbOIiGMUzCIijlEwi4g4RsEsIuIYBbOIiGMUzCIijlEwi4g4RsEsIuIYBbOIiGMU\nzCIijlEwi4g4RsEsIuIYBbOIiGMUzCIijlEwi4g4RsEsIuIYBbOIiGMUzCIijlEwi4g4RsEsIuIY\nBbOIiGMUzCIijlEwi4g4RsEsIuKYbBrf1BhzFvAp4GZgAQiAVwB7gYPW2jvSqEtExAWpBDNwHvBS\nwCb3vwL0W2v3G2MeN8bcb619LKXaRERSldZQRh/wduAa4ABxMB9J9o0BV6RTlohI+lLpMVtr/xbA\nGPN84G+BC4mHM0j+351GXSIiLkhrKKPmNuCNwB8s2eYD+Y2+sFjsbVZNW65d2tIu7QC1xVXt1Jb1\npBbMxpjdwAustYeNMTPA6JLdkxt9/fj4XNNq20rFYm9btKVd2gFqi6vapS2N/HJJc7rcfqCS3P46\nUKu2F3gwlYpERByQZjDPAY8DWGv/BnjSGHMb8LC19kCKdYmIpCq1oQxr7VeAy5bcvzatWkREXKIz\n/0REHKNgFhFxjIJZRMQxCmYREccomEVEHKNgFhHZAkEYMr9Y4ZW3fnHDM5vTPiVbRKSthGFEuRJQ\nDkKCIKQSRARBSBhF+J4H0ANMrfccCmYRkTMQRhGVakC5ElINIqpBSDUICcMIz/dqIQyA53lkltzf\niIJZRGQdURRRqYaUKwHVMKIShARBRBCGeHj4/ooAziwP4Eo1ZGJ2gYnZEuMzCw19TwWziEii1gOu\nBCFBGAdyEIR43vIABsj4Jw/RRVHE3HyF8dkFxmcWmJgpMTG7wPhMibn5Mjt6OykOdFIcKDRUh4JZ\nRLadahCyWAmS4Yd4GCIIQgB8f/mciEzm5P1KNWTyWNzzrQXw+Gz8fzbjMTxQoDhQoNjfyd6z+ikO\ndLKjt5NMEupRFPGP//KTDcc0FMwi0rbCMKJUqVKtRlTDkGo1HoYIiQ/EeUvGfWuBHEURcwuVkz3f\nmYWkJ3xq73fvWX08b99OigMFCh1xnIZRRBTGz+9nPDK+Rzbjk/HrwxzTG9WtYBaRlrf8QNzJXnAY\nRvj+8gD2fI8MXtL7XdLznVmoDz/Ue7/9tQDuZ3hJ7zcMI6Ik3OPAjYM363vksj65bOaUoY+aL33k\nF8KN2qNgFpGWcboH4nwf5hYqca931d5vB8P9hXrv97lPj3u/XZ1ZwjAkisBPgjeb9H4znk8u58Xh\nexozLU6HgllEnFQNQhbLwckDccD4xAlY5UBcGMLksYWTAZwchBufKZHJePVx3+JAgT1n9VPs72RH\nXwceEEXUe7yZjEfWj2/ncz7ZjL+st71VFMwikqpaAFfD9Q/EhRGcWKwyvmLYYWJmgWPzZQZ6OuIA\nHuhkz+4+Lr9kJ0P9HRQ6snjJc8XB65FJbuez6YXvehTMIrIlgjCZCbHkQFw1CIlYPvWsGoRMzJZO\n6f1OHCvhE/d+hwc6KfYX2LOrj8G+Tnb05sllMmQyJ8d744NuHvlcZtnztwIFs4hsqnoA18+Giwiq\n4bKZEFEUcXyhUg/e2sG38VV6vxfs6uOyi0fYc+4gQblCJuMTBAGZjEdXPh+P92bWPtjWihTMInJG\nwiiinIwBV5esCVEqV/E96MjnqAYhk7Mlxus94KT3O1vC87x42ll/3AM+d3SE4f4Ohvs7yWczy2c6\n5Hx2jw4wOXmcxUqVj971OAC3vOpSOnLtF2Pt1yIR2RSLlSoA+Wxm3ZkQngfHFypMzJY4PHmCrz90\nmHI1pCOXYW5J73e4v5PzRnvZb4qM7CjQ191RH27IeH58sC3rrznToZ16xBtRMItIXe1A3InFCnfe\n8yhRBP/pygvJZ7OEUcTksdIpc37HZxbwPCgOFBjs68D3oa8ryy+9aC+7hnvoyGXq4ZvL+eTWCd9G\ndOSy3PKqS+u321F7tkpE1hWGEYuVKpXaOHByRlwQhSwsBhyePMHM8TKVashf/J/vM3VskdkTi/T3\ndFDs72S4v8A5Iz3sv6jIrqFu+nryybCDTxiFZLM+hXyuafW3ayDXtHfrRLa5egBXwpMhHMTDEtPH\ny/H47xq9393D3Qz1d7BrsJudg12M7CjEvV/fT3WO73agYBZpA1EUUa4GVCphfRy4Wg0ZO7bI95+c\nYvLYYv3g29jMArMnygx0xwfa4rHfeN7v6FAX/V15shmFb5pSC2ZjzD7gDcCMtfbDxpgbgb3AQWvt\nHWnVJeKyKIqSceCQahgvT7lYDphIZjpMHitxdGq+ftvzPIb64tOOR3YU+KmLhvmn7x1mqK+Dm35h\nHz2FvMLXQakEszGmH7gPeDbwT8aYrwI3W2v3G2MeN8bcb619LI3aRFwRhCGl8smlKWePL3Jkcp6J\nYyXGpmvhu8js8UX6uvMM93cy1NfJTyZOkM/53Pr6Z3PJ3iLHjy3Uw3exUuWhH0wC0NWZI5fNpNxK\nWU1aPebXAf9urZ02xvwu8HLgSLJvDLgCUDBLW6pNQ6sdwArCkLn5MpUgJAxhfHqBo1PzjM0uMD69\nUA/gKIrq4fuj8ePkcz7XXXURZw/30l3Iks36VKoBH73rewCcNdxNX3cHi/Pl+vfeDjMa2kFar8wz\ngXOMMb8DXAzMAEGyLwB2p1SXyClWBulq2xp5TBCGzJ1Y5BN3P0q1GvDinz6bqWOLHJma58EfTFCp\nRoRhRH93nuLA0t5vhne/4dnsHCyQz2WXhe9F5wws+56NBK8C2X1pvUJ54LC19veNMY8BHcDDyT4/\n2S/SVGuFaWmxuux+LQRrZ5mt3AYsu5/xfY7PL/LxLz5CuRLwgkt3MTW7WL/s0I8n5iGKKH3r3xnZ\nUWCov4P+7jwduQy/+h/3MdBbIJvxl32f0aGuep0bha+Ct/Wl9QqOAZPJ7QA4F3h0yf7JU75ihWKx\ntwllpaNd2uJ6O2qB29mRpbRY5U8+888AvOfNl6+7LZ+PPybDQ731bblchjCK6Ch0MDu3yPxilVI5\n4PNf+SETsyWOTp5gfHqBbNbnwe9PsbvYzTMuLHJ2sae+BkRfT2f9oNvS2pb63be+YNXtp8P11+V0\ntFNb1pNWMH8NeFlyOwf8EvAbyf1e4MGNnmB8fK45lW2xYrG3LdriejtW6+WWy3EYTkzO1XvC5XIc\nxLVtQRhy3csupLRY5dsP/4QjU/McnVqAKGJ6tsQtH/oyYRQx2NfBSH+BfMbjp582xOhzz2G4v4Ou\njhyFjlNPtCiXqkyUjp+yfa2f4Jn+ZF1/XU5Hu7SlkV8uXhRFW1DKqYwxdwLzxEF8I/AZ4EngHGvt\ndRt8edQOLxC015vN5XasNSQBkMtmqFQDKpWI8WMnWKh4HPzRNGPTC/ULbc4cX6S3K0+xv5ORHQV2\nDnYxOtTF7sH4JIxcNuPklDPXX5fT0S5tKRZ7N3yjpBbMT5GC2TGutyOKIk6UypSrIV7kMTa7wOHJ\necam5hlL5gBPzJYIgojRoS529HSwc7DAaBLAuwa76CnkW24hHddfl9PRLm1pJJh1lEBa3tJV0IIw\nYrESML9YYe5Eham5RY4mww/xhTeX936LAwXOH+3jeU8fZddQF0P9nZy9e4CJiVOHGUS2ioJZnLTa\njAmAUrlCEEaARxBEzC2UueNLj1CuhOzbM8j0sXIy8+EEYRSxa7CLkR3xOg8X7N7JrqECozu643m/\na5zx5uKQhGwvCmZxTqlc4U/++iHCCG68+hIyvs/ciTI/Hj/OF+8/RKUaMjrYxeSxEtNziwDksj5z\n8xXO2dnDsy8a4ivf+THZjMfbX/0sulY5+CbiMgWzpCKMIirVgOMLcQ84nrcbMjGzwE8mjzM2XaIS\nhPzpXQ8zOVuiGkQM9XWwsFgln83w7AuHOLvYy+hgF5lMPIyxdPbDc8wIoDm90pr0rpWmCcIwXu0s\nCJkvVwiCKD75YqHC2MwCRyZP8NWHDlOphBQ6svWx3+H+Tp52Vj/DA52cVexh12A3O3rzdOTjucO+\n520YuApkaWV698pTUg1CytWAmeMljk6fIAwi/IxPpRIyOVdicjZecOebjx6lXAnJ+B6VIKTYH1/t\nwgN6Cjle8+I9nD3SS1dHNrnKReYpXeVCpJUpmGVdtWUmy5WQIIyv81YNI4IgIgxC5herTM0tMlca\n475/Oki5EtLVmWV67mTvd7C3g3zWp6eQ401XXsjIjm7y2fgyQ432gEW2E30apD7eW6nElxYKwii+\n5HwQEoYRYRRx7ESlfrLF+MxCsu5DiUo1oNhfYHS4G4CeQpZXvXAPZ430UMjnyGY88gpgkdOiT8k2\nsTR8q2Gt95uEbxTh4bFYCZZdYqh2mfmpYyV6Crn4SscD8UkXz7hgkJHBLgZ78+SyGXaO9DI+MUeu\nydd6E9kOFMxtJAyj+BLzQTLckARvEMbLSdbm504fr11m6GTvd2KmRLkSJOEbX2zz0j1DDPV1MjJY\noKsjnveb9T3yuQy57PI5wCvX/RWRM6dgbjG1g21BECVDDknwBvGQg+d7+J5HqVytB289hGcX6r3f\n4f44gEeHuth3wSDD/Z3s6O0gm/XJJQGcy2XIZ3XZIZGtpmB2zEYH2yIPfM/D8zzCMGLm+GIy7LD8\nasflSsDwQIHh5LTjS/cOMtTfyWBfB4V8jkzGqwdwSEQ+69O5wRDEWmfjicjm0icsBWEUUa3G4Zud\nKzE1V1p2sM3zwPf9+uNrvd+JmQXGZ0/2gieX9H5ra/xect4Ao4Nd9HTlyHg+maxPLuORyfjkMz75\n/PJpaKuturaaRh8nIk+dPl1NsnKmw3ypQhhG+H48QwE8Mr5HvlSlXAlP6f3Wer4TMwssVoL4MvMD\ncQA/44JBigMFhvrioQcfjyAK+dzfWX7wY49fuebp9HZ3kFkS7iLSOhTMT0HtzLZKsHyWw9KDbb7v\nUa5U+dzfPwHAq1+0tz71bHymxLH5Cj8em2Pq2CJdndn6wbedO+Kx3+JAgb7uPFHSk85mfDKZeBw4\nk/HozGfI+PFliHK5+IrHhc5cw6Hc6MU5dRFPka2j9ZjX+yZRVF9GMkjGeYPaVLMgJCJeiWzlGWq1\n3u9EMuxwdGqeRw5NUa6E+L4X937746GHC84eoJD1Ge7vJJ/LEIYhAJmMH8+CyHhkMz4duQzZzPph\nm+YYcLuslQtqi6vapS1aj7kBtfHeSjU5sSIM6zMewiR8fd87ZWaC7/uUytX4hIslJ15MzManIdd7\nv/2djA51c8l5Awz1dzI80IXvefHSlVHESLGH2dkFskkvOJ+cjnwm1JMVaQ/b4pMchhGVIIgX1KkN\nOaw4uWK1K1P4mXg8OB77PRm8tZMvSuVgWe+3NvQw1N9JRzKsEEYRURjh+17SA44PxuVyPvlshpFi\nLzodQ0SWaptg3nB+r3dq+HqeRybpCS+Wg1NOOZ6YOdn7rZ10URwo8PTzd9THfmvDGFEUfx8fj0z2\n5BBELhOfhtxqlyQSkfS0ZDBPz5WYniudnN8bJkMO3qlDDp7vkSHeFkYRs6v0fidmFlio937j2Q/7\nzh+szwOu9X5r6uPA9V5w/H/tQJyIyFPRksE8d6LMYiWs3/dXhOFiJThlzu940vstdGYpDpwcfnj6\n+TsY7i/Q35Nf9SBe7eDoyR7wUxsHFhHZSEsGM9R6v+VlZ7vVesELpSpD/Z1xAA8UuOS8QV74rDiM\nO/KnBmoYxuPAZLx6AK+1JoSISLO1ZDB/4NP/j7GpeQqd2fopx/FZbzsoDnTS39Ox6iLrYXLAL7Nk\n+EEBLCKuaclgftPLL6Yz463a+4W4Nx0E4ZozIRTAIuKylgzmc0d7mZ1d0EwIEWlLqQSzMaYbeAXw\nL8CzgHuANwJ7gYPW2jvW+/rOfIZyR6bhM+JERFpJWolWBD4PPAFcSRzON1tr3wu8yxhzyXpfPDLY\nTX93B92dOYWyiLSdtFItAj4HPNtaexNwFXAk2TcGXJFSXSIiqUtzjHkUeI0x5jLiHnSQbA+A3alV\nJSKSsrSCeQr4EPAgcU/5K8DxZJ8P5Dd6gmKxt1m1bbl2aUu7tAPUFle1U1vWk1YwjxD3kieS+y8C\nDizZP7nRE7TD8n/QVksZtkU7QG1xVbu0pZFfLmmNMb8MeAswkNx/LVCrtpe4Jy0isi2lFcx/ATwG\nfAz4E+ALwJPGmNuAh621B9b7YhGRdpbKUIa1dga4ZcXma9OoRUTENZoELCLiGAWziIhjFMwiIo5R\nMIuIOEbBLCLiGAWziIhjFMwiIo5RMIuIOEbBLCLiGAWziIhjFMwiIo5RMIuIOEbBLCLiGAWziIhj\nFMwiIo5RMIuIOEbBLCLiGAWziIhjFMwiIo5RMIuIOEbBLCLiGAWziIhjFMwiIo5RMIuIOCabdgE1\nxpgbgb3AQWvtHWnXIyKSllSD2RjTB9wD3ArcbK3db4x53Bhzv7X2sTRrExFJS9pDGe8DzgGuAo4k\n28aAK1KrSEQkZakFszHmEmBncncECJPbAbA7laJERByQZo/5euDO5HYBiJLbPpBPoyARERekMsZs\njPlF4C7iQAaYYXkveXKj5ygWe5tQWTrapS3t0g5QW1zVTm1ZT1oH/54LdABPAwaB7wKXJ/t6gQc3\neoLx8bmmFbeVisXetmhLu7QD1BZXtUtbGvnlkspQhrX2N4FPEQ9Z1IYwnjTG3AY8bK09kEZdIiIu\nSG26nLX2IeLZGDV/nlYtIiIuSXu6nIiIrKBgFhFxjIJZRMQxCmYREcc0fPDPGFMknnfsAW+z1r63\naVWJiGxjDfWYjTG/CRwFDgEHgZ9rYk0iIttaoz3mi4D9wC8CnwFe3KyCRES2u0bHmHuAFxIvMPQK\n4D80rSIRkW2u0WD+JnAJ8GngA8RBLSIiTdDQUIa19r/VbhtjdgHzTatIRGSba/Tg37uS/zPEVxt5\nVzOLEhHZztbtMRtj3pfcfJkxpiu5nQF+HvhQMwsTEdmuNhrK+Azw68SXf/pZ4jnMFeKV4UREpAnW\nDWZr7SFjzK3AX1lr769tTy4LJSIiTbDhwT9rbWCMOWKM+RjQSdxrfg5wabOLExHZjho9weSjxEMY\nReD7wN83rSIRkW2u0XnM/wC8njiQfwV4uGkViYhsc40G82uAbwH/AjwOvKNpFYmIbHNrDmUYY164\n5O4fAQPANPBJ4tOyRUSkCdYbY/7KOvuidfaJiMhTsN5Qxgettb611gf+ABhM/g0T96BFRKQJ1uwx\nW2t/a8ndfmvtTO2OMUY9ZhGRJml0ulyvMWYCmAC6gC83ryQRke2t0WC+CfgO8EzgEeJ5zSIi0gSN\nLvtZAf60ybWIiAincTHWzWaMuQG4GPiatfYeY8yNwF7goLX2jrTqEhFJW6MnmGwqY8x+4FXAnwF3\nJXOmb06uvP0uLZIkIttZKsEM7AIuA0LiXvuLgSPJvjHginTKEhFJX1rBfAB4CWCIT/EeJQ5piC/4\nujulukREUpdKMFtrg+TmrwPvB/KcPJvQT+6LiGxLqRz8Sy5TdYz4+oH/DHwXOLzkIZMbPUex2Nuc\n4lLQLm1pl3aA2uKqdmrLetKalfF7wEuB65L7dwEvS273Ag9u9ATj43PNqWyLFYu9bdGWdmkHqC2u\nape2NPLLJa1g/jPiNTfeC/wl8MfAxcaY24CHrbUHUqpLRCR1qQSztfYh4IYVm69NoxYREdekNStD\nRETWoGAWEXGMgllExDEKZhERxyiYRUQco2AWEXGMgllExDEKZhERxyiYRUQco2AWEXGMgllExDEK\nZhERxyiYRUQco2AWEXGMgllExDEKZhERxyiYRUQco2AWEXGMgllExDEKZhERxyiYRUQco2AWEXGM\ngllExDEKZhERxyiYRUQck027gBpjzI3AXuCgtfaOtOsREUlLKsFsjCkAtxAH8QPAg8DN1tr9xpjH\njTH3W2sfS6M2EZG0pdVjfivwRuDFwBHg/cn/AGPAFYCCWUS2pbTGmO8GPmCtnQHmgd8BgmRfAOxO\nqS4RkdSl0mO21h4CDhljfoa4p/wNoJjs9oH8Rs9RLPY2rb6t1i5taZd2gNriqnZqy3pSO/hnjOkB\n3kI8bPE5oLRk9+RGXz8+PtekyrZWsdjbFm1pl3aA2uKqdmlLI79c0pwu93HAAm8H7gFq1fYSHwwU\nEdmW0pqVcQPxwT+ACLgS2G+MuQ142Fp7II26RERckNYY86eAT63Y/H/TqEVExDU6809ExDEKZhER\nxyiYRUQco2AWEXGMgllExDEKZhERxyiYRUQco2AWEXGMgllExDEKZhERxyiYRUQco2AWEXGMgllE\nxDEKZhERxyiYRUQco2AWEXGMgllExDEKZhERxyiYRUQco2AWEXGMgllExDEKZhERxyiYRUQco2AW\nEXFMNu0CaowxNwJ7gYPW2jvSrkdEJC2pBLMx5qeA1wG/CuwDdgE3W2v3G2MeN8bcb619LI3aRETS\nlspQhrX2u8DHgZ6khquAI8nuMeCKNOoSEXFBmmPM3pLbI0CQ3A6A3VtfjoiIG1w5+FdYctsH8mkV\nIiKSNhcO/kXANDC6ZNvkRl9ULPY2raCt1i5taZd2gNriqnZqy3pcCGYPuB+4PLnfCzy40ReNj881\ns6YtUyz2tkVb2qUdoLa4ql3a0sgvl1SGMowx5wK/Tdxb/m3gUeBJY8xtwMPW2gNp1CUi4oJUeszW\n2ieBtyT/aq5NoxYREde4cvBPREQSCmYREccomEVEHKNgFhFxjIJZRMQxCmYREccomEVEHKNgFhFx\njIJZRMQxCmYREccomEVEHKNgFhFxjIJZRMQxCmYREccomEVEHKNgFhFxjIJZRMQxCmYREccomEVE\nHKNgFhFxjIJZRMQxCmYREccomEVEHJNNuwCRNERRxNj0AgAjOwp4nlffVsEjG0XLti19nEizKZhl\nW1gasMWBTu775r/xwBMTAOy/aJife9559W25rM8z9wwu21Z73NXPPx9AYS1N5VQwG2NuBPYCB621\nd6Rdj6Rjs3upURRx7zcO1QPWnN2H/dGx+v4HnpjggtG++v71tj3HjPBtO3ZKqI/PlDatXhFngtkY\nczlws7V2vzHmcWPM/dbax9KuazNshz+Hoyji6NQ8cGob12r/WsMJS0O01ktda1ihkZ/t2PTCsoD9\n3sFpfM8jmz39QyyTs6Vlz/VtO87x+Qr2R7PL6q1930ba7KIzrbNV2uc6Z4IZuAo4ktweA64AWj6Y\n1wuadhFFEZ//hyf42nd/DJwapqu1H1h1+8oQfeCJCS67eCcjOwqnPL7RoYaVclmfi88ZWBaml5y/\ng/1Hhpc912rbhvo7lz1XpRryyKHpesiv1ater80r6007xM/0Pbsd3utbxaVZGSNAkNwOgN1rPfCV\nr3zlsvtvfvPrnb0/Nr3AJz9ya/3+A09McO11m//9aj3Wo1PzW97ea697Pd/83uH6/U9+5NZ6oKzV\n/qUB/J0v/SEPPDFR/5rvfOkPlz3/rb92w6qPf+zQNA88MVF//ANPTHB0ap7XveE13H73I9x+9yPc\n+41DvPudN7L/ouH68z36d/+V117xNG66Zh83XbOPv/rEb+H7Plc//3xuumYf9u8/xNXPP7++7V//\n4cPcdM0+rn7++ewc7OKRv/1g/bkuvWAHDx344LJ6f+MdNyz75VL7edTasFG9tdfz3m8c4va7H+Ft\nb30T937jEFEU1X/+tdc6iqJlr0cURbzp2tfV9618vTbaX3s9V6u/Zq33w2rtG5tecOrz6ML9RrjU\nY17atfGB/HoPLhZ767czGd/Z+xU8PC/updX3+96mf78vP3S4Ho6lcsDwcE+9p7Le19c+nBU8dg13\n43ne6X9/P/4+tTZ6HgwOdlMs9qzZ/sHB7mWPz2V9Bge72TXcTWc+U9/3vEt38W9fzaz6+IGBLnJZ\nf9nzB55PuRrW7z/0wykArr/mUq6aOAHAr3w1z86d/ezc2X9Ke0ZG+shkfEZG+ur15nMZnmF21u/3\ndOV5z/WXAzA61MUX7lxe7w+/7C9rb+3nUfsZNVJv1fN56IdT9cc/9MMprnrBHnYNd1MqB9x532P1\n71erv/aXy/GFCnfe9xjPu3QXr31J7wb7L1r19Vyt/mKxZ933QwXvlPYNDnZv6uepWIzbUyF+z+0a\n3tzn34r7jfBqH8y0GWM+BFxirf15Y8w/Agestf9ljYdH4+NzW1jdmdvoz7tisZen2pajU/Pcfvcj\ny7bddM0+dg52PaXaGhVFEV9+6PCmDGWsN5bcyFDGc8wIn/jSo6f9s1jqdF+TlfWu1bbVtq9VL7Dq\na7rW9p2DXau+D95z/eXkiD/jjb5PXB3KKBZ7GRs71vLDJcVi74bFutRjvh+4PLndCzyYYi2bxvM8\nrn7++Vx2cdzjcumAyFrjuauF2HrjnZ7n8dqXXMS+cwZO2b9e+9fa7nneKTWs9Twrt0H8YV36wV1t\nnHkzrVZffpHBAAAGrklEQVRvo21er97Vti8dUmhme87kPbsV7/XTec+2MmeC2Vr7N8aYXzLG3AY8\nbK09kHZNm2W1D+5mGtlRaGoYNdITWq+Na+073Z/LWoHdaChupdNp8+n84lrvtV5t367hbiYmjq+5\nf633yZm+Z5v9Xt8unBnKOE0tM5Sxkc0YyoAzO4Lf6J+ejfwJvFntcIHrbVnvtV65b2Skb1lbWnk6\nm4YypOWcSU/F5WEWWduZ/HXS6H7XbZf3rEvT5SQFtQ/qzsGuNd/gtT+Ba7Zi3FZkLY28Z1udesyy\noe3SSxFxhYJZGtLqfwKLtBINZYiIOEbBLCLiGAWziIhjFMwiIo5RMIuIOEbBLCLiGAWziIhjFMwi\nIo5RMIuIOEbBLCLiGAWziIhjFMwiIo5RMIuIOEbBLCLiGAWziIhjFMwiIo5RMIuIOEbBLCLiGAWz\niIhjFMwiIo5x4mKsxpjdwDuI6/nv1tofpVySiEhqmhbMxpg3A+ev2Pxp4FXA1cAha+0vJ9s/CdwO\n9AAfBl7frLpERFzXzB7z1621n1m6wRiz11r7R8aYZ5IMoxhjfOBK4HeBPuAlTaxJRMR5aY0xe8k/\ngB3EvyCC5N+QMSaXUl0iIqlz4eBfYcntWljn0yhERMQFaR38i5J/ALPJ/z5xMJettSc2+HqvWOxt\nVm1brl3a0i7tALXFVe3UlvWkPpRhrZ0DHgJ6k38PplSTiIgTmtljvsYY07di293GmLcBlwGRMeYW\na+1HgVuAXwNC4DeaWJOIiPO8KIo2fpSIiGwZFw7+iYjIEgpmERHHKJhFRBzjxFoZZ8IYcx5wHdAN\n/KG1dnaDLxHZkDHmRmAvcNBae0fa9Uh7McbcAFwMfM1ae89aj3P+4N86a278D+A24N3AEWvtLVtb\n2elZpx3nAS8HisDvW2v/fWsrO32nuQ5KyzDGXA583Fq73xjzOPCL1trH0q7rTBhjfgp4HfCrwL5W\neF+txRhTIJ65tRd4wFr7yZRLOiPGmP3ES0/8FvAd4Bxr7dHVHtsKPebV1tx4GrAb2E88xW40jcJO\n01rt+GvgbcBzgfuAS1Oo7XQ1tA5KC7oKOJLcHgOuAFoymK213zXGTBF3XLyNHu+4twJvBF4MHDHG\nTFlr/zrdks7ILuKpwiFx9haBVYO5VT9AEfEKdJ8FLiIOt1YUEc/f/jbwE+IXqtUtXQel1YwQr9dC\n8v/uFGvZDK36Oqx0N/ABa+0McILW/ZwcIF6kzRD/wn90rQe2ajBjrf0BcDMwR9zTbEnW2j9P/sx8\nJfCf065nm1u6bouP1mxxgrX2kLX288aYnyH+i+Zzadd0Jqy1tV/6vw7cZq0N13psywazMeZC4rWb\njwH3plzOU2KMuR74X8D3Uy5lMyxdB6XVTLP8MzGZViGynDGmB3gL8fDSs1Iu54wYY7qI8+pW4HPG\nmCvXemyrBnMX8DhxL7NE/KdBSzLGPAd4NfFa1O9IuZzN0MpDGfcTr9cC7bVuS6u+Hkt9HLDEn5EL\nU67lTP0e8bDMYnL/orUe2AqzMt5JHFpL3Q28FsgALwJ+z1rr9HDGOu34AnBucv9r1toXbWlhZ2Cd\ntlxGPGYeAbcn66C0FGPMnwFPEh8xvy7tes6UMeZc4H3A9cCngA9aa/811aLOUDLF7M7kbgS81Fr7\n5RRLOiPJgfF3Eg+ZhcAvW2vnV3us88EsIrLdtOpQhohI21Iwi4g4RsEsIuIYBbOIiGMUzCIijlEw\ni4g4RsEssgmMMV81xqx5iq3I6VAwi2yO3067AGkfCmaRzdEOpz2LI1phPWaRhhlj3g+8h/jU8Crx\nWr4vJz49eZp4gf//DTwB3AOMA48A5wCfIF7w/07iBaWuBf4SKAPXAH9hrf2sMeYjQD/xehr3Wms/\nuzWtk+1CPWZpK9ba2tKpc9bajwODwA3Aa5J9/5N4Jb+fEC8feQ7wO8ABa+0XiK8sMWit/RhxeL8u\neZ5vES/WDvGiWfcRB/ztW9Iw2VbUY5Z29cMlt99HvDARxKsR9hBfd80jvrbfYeCPV/naiHgVw5ra\n+szvBt5A3Gvu3NyyRdRjlvYXEV9jrWiM8YCdxEMTB5P9wYrHr1y2dNnYsTFmD/FyoN8CvtiMgkUU\nzNJWjDG1i/LeYoy5lngo4xeAbwAfA34ZuJG4t3sVsNcY85bka19OfMHPq5KvvQy4LLl9VbJvH/CP\nxNef2wP8yBjzNuKr6URLvr/IGdOynyIijlGPWUTEMQpmERHHKJhFRByjYBYRcYyCWUTEMQpmERHH\nKJhFRByjYBYRccz/B22YfRk0h5eYAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x7f7b9e083590>"
]
}
],
"prompt_number": 25
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we assume normality, we can use estimators to get the mean and std and then figure out the percentiles of the mean, by using the distribution of the mean"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"mu_est = np.mean(data)\n",
"sigma_est = np.std(data, ddof=1)\n",
"n = len(data)\n",
"mu_est_dist = st.norm(loc=mu_est, scale=sigma_est / np.sqrt(n))\n",
"print mu_est_dist.ppf(.025)\n",
"print mu_est_dist.ppf(.975)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"58.0566361194\n",
"59.8544749917\n"
]
}
],
"prompt_number": 21
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we don't assume normality, we have to do some bootstrapping"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import random\n",
"get = lambda: random.choice(data)\n",
"series = lambda: pd.Series([get() for _ in range(0, 30)])\n",
"all_series = [series() for _ in range(0 ,1000)]\n",
"means = map(np.mean, all_series)\n",
"print np.percentile(means, 2.5)\n",
"print np.percentile(means, 97.5)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"58.1266666667\n",
"59.74675\n"
]
}
],
"prompt_number": 24
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment