{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from joblib.parallel import Parallel, delayed" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "def bootstrap(data, agg=np.mean, n_bootstraps=10000, seed=None, ci_width=0.95):\n", " data = np.asarray(data)\n", " rng = np.random.RandomState(seed)\n", " n_samples = len(data)\n", " all_aggs = []\n", " for i in range(n_bootstraps):\n", " idx = rng.random_integers(low=0, high=n_samples - 1, size=n_samples)\n", " all_aggs.append(agg(data[idx]))\n", " boostrapped = np.asarray(all_aggs)\n", " boostrapped.sort()\n", " \n", " ci_min = (1 - ci_width) / 2.\n", " ci_max = 1. - ci_min\n", " ci = boostrapped[int(ci_min * n_bootstraps)], boostrapped[int(ci_max * n_bootstraps)]\n", " return boostrapped, ci" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "bins = np.linspace(0, 1, 30)\n", "data = np.random.uniform(0, 1, size=10)\n", "_ = plt.hist(data, bins=bins, alpha=0.5)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nq0sFBQUKBALKyspSdXW1Tp48Oe5MU1OTNm7cKEkqLy/X8PCwBgcHp25iA/iiHcMuxrCLMewiOTHD\nPjAwIL/fH32cl5engYGBuGf6+/tTPCYAwKvMWE9mZGR4uohzztPPO3r0qKfr/frrr57OAQAm4WI4\nffq0W716dfTx3r173b59+8adqampcY2NjdHHTz75pLt69eqEa+Xn5ztJfPDBBx98JPCRn58fK9OT\nivmKvaysTL29vQqHw1qwYIGOHz+uxsbGcWeqqqrU0NCg6upqdXZ2au7cucrNzZ1wrb6+vli/FAAg\nRWKGPTMzUw0NDVq9erVGR0e1detWFRUV6dChQ5KkmpoaVVZWqrm5WQUFBZo5c6aOHDmSlsEBAJPL\ncP99gxwA8EBL+TtPeUPTmHi7+PTTTxUMBrVkyRI999xzOn/+/DRMOfW8fE1I0nfffafMzEx9/vnn\naZwuvbzsoq2tTaWlpSouLlYoFErvgGkUbxdDQ0Nas2aNSkpKVFxcrA8//DD9Q6bJli1blJubq8WL\nF9/1TELdTPiufAy3b992+fn57sqVK+7WrVsuGAy6np6ecWe++OILV1FR4ZxzrrOz05WXl6dyhPuG\nl110dHS44eFh55xzLS0tJnfhZQ//Obdy5Ur3r3/9y504cWIaJp16XnZx/fp1t2jRIheJRJxzzv38\n88/TMeqU87KLN99807322mvOub/2kJOT40ZGRqZj3Cn3zTffuLNnz7ri4uJJn0+0myl9xc4bmsZ4\n2cWyZcs0Z84cSX/twuJ//+9lD5L03nvvaf369XrkkUemYcr08LKLo0ePat26dcrLy5MkzZ8/fzpG\nnXJedvHYY4/pxo0bkqQbN27o4YcfVmZmzG8LPrCWL1+uefPm3fX5RLuZ0rDzhqYxXnbxd++//74q\nKyvTMVpaef2aOHnyZPSvo/D6/okHjZdd9Pb26tq1a1q5cqXKysr08ccfp3vMtPCyi23btunChQta\nsGCBgsGgDhw4kO4x7xuJdjOl//pL9RuaHmSJ/DN9/fXX+uCDD3Tq1KkpnGh6eNnD7t27tW/fPmVk\nZMg5N+HrwwovuxgZGdHZs2f11Vdf6ffff9eyZcv07LPPqrCwMA0Tpo+XXezdu1clJSVqa2vT5cuX\ntWrVKp07d06zZ89Ow4T3n0S6mdKw+3w+RSKR6ONIJBL9I+XdzvT398vn86VyjPuCl11I0vnz57Vt\n2za1trbG/KPYg8rLHs6cOaPq6mpJf33DrKWlRVlZWaqqqkrrrFPNyy78fr/mz5+vGTNmaMaMGXrh\nhRd07tw5c2H3souOjg698cYbkqT8/Hw9/vjj+v7771VWVpbWWe8HCXczld8AGBkZcU888YS7cuWK\n+/PPP+N+8/T06dMmv2HonLdd/PDDDy4/P9+dPn16mqacel728HebNm1yn332WRonTB8vu7h48aJ7\n8cUX3e3bt91vv/3miouL3YULF6Zp4qnjZRevvvqqq6urc845d/XqVefz+dwvv/wyHeOmxZUrVzx9\n89RLN1P6ip03NI3xsou33npL169fj95bzsrKUldX13SOnXJe9vBP4WUXCxcu1Jo1a7RkyRI99NBD\n2rZtmxYtWjTNk6eel128/vrr2rx5s4LBoO7cuaO3335bOTk50zz51NiwYYPa29s1NDQkv9+v+vp6\njYyMSLq3bvIGJQAwhv81HgAYQ9gBwBjCDgDGEHYAMIawA4AxhB0AjCHsAGAMYQcAY/4fvH0Rrzni\nphEAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "data.mean()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "0.47800950435078776" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "bootstrapped, ci = bootstrap(data, ci_width=0.99)\n", "_ = plt.hist(bootstrapped, bins=bins, alpha=0.5)\n", "ci" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "(0.19418497980251903, 0.77660497016829755)" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n/R8oF0rXwSHT6wAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "def unbiased_std(x):\n", " return np.std(x, ddof=1)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "bootstrapped, ci = bootstrap(data, agg=unbiased_std, ci_width=0.99)\n", "_ = plt.hist(bootstrapped, bins=bins, alpha=0.5)\n", "plt.title(\"Bootstrap distribution for the std dev of a uniform variable\")\n", "ci" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "(0.19711553043302424, 0.46172529784033078)" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nQmCC\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Evaluation of the correctness of the bootstrap CI for the mean of a uniform variable" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%time\n", "\n", "target_ci_width = 0.95\n", "\n", "\n", "def compute_ci_correctness(n_samples, true_value, agg=np.mean, target_ci_width=0.95,\n", " n_runs = 100):\n", " correctness = []\n", " for i in range(n_runs):\n", " data = np.random.uniform(0, 1, size=n_samples)\n", " _, ci = bootstrap(data, agg=agg, ci_width=target_ci_width,\n", " n_bootstraps=5000)\n", " correctness.append(float(ci[0] <= true_value <= ci[1]))\n", " \n", " # Look Ma': boostrap CI on the boostrap CI correctness\n", " _, ci_outcomes = bootstrap(correctness, ci_width=0.99,\n", " n_bootstraps=10000)\n", " return {\n", " 'n_samples': n_samples,\n", " 'correctness': np.mean(correctness),\n", " 'ci_0025_correct': ci_outcomes[0],\n", " 'ci_0975_correct': ci_outcomes[1],\n", " }\n", " \n", "\n", "all_outcomes = Parallel(n_jobs=-1)(delayed(compute_ci_correctness)(\n", " n_samples, 0.5, agg=np.mean, target_ci_width=target_ci_width)\n", " for n_samples in [3, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100])\n", " \n", "all_outcomes = pd.DataFrame(all_outcomes)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "CPU times: user 44 ms, sys: 20 ms, total: 64 ms\n", "Wall time: 11.8 s\n" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "def plot_outcomes(all_outcomes, target_ci_width):\n", " plt.fill_between(all_outcomes.n_samples.values,\n", " all_outcomes.ci_0025_correct.values,\n", " all_outcomes.ci_0975_correct.values,\n", " alpha=0.2, color='b')\n", " plt.plot(all_outcomes.n_samples, all_outcomes.correctness, 'o-',\n", " alpha=0.8, color='b')\n", " \n", " plt.hlines(target_ci_width,\n", " all_outcomes.n_samples.min(), all_outcomes.n_samples.max(),\n", " linestyles='dotted')\n", " plt.ylim(0.5, 1)\n", " plt.title(\"Correctness of the bootstrap CI interval\")\n", " plt.xlabel(\"Number of source samples\")\n", " plt.ylabel(\"Rate of true value belonging to the CI interval\")\n", " \n", "plot_outcomes(all_outcomes, target_ci_width)\n", "all_outcomes" ], "language": "python", "metadata": {}, "outputs": [ { "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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ci_0025_correctci_0975_correctcorrectnessn_samples
0 0.51 0.76 0.64 3
1 0.67 0.88 0.78 5
2 0.79 0.95 0.88 10
3 0.92 1.00 0.97 20
4 0.87 0.99 0.94 30
5 0.92 1.00 0.97 40
6 0.96 1.00 0.99 50
7 0.92 1.00 0.97 60
8 0.90 1.00 0.96 70
9 0.92 1.00 0.97 80
10 0.92 1.00 0.97 90
11 0.90 1.00 0.96 100
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ " ci_0025_correct ci_0975_correct correctness n_samples\n", "0 0.51 0.76 0.64 3\n", "1 0.67 0.88 0.78 5\n", "2 0.79 0.95 0.88 10\n", "3 0.92 1.00 0.97 20\n", "4 0.87 0.99 0.94 30\n", "5 0.92 1.00 0.97 40\n", "6 0.96 1.00 0.99 50\n", "7 0.92 1.00 0.97 60\n", "8 0.90 1.00 0.96 70\n", "9 0.92 1.00 0.97 80\n", "10 0.92 1.00 0.97 90\n", "11 0.90 1.00 0.96 100" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 18 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Evaluation of the correctness of the bootstrap CI for the std deviation of a uniform variable" ] }, { "cell_type": "code", "collapsed": false, "input": [ "all_outcomes = Parallel(n_jobs=-1)(delayed(compute_ci_correctness)(\n", " n_samples, 1 / np.sqrt(12), target_ci_width=target_ci_width, agg=unbiased_std)\n", " for n_samples in [3, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100])\n", " \n", "all_outcomes = pd.DataFrame(all_outcomes)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "plot_outcomes(all_outcomes, target_ci_width)\n", "all_outcomes" ], "language": "python", "metadata": {}, "outputs": [ { "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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ci_0025_correctci_0975_correctcorrectnessn_samples
0 0.24 0.49 0.36 3
1 0.50 0.75 0.63 5
2 0.80 0.96 0.89 10
3 0.82 0.97 0.90 20
4 0.84 0.98 0.92 30
5 0.87 0.99 0.94 40
6 0.87 0.99 0.94 50
7 0.83 0.97 0.91 60
8 0.89 1.00 0.95 70
9 0.92 1.00 0.97 80
10 0.85 0.99 0.93 90
11 0.92 1.00 0.97 100
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ " ci_0025_correct ci_0975_correct correctness n_samples\n", "0 0.24 0.49 0.36 3\n", "1 0.50 0.75 0.63 5\n", "2 0.80 0.96 0.89 10\n", "3 0.82 0.97 0.90 20\n", "4 0.84 0.98 0.92 30\n", "5 0.87 0.99 0.94 40\n", "6 0.87 0.99 0.94 50\n", "7 0.83 0.97 0.91 60\n", "8 0.89 1.00 0.95 70\n", "9 0.92 1.00 0.97 80\n", "10 0.85 0.99 0.93 90\n", "11 0.92 1.00 0.97 100" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEZCAYAAAB8culNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXdcU1f/xz9hCbJFVAgiiIKgiAzBWbFata5qHY97tnXU\njqd9+rO1C31arU/bp9baWts6+rR1j7ptXXQ4sApV60ZBEJSh7GHW+f1xmpiEhBsCCUn4vl8vXpCb\nm3u/5+ZyPvec7zgixhgDQRAEQahh19gGEARBEJYHiQNBEARRAxIHgiAIogYkDgRBEEQNSBwIgiCI\nGpA4EARBEDUgcSCsktWrV6N169bw8PBAUVGR4P4bNmxA3759G+TcSUlJmDp1aoMcqykxdOhQfPfd\nd41thkHY2dnh1q1bjW1Go0LiYGY2btyIuLg4uLu7w9/fH0OHDsWJEyca2ywEBQXh2LFjjW2GQUil\nUrz66qs4evQoSktL4e3trfF+ZmYm7OzsoFAoTHJ+kUhkkuPWRcCSk5PRtm1bk9hRG9evX8e4cePg\n6+sLLy8vREVF4ZNPPoFCoRC87gcOHDBYVBMTE7F27dqGNJ2oIyQOZuS///0v/vnPf+Ktt95Cfn4+\nsrOz8fzzz2PPnj11PpZMJquxTS6XG22bSCSCteRD3rt3D9XV1QgPD691P1O1x1quU33uB13cvHkT\nCQkJaNeuHf766y8UFxdj27ZtOHfuHMrLyxv0XPUVYFM9GDQpGGEWiouLmZubG9u+fbvefaqrq9lL\nL73E/P39mb+/P3v55ZfZw4cPGWOMHT9+nInFYrZ8+XLWpk0bNnXqVJaUlMTGjBnDpkyZwjw8PNja\ntWtZcXExmzVrFvPz82NisZi99dZbTC6Xq87x1VdfsfDwcObu7s4iIiJYamoqmzJlCrOzs2MuLi7M\nzc2NffjhhywjI4OJRCL27bffssDAQNayZUv2/vvvq46jUCjYsmXLWEhICPPx8WHjx49nDx48YIwx\nVlVVxSZPnsx8fHyYl5cX6969O8vLy2OMMbZ+/XrWvn175u7uzoKDg9kPP/xQp2tx7do15urqykQi\nEXNzc2MDBgyo8dm2bduq3nd3d2enTp1iGzZsYH369GH/+te/mLe3NwsODmYHDx7U+H5qu27qJCUl\nsbFjx7J//OMfzN3dncXExLDz58+r3r98+TLr168f8/LyYp07d2Z79uzROM/UqVOZr68va9euHXvv\n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\nzDPP4KOPPkJqaioYY0hPT1d1DK1bt8bNmzcNbs/cuXOxaNEi1ecLCgpUUVfJycm4ePEi5HI53N3d\n4ejoCHt7e+Tn52P37t2oqKiAo6MjXF1dYW9vr/P4db0W6vj6+sLOzs7g9ghdN12cO3cOu3btgkwm\nw4oVK+Ds7IwePXogPj4ezZs3x3/+8x9IpVIkJydj3759mDBhAuzs7DB+/Hi8+eabqhHLJ598gilT\npgDg38GdO3cglUoB8JDdH374ASUlJbC3t4e7u7vqerVu3Rr3799HaWmpyibt+wHgT+Lu7u5o3rw5\nrl69itWrV9fY56OPPkJxcTGys7OxcuVK/OMf/9DZ5sWLF+PkyZP4v//7P9UTe3p6OqZOnaphR0Og\nfT8OHz4c169fx/fffw+pVAqpVIo//vgDV69eBaA/gmzSpElYsWIFfvvtN4wbN0613ZDr0uRp1Emt\nJsgPP/zA4uLimKurK2vTpg0bPnw4O3XqFGOMO9FefPFF5ufnx/z8/NhLL72kEa3Utm1bjWMlJSWx\nqVOnamwrKSlh8+bNYwEBAczT05NFR0er/ASMcWdxWFgYc3NzY5GRkezPP/9kjDG2e/duFhgYyLy8\nvNjHH3/MMjIymJ2dncb8sfqcsUKhYP/9739ZWFgYc3d3ZyEhIezNN99kjDG2adMmFhYWxlxdXVnr\n1q3ZSy+9xORyObt79y7r168f8/T0ZF5eXqx///4a8+/q1HYtdNmmzTvvvMN8fX2Zt7c3O336NNuw\nYUONOWs7OzvVvLLQddO+7uPGjdOIVkpLS1O9f+nSJVU7O3fuzH788UfVe0VFRWzKlCnM19eXtW3b\nlv373/9WRQdJJBI2bNgw1qJFC+br68skEgkbMmQI8/b2Zh4eHiw+Pp6dOHFCdaxZs2YxHx8f5u3t\nzXJzc3XeD7/++ivr1KkTc3NzY3379mXvvPOOxnUQiUTss88+Y+3bt2c+Pj7sX//6V63X9dq1a2zc\nuHHMx8eHeXp6sqioKPbpp58yuVwu+L2o3z9C38epU6dYaGgo8/b2Zi+99JLq3MOGDWO+vr7Mx8eH\nDRgwQBUlNmPGDFXAgjpZWVnMzs6uRpSV0HVRt6WpImLMdEHbs2bNwv79+9GqVSu9Q/QXX3wRBw8e\nRPPmzbFhwwZER0ebyhyCILSws7NDeno62rdv39imEBaGSaeVZs6ciUOHDul9/8CBA0hPT8eNGzfw\n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\nJiZyiwAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 20 } ], "metadata": {} } ] }