{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Examples and Exercises from Think Stats, 2nd Edition\n", "\n", "http://thinkstats2.com\n", "\n", "Copyright 2016 Allen B. Downey\n", "\n", "MIT License: https://opensource.org/licenses/MIT\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from __future__ import print_function, division\n", "\n", "%matplotlib inline\n", "\n", "import numpy as np\n", "\n", "import nsfg\n", "import first\n", "import thinkstats2\n", "import thinkplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, I'll load the NSFG pregnancy file and select live births:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "preg = nsfg.ReadFemPreg()\n", "live = preg[preg.outcome == 1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the histogram of birth weights:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEPCAYAAABsj5JaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAH5ZJREFUeJzt3XuUFeWd7vHvgwS8cJEYBQUFHG/oeAkmncQbrfE6Duph\nJh7UM2Jizso6XmdMPAFNQuMyYpyYoydeYiJRiCKDjg4kwRvixtE5ClGUVhBRwzXSmJCIRpcK/M4f\nVd2WTd+o7t21u3k+a+1F7XdX1f7tpns/VW9VvaWIwMzMbFv1KLoAMzPrmhwgZmaWiwPEzMxycYCY\nmVkuDhAzM8vFAWJmZrmUNUAk9Zb0nKRFkmolTUzbJ0paI+mF9HFqZpkJkpZLWirp5Ez7SEmLJb0m\n6aZy1m1mZq1Tua8DkbRzRLwvaQfgGeAy4DTg3Yj4SaN5RwDTgS8CQ4C5wP4REZKeAy6JiIWS5gA3\nR8SjZS3ezMyaVfYurIh4P53sDfQE6hNLTcx+JjAjIjZFxApgOVAlaRDQNyIWpvNNA84qX9VmZtaa\nsgeIpB6SFgHrgMczIXCJpBcl3Smpf9o2GFidWXxt2jYYWJNpX5O2mZlZQTpjD2RLRHyepEuqStLB\nwG3AvhFxBEmw3FjuOszMrGP17Kw3ioiNkkrAqY2OffwC+HU6vRbYO/PakLStufatSPLgXmZmOURE\nU4cWmlXus7A+V989JWkn4CTg1fSYRr0xwMvp9GxgrKRekoYD+wELImId8I6kKkkCzgdmNfe+EVFR\nj4kTJxZeg2vqXnW5JtfU0Y88yr0HsicwVVIPkrD6t4iYI2mapCOALcAK4FsAEbFE0kxgCfAxcFF8\n8skuBu4GdgTmRMQjZa7dzMxaUNYAiYhaYGQT7ee3sMxkYHIT7c8Dh3ZogWZmlpuvRO8E1dXVRZew\nFdfUdpVYl2tqG9dUXmW/kLCzSYru9pnMzMpNErGNB9E77SwsM+s+hg0bxsqVK4suw3IYOnQoK1as\n6JB1eQ/EzLZZurVadBmWQ3P/d3n2QHwMxMzMcnGAmJlZLg4QMzPLxQFiZt3K8OHDmTdv3lbtTz/9\nNCNGjNimda1cuZIePXqwZcuWjiqvXebPn8/ee38yqlNzn7Wz+CwsM2u3S669r6zrv+V757R7Hccc\ncwxLly5tcZ7hw4czZcoUTjjhhIa2ZPSk8urRowevv/46++67b6vzdkY9beU9EDPb7m3evLnQ96+k\nUNgWDhAz63YWLFjAIYccwm677caFF17IRx991GT3zw033MDhhx9Onz59OO+881i1ahWjR4+mX79+\n/PjHPwaSwVnvuecehg4dyh577MF1110HwIcffsjOO+/Mhg0bAPjhD3/IZz7zGd577z0AfvCDH3DF\nFVcAsGHDBkaPHk3//v350pe+xPe//32OPfZYAEaNGkVEcNhhh9GvXz/uv//+dn/WzuIAMbNuZ/r0\n6Tz++OO88cYbLFu2jGuvvRbYekt/xowZPPzww/zlL3/h3nvvZZ999uE3v/kNGzdu5Dvf+U7DfM88\n8wzLly9n7ty5XHPNNSxbtozevXtTVVXF/PnzAXjqqacYNmwYzzzzDJAcr6gftuSiiy6ib9++rF+/\nnrvvvpupU6c21FK/fG1tLRs3buRrX/tah3zWzuAAMbNu59JLL2WvvfZi11135eqrr2b69OlNznf5\n5Zez11570bt374a2xhfZSaKmpoZevXpx2GGHcfjhh/PSSy8BcNxxxzF//nw2b97M4sWLueyyy5g/\nfz4ffvghCxcu5LjjjmPLli08+OCDXHPNNfTu3ZsRI0Ywbty4rWrJe2Fm4896333lPR6V5QAxs25n\nyJAhDdNDhw7lrbfeanW+lgwcOLBheuedd27opho1ahRPPvkkL7zwAocddhgnnXQSpVKJZ599lv33\n359dd92Vt99+m82bN3/qvbJdae3V+LP+4Q9/6LB1t8YBYmbdzurVqxumV65cyV577dXkfI27tLb1\nYPZRRx3FsmXLeOihhxg1ahQHHXQQq1atYs6cOYwaNQqA3XffnZ49e7JmzZom62uvtn7WcnCAmFm3\nc+utt7J27Vo2bNjAddddx9ixY4HWu4kGDRrEm2+++am2lpbZaaedOPLII7n11lsbAuOoo47iZz/7\nWcPzHj16MGbMGGpqavjggw949dVXmTZtWqvv21bNfdZOUfRtFMtwW8Yws/Kq5L+z4cOHx/XXXx8H\nH3xwDBgwIL7+9a/HBx98EKVSKfbee+9PzffEE098atlZs2bFPvvsEwMGDIgbb7wxVqxYET169IjN\nmzc3zHP88cfHlClTGp5PmDAhdtlll/joo48iIuKWW26JHj16xPr16xvmefvtt+P000+P/v37R1VV\nVYwfPz5OPPHEhtfvuOOO2HPPPWPAgAFx//33N/vZmvoMTX3WljT3f5e2b9P3rUfjNbNt5tF422f8\n+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\nuThAzMwsl/8P4EXto8B89nQAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist = thinkstats2.Hist(live.birthwgt_lb, label='birthwgt_lb')\n", "thinkplot.Hist(hist)\n", "thinkplot.Config(xlabel='Birth weight (pounds)', ylabel='Count')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To normalize the disrtibution, we could divide through by the total count:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "n = hist.Total()\n", "pmf = hist.Copy()\n", "for x, freq in hist.Items():\n", " hist[x] = freq / n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result is a Probability Mass Function (PMF)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEPCAYAAABsj5JaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHw1JREFUeJzt3XuUFeWd7vHvg0S8cJExARQUcLyh4yWYdBITpU28xvGy\nmBMX6BwxMWvlHK9nnHgCmoTGZcQ4MUczamIiUYgig04cSII3JBtHZylEQVpBRA3XSGOGRDS6VOB3\n/qjqTtnsvlDdu2t383zW2ova766q/dtN936q3qp6SxGBmZnZzupVdAFmZtY9OUDMzCwXB4iZmeXi\nADEzs1wcIGZmlosDxMzMcqlogEjqI+lZSUsk1UuanLZPlrRe0vPp4/TMMpMkrZK0QtKpmfbRkpZJ\nekXSLZWs28zM2qZKXwciaa+IeFfSbsDTwBXAGcDbEfHDZvOOAmYCnwaGAfOBQyIiJD0LXBYRiyXN\nA26NiEcrWryZmbWo4l1YEfFuOtkH6A00JpbKzH4OMCsitkbEamAVUCNpCNAvIhan880Azq1c1WZm\n1paKB4ikXpKWABuBxzMhcJmkpZLukjQgbRsKrMssviFtGwqsz7SvT9vMzKwgXbEHsj0iPknSJVUj\n6QjgDuCgiDiWJFhurnQdZmbWuXp31RtFxBZJJeD0Zsc+fgb8Kp3eAByQeW1Y2tZS+w4keXAvM7Mc\nIqLcoYUWVfosrI83dk9J2hM4BXg5PabRaCzwYjo9FxgnaXdJI4GDgUURsRF4S1KNJAEXAnNaet+I\nqKrH5MmTC6/BNfWsulyTa+rsRx6V3gPZD5guqRdJWP1bRMyTNEPSscB2YDXwDYCIWC5pNrAc+BC4\nJP76yS4F7gH2AOZFxCMVrt3MzFpR0QCJiHpgdJn2C1tZZiowtUz7c8BRnVqgmZnl5ivRu0BtbW3R\nJezANbVfNdblmtrHNVVWxS8k7GqSoqd9JjOzSpNE7ORB9C47C8vMeo4RI0awZs2aosuwHIYPH87q\n1as7ZV3eAzGznZZurRZdhuXQ0v9dnj0QHwMxM7NcHCBmZpaLA8TMzHJxgJhZjzJy5EgWLFiwQ/tT\nTz3FqFGjdmpda9asoVevXmzfvr2zyuuQhQsXcsABfx3VqaXP2lV8FpaZddhl199f0fXf9u3xHV7H\nF77wBVasWNHqPCNHjmTatGl88YtfbGpLRk+qrF69evHqq69y0EEHtTlvV9TTXt4DMbNd3rZt2wp9\n/2oKhZ3hADGzHmfRokUceeSR7Lvvvlx88cV88MEHZbt/brrpJo455hj69u3LBRdcwNq1aznrrLPo\n378/P/jBD4BkcNZ7772X4cOHM2jQIG644QYA3n//ffbaay82b94MwPe+9z0+9rGP8c477wDw3e9+\nl6uuugqAzZs3c9ZZZzFgwAA+85nP8J3vfIcTTjgBgDFjxhARHH300fTv358HHnigw5+1qzhAzKzH\nmTlzJo8//jivvfYaK1eu5Prrrwd23NKfNWsWDz/8MH/+85+57777OPDAA/n1r3/Nli1b+OY3v9k0\n39NPP82qVauYP38+1113HStXrqRPnz7U1NSwcOFCAJ588klGjBjB008/DSTHKxqHLbnkkkvo168f\nmzZt4p577mH69OlNtTQuX19fz5YtW/jKV77SKZ+1KzhAzKzHufzyy9l///3ZZ599uPbaa5k5c2bZ\n+a688kr2339/+vTp09TW/CI7SdTV1bH77rtz9NFHc8wxx/DCCy8AcOKJJ7Jw4UK2bdvGsmXLuOKK\nK1i4cCHvv/8+ixcv5sQTT2T79u388pe/5LrrrqNPnz6MGjWKCRMm7FBL3gszm3/W+++v7PGoLAeI\nmfU4w4YNa5oePnw4b7zxRpvztWbw4MFN03vttVdTN9WYMWP47W9/y/PPP8/RRx/NKaecQqlU4pln\nnuGQQw5hn3324c0332Tbtm0fea9sV1pHNf+sf/jDHzpt3W1xgJhZj7Nu3bqm6TVr1rD//vuXna95\nl9bOHsw+/vjjWblyJQ899BBjxozh8MMPZ+3atcybN48xY8YA8IlPfILevXuzfv36svV1VHs/ayU4\nQMysx7n99tvZsGEDmzdv5oYbbmDcuHFA291EQ4YM4fXXX/9IW2vL7Lnnnhx33HHcfvvtTYFx/PHH\n85Of/KTpea9evRg7dix1dXW89957vPzyy8yYMaPN922vlj5rlyj6NooVuC1jmFllVfPf2ciRI+PG\nG2+MI444IgYOHBhf/epX47333otSqRQHHHDAR+Z74oknPrLsnDlz4sADD4yBAwfGzTffHKtXr45e\nvXrFtm3bmuY56aSTYtq0aU3PJ02aFHvvvXd88MEHERFx2223Ra9evWLTpk1N87z55ptx5plnxoAB\nA6KmpiYmTpwYJ598ctPrd955Z+y3334xcODAeOCBB1r8bOU+Q7nP2pqW/u/S9p36vvVovGa20zwa\nb8dMnDiRhoYG7r777i5/b4/Ga2bWjaxcuZL6+noguW5j2rRpjB07tuCqOs4BYmZWYW+//TZjx46l\nb9++jB8/nquvvpqzzjqr7LxTp06lX79+9O/f/yOPM888s4urbpu7sMxsp7kLq/tyF5aZmRXOAWJm\nZrlUNEAk9ZH0rKQlkuolTU7bB0p6TNJKSY9KGpBZZpKkVZJWSDo10z5a0jJJr0i6pZJ1m5lZ2yp6\nP5CIeF/SSRHxrqTdgKclPQz8AzA/Im6S9C1gEjBR0hHAecAoYBgwX9Ih6UGNHwMXR8RiSfMknRYR\nj1ayfrOd0dF7YnTGPS+6yvDhw7vtEOS7uuHDh3fauip+Q6mIeDed7JO+XwDnAGPS9ulACZgInA3M\nioitwGpJq4AaSWuAfhGxOF1mBnAu4AAxK8Dq1auLLsGqQMWPgUjqJWkJsBF4PA2BwRHRABARG4FB\n6exDgewgMRvStqHA+kz7+rTNzMwK0hV7INuBT0rqDzwk6UiSvZCPzNaZ71lXV9c0XVtb2zQmv5mZ\nJUqlEqVSqUPr6LJ7okfEFkkl4HSgQdLgiGiQNATYlM62AciOczwsbWupvaxsgJiZ2Y6ab1xPmTJl\np9dR6bOwPt54hpWkPYFTgBXAXOCidLYJwJx0ei4wTtLukkYCBwOL0m6utyTVKDlyd2FmGTMzK0Cl\n90D2A6ZL6kUSVv8WEfMkPQPMlvQ1YA3JmVdExHJJs4HlwIfAJZnLyi8F7gH2AOZFxCMVrt3MzFpR\n6dN464HRZdo3Aye3sMxUYGqZ9ueAozq7RjMzy8dXopuZWS4OEDMzy8UBYmZmuThAzMwsFweImZnl\n4gAxM7NcHCBmZpaLA8TMzHJxgJiZWS4OEDMzy8UBYmZmuThAzMwsFweImZnl4gAxM7NcHCBmZpaL\nA8TMzHJxgJiZWS4OEDMzy8UBYmZmuThAzMwsFweImZnl4gAxM7NcHCBmZpZLRQNE0jBJCyS9JKle\n0uVp+2RJ6yU9nz5OzywzSdIqSSsknZppHy1pmaRXJN1SybrNzKxtvSu8/q3AVRGxVFJf4DlJj6ev\n/TAifpidWdIo4DxgFDAMmC/pkIgI4MfAxRGxWNI8SadFxKMVrt/MzFpQ0T2QiNgYEUvT6XeAFcDQ\n9GWVWeQcYFZEbI2I1cAqoEbSEKBfRCxO55sBnFvJ2s3MrHVddgxE0gjgWODZtOkySUsl3SVpQNo2\nFFiXWWxD2jYUWJ9pX89fg8jMzApQ6S4sANLuqweBKyPiHUl3ANdFREi6HrgZ+HpnvV9dXV3TdG1t\nLbW1tZ21ajOzHqFUKlEqlTq0jooHiKTeJOHxi4iYAxARb2Zm+Rnwq3R6A3BA5rVhaVtL7WVlA8TM\nzHbUfON6ypQpO72OrujC+jmwPCJubWxIj2k0Ggu8mE7PBcZJ2l3SSOBgYFFEbATeklQjScCFwJwu\nqN3MzFpQ0T0QSZ8HLgDqJS0BArgGOF/SscB2YDXwDYCIWC5pNrAc+BC4JD0DC+BS4B5gD2BeRDxS\nydrNzKx1FQ2QiHga2K3MSy1++UfEVGBqmfbngKM6rzozM+sIX4luZma5OEDMzCwXB4iZmeXiADEz\ns1wcIGZmlosDxMzMcnGAmJlZLg4QMzPLxQFiZma5OEDMzCwXB4iZmeXiADEzs1wcIGZmlkuX3JHQ\nrFpddv39HV7Hbd8e3wmVmHU/3gMxM7NcHCBmZpaLA8TMzHJxgJiZWS4OEDMzy8UBYmZmuThAzMws\nFweImZnl4gAxM7NcKhogkoZJWiDpJUn1kq5I2wdKekzSSkmPShqQWWaSpFWSVkg6NdM+WtIySa9I\nuqWSdZuZWdsqvQeyFbgqIo4EPgdcKulwYCIwPyIOAxYAkwAkHQGcB4wCzgDukKR0XT8GLo6IQ4FD\nJZ1W4drNzKwVFQ2QiNgYEUvT6XeAFcAw4BxgejrbdODcdPpsYFZEbI2I1cAqoEbSEKBfRCxO55uR\nWcbMzArQZcdAJI0AjgWeAQZHRAMkIQMMSmcbCqzLLLYhbRsKrM+0r0/bzMysIF0yGq+kvsCDwJUR\n8Y6kaDZL8+cdUldX1zRdW1tLbW1tZ67ezKzbK5VKlEqlDq2j4gEiqTdJePwiIuakzQ2SBkdEQ9o9\ntSlt3wAckFl8WNrWUntZ2QAxM7MdNd+4njJlyk6voyu6sH4OLI+IWzNtc4GL0ukJwJxM+zhJu0sa\nCRwMLEq7ud6SVJMeVL8ws4yZmRWgonsgkj4PXADUS1pC0lV1DfB9YLakrwFrSM68IiKWS5oNLAc+\nBC6JiMburUuBe4A9gHkR8Uglazczs9ZVNEAi4mlgtxZePrmFZaYCU8u0Pwcc1XnVmZlZR/hKdDMz\ny8UBYmZmuXTJabxm1n6XXX9/h9dx27fHd0IlZq3zHoiZmeXSaoBIuiczPaHi1ZiZWbfR1h7IMZnp\nKytZiJmZdS9tBUinDjFiZmY9R1sH0YdJ+hGgzHSTiLiiYpWZmVlVaytArs5M/66ShZiZWffSaoBE\nxPTWXjczs11XqwEiaW5rr0fE2Z1bjpmZdRdtdWF9juQGT/cDz5IcCzEzM2szQIYApwDjgfOB3wD3\nR8RLlS7MzMyqW6un8UbEtoh4JCImAJ8FXgVKki7rkurMzKxqtTkWlqQ+wJkkeyEjgB8BD1W2LDMz\nq3ZtHUSfAfwdMA+YEhEvdklVZmZW9draA/lH4C8kw5hcKanxynQBERH9K1mcmZlVr7auA/FovWZm\nVlZbXVh7AP8LOBhYBvw8IrZ2RWFmZlbd2trDmA58CqgHvgzcXPGKzMysW2jrGMgREXEUgKRpwKLK\nl2RmZt1BW3sgHzZOuOvKzMyy2toDOUbSlnRawJ7pc5+FZWa2i2vrSvTdIqJ/+ugXEb0z022Gh6Rp\nkhokLcu0TZa0XtLz6eP0zGuTJK2StELSqZn20ZKWSXpF0i15P6yZmXWeSp+mezdwWpn2H0bE6PTx\nCICkUcB5wCjgDOAOSY2DN/4YuDgiDgUOlVRunWZm1oUqGiAR8RTwpzIvlRvV9xxgVkRsjYjVwCqg\nRtIQoF9ELE7nmwGcW4l6zcys/Yq6UPAySUsl3SVpQNo2lGTo+EYb0rahwPpM+/q0zczMCtTmYIoV\ncAdwXUSEpOtJri35eme+QV1dXdN0bW0ttbW1nbl6M7Nur1QqUSqVOrSOLg+QiHgz8/RnwK/S6Q3A\nAZnXhqVtLbW3KBsgZma2o+Yb11OmTNnpdXRFF5bIHPNIj2k0Ggs0jvA7FxgnaXdJI0mGT1kUERuB\ntyTVpAfVLwTmdEHdZmbWiorugUiaCdQC+0paC0wGTpJ0LLAdWA18AyAilkuaDSwnuYDxkohoHP33\nUuAeYA9gXuOZW2ZmVpyKBkhEnF+m+e5W5p8KTC3T/hxwVCeWZmZmHeTh2s3MLBcHiJmZ5eIAMTOz\nXBwgZmaWiwPEzMxycYCYmVkuDhAzM8vFAWJmZrk4QMzMLBcHiJmZ5eIAMTOzXBwgZmaWiwPEzMxy\ncYCYmVkuDhAzM8vFAWJmZrk4QMzMLBcHiJmZ5eIAMTOzXBwgZmaWiwPEzMxycYCYmVkuDhAzM8ul\nogEiaZqkBknLMm0DJT0maaWkRyUNyLw2SdIqSSsknZppHy1pmaRXJN1SyZrNzKx9Kr0HcjdwWrO2\nicD8iDgMWABMApB0BHAeMAo4A7hDktJlfgxcHBGHAodKar5OMzPrYhUNkIh4CvhTs+ZzgOnp9HTg\n3HT6bGBWRGyNiNXAKqBG0hCgX0QsTuebkVnGzMwKUsQxkEER0QAQERuBQWn7UGBdZr4NadtQYH2m\nfX3aZmZmBepddAFAdPYK6+rqmqZra2upra3t7LcwM+vWSqUSpVKpQ+soIkAaJA2OiIa0e2pT2r4B\nOCAz37C0raX2FmUDxMzMdtR843rKlCk7vY6u6MJS+mg0F7gonZ4AzMm0j5O0u6SRwMHAorSb6y1J\nNelB9Qszy5iZWUEqugciaSZQC+wraS0wGbgReEDS14A1JGdeERHLJc0GlgMfApdERGP31qXAPcAe\nwLyIeKSSdZuZWdsqGiARcX4LL53cwvxTgall2p8DjurE0szMrIN8JbqZmeXiADEzs1wcIGZmlosD\nxMzMcnGAmJlZLg4QMzPLxQFiZma5OEDMzCwXB4iZmeXiADEzs1wcIGZmlosDxMzMcnGAmJlZLg4Q\nMzPLpRpuaWu20y67/v4OLX/bt8d3UiVmuy7vgZiZWS4OEDMzy8UBYmZmuThAzMwsFx9EN+vBOnqy\nAfiEA2uZ90DMzCwXB4iZmeXiADEzs1wKCxBJqyW9IGmJpEVp20BJj0laKelRSQMy80+StErSCkmn\nFlW3mZklitwD2Q7URsQnI6ImbZsIzI+Iw4AFwCQASUcA5wGjgDOAOySpgJrNzCxVZICozPufA0xP\np6cD56bTZwOzImJrRKwGVgE1mJlZYYoMkAAel7RY0tfTtsER0QAQERuBQWn7UGBdZtkNaZuZmRWk\nyOtAPh8Rb0j6BPCYpJUkoZLV/Hm71NXVNU3X1tZSW1ubt0Yzsx6pVCpRKpU6tI7CAiQi3kj/fVPS\nf5B0STVIGhwRDZKGAJvS2TcAB2QWH5a2lZUNEDMz21HzjespU6bs9DoK6cKStJekvun03sCpQD0w\nF7gonW0CMCednguMk7S7pJHAwcCiLi3azMw+oqg9kMHAQ5IireG+iHhM0u+A2ZK+BqwhOfOKiFgu\naTawHPgQuCQicnVvmZlZ5ygkQCLi98CxZdo3Aye3sMxUYGqFSzMzs3bylehmZpaLA8TMzHJxgJiZ\nWS4OEDMzy8UBYmZmuThAzMwsFweImZnl4gAxM7NcHCBmZpaLA8TMzHJxgJiZWS4OEDMzy6XIG0rZ\nLuay6+/v8Dpu+/b4TqjEzDqD90DMzCwXB4iZmeXiADEzs1wcIGZmlosDxMzMcvFZWGbWLh09i85n\n0PU83gMxM7NcHCBmZpaLu7CsVb74z8xa0q32QCSdLullSa9I+lbR9ZiZ7cq6zR6IpF7AbcCXgD8A\niyXNiYiXi62sbaVSidra2i59z7b2HDb8fjlDRx7R4utF7DW0VVNRqrEu19Q+RfzttaUaa8qr2wQI\nUAOsiog1AJJmAecAPSZAurK7qBr/2KuxJqjOulxT+1Tjl3U11pRXdwqQocC6zPP1JKFiZt2Ij6v1\nHN0pQKpWW38Qi56s54+tzOM/BrN8/LdXLEVE0TW0i6TPAnURcXr6fCIQEfH9ZvN1jw9kZlZlIkI7\nM393CpDdgJUkB9HfABYB4yNiRaGFmZntorpNF1ZEbJN0GfAYyenH0xweZmbF6TZ7IGZmVl261YWE\n7SHpJkkrJC2V9O+S+hdYS9Vd+ChpmKQFkl6SVC/piqJraiSpl6TnJc0tuhYASQMkPZD+Pr0k6TNV\nUNM/SXpR0jJJ90navaA6pklqkLQs0zZQ0mOSVkp6VNKAKqip0O+DcjVlXvtnSdsl/U011CTp8vRn\nVS/pxvasq8cFCEkX15ERcSywCphURBGZCx9PA44Exks6vIhamtkKXBURRwKfAy6tkroArgSWF11E\nxq3AvIgYBRwDFNplKml/4HJgdEQcTdIFPa6gcu4m+d3OmgjMj4jDgAV0/d9euZqK/j4oVxOShgGn\nAGu6uB4oU5OkWuAs4KiIOAr4QXtW1OMCJCLmR8T29OkzwLCCSmm68DEiPgQaL3wsVERsjIil6fQ7\nJF+KQ4utqukP6svAXUXXApBuqZ4QEXcDRMTWiNhScFkAuwF7S+oN7EUyKkOXi4ingD81az4HmJ5O\nTwfOLbqmor8PWvg5Afw/4OqurKVRCzX9b+DGiNiazvPH9qyrxwVIM18DHi7ovctd+Fj4F3WWpBHA\nscCzxVYC/PUPqloOyo0E/ijp7rRb7aeS9iyyoIj4A3AzsBbYAPw5IuYXWVMzgyKiAZINFWBQwfU0\nV+T3QRNJZwPrIqK+6FoyDgVOlPSMpN9K+lR7FuqWASLp8bQPuPFRn/57Vmaea4EPI2JmgaVWLUl9\ngQeBK9M9kSJrORNoSPeMlD6K1hsYDdweEaOBd0m6aAojaR+SrfzhwP5AX0nnF1lTG6plY6Bqvg/S\njZBrgMnZ5oLKyeoNDIyIzwL/F5jd3oW6nYg4pbXXJV1E0h3yxS4pqLwNwIGZ58PStsKl3R8PAr+I\niDlF1wN8Hjhb0peBPYF+kmZExIUF1rSeZCvxd+nzB4GiT4Q4GXg9IjYDSPolcDxQLRtJDZIGR0SD\npCHApqILgqr5Pmj0t8AI4AVJIvleeE5STUQU+fNaB/wSICIWpwf3942I/25toW65B9IaSaeTdIWc\nHRHvF1jKYuBgScPTM2XGAVVxdhHwc2B5RNxadCEAEXFNRBwYEQeR/JwWFBwepF0x6yQdmjZ9ieIP\n8K8FPitpj/TL50sUe2C/+d7iXOCidHoCUMTGyUdqqpLvg6aaIuLFiBgSEQdFxEiSDZVPFhAezf/v\n/oM0YNPf+Y+1FR7QAwME+FegL/B42nd9RxFFRMQ2oPHCx5eAWdVw4aOkzwMXAF+UtCT9GZ1edF1V\n6grgPklLSc7CuqHIYiJiEcme0BLgBZIvgJ8WUYukmcB/AYdKWivpq8CNwCmSGkeMaNepoBWuqdDv\ngxZqygq6uAurhZp+DhwkqZ5kj7ZdG3C+kNDMzHLpiXsgZmbWBRwgZmaWiwPEzMxycYCYmVkuDhAz\nM8vFAWJmZrk4QKwqSdqWnre/VNLvlNzSGEn7SSo7zEJ60eb4zPMJkv61gjV+Q9I/tjFPizVIanVk\nWElPpEPOdDlJkyVd1crrZ0qa0pU1WfVxgFi1+ktEjE6H4b6G9KK0iHgjIs5rPrOSWx6PBJqPDVWx\nC50i4s6IuLc9s7bQfk1LC6TDuiwtepyylkTEb4C/l7RH0bVYcRwgVq2yV+cOABrHfxqeXi3buHU/\nR9ITwHxgKnBCuudyZbrsUEkPK7nJ0fd3eBPpU5L+PZ0+R9K7knpL6iPptbT9oHQdiyUtbBzeJLuV\nLunTkl5I3/umxhrL1HBjOv9UYM90/l+U+fwXkA4Fkn7mFZLulbRc0uzGL25JX0rX8YKkuyR9LG3/\nvdIbFUk6TtJvMzVPUzLi6quSLs/8LK5Na3wSOCzTfoWSG2otTa9iblQC/r78f5/tEiLCDz+q7kFy\n46vnScZ6+hPJeEGQjES7LJ2eQDI+1ID0+RhgbmYdE4BXSYay6AOsBoY2e5/dgFfT6X8hGdr+c8CJ\nwH1p+3zgb9PpGuCJdHoyyc25AOqBmnR6arMay9YAbGnl868G9s585u3AZ9Pn04Cr0vWtzdQ2Hbgi\nnX4d+Jt0+jiS8cUaa36KZCDVfYE/pj+D40iGR+kD9CO5+VLjZ9tAMjYSQP9MjecDtxb9u+JHcQ/v\ngVi1ejeSLqxRwBlAua10gMcj4q1W1vNERLwTyUB6y0m+jJtEMmbZa0ruylgD/JAkiE4A/lPS3iQj\n3j4gaQlwJzA4uw4lt27tG8lYVbDj6Lit1tCCgRHxl8zztRHxTDp9L/AFkr2E1yPitbR9OknwQevj\nK/0mkhtk/TfQkH6eLwAPRcT7EfE2Hx348wVgpqQLgG2Z9k0kw8rbLqpbDuduu5aIeEbSxyV9vMzL\nfynTlpUdgXUb5X/nnyQJqQ9I9jamk3TvXp3++6dI7gnSmta+sFuqobVltrbxfo3HVVpax1b+2kXd\n/DhFe34mWWeSBNPZwLWS/i6Su/ztAbzXxrLWg3kPxKpVdkjuw0l+V9saXvptku6XnfUU8H+A/0q3\nyvcFDouIl9Kt8d9L+h+Zeo7OLpzuAW2R9Om0qb33Kf8gPfhfzkpJB2WeHyjpM+n0+cB/AiuB4Zn5\n/ifJcQmA35N0SwH8Qys1NP6cnwTOTY/99CO5P3bTe0fEQpIbavUn6Y6D5C52L7aybuvhHCBWrfZI\nDw4vAe4HLoyIts6oWgZsT4epv5Idz35qaflnSW6/+mRmPcsyr18AXJweRH6RZEu8ua8Dd0l6nuRe\n5S11q2Vr+ClQ38JB9N8AJ2WerwQulbQc2Af4Sdol9lXgQUkvkOxN3JnOfx3wI0mLaH1vJgAiYgnJ\nXeiWpe+9CJpuPnZvuv7nSI55NN4b/qR0XttFeTh3s04gae/GYxaSvgUMiYh/6sD6hgDTI+I0ScOB\nX0fEUZ1UbodJGkRykkGrdwe1ns3HQMw6x5nphYG9Sc6guqgjK4uIjZJ+lrmQsNq29A4E/rnoIqxY\n3gMxM7NcfAzEzMxycYCYmVkuDhAzM8vFAWJmZrk4QMzMLBcHiJmZ5fL/AQFZ2eAExgtbAAAAAElF\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thinkplot.Hist(pmf)\n", "thinkplot.Config(xlabel='Birth weight (pounds)', ylabel='PMF')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More directly, we can create a Pmf object." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Pmf({1: 0.2, 2: 0.4, 3: 0.2, 5: 0.2})" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf = thinkstats2.Pmf([1, 2, 2, 3, 5])\n", "pmf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Pmf` provides `Prob`, which looks up a value and returns its probability:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.4" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf.Prob(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The bracket operator does the same thing." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.4" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `Incr` method adds to the probability associated with a given values." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.6000000000000001" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf.Incr(2, 0.2)\n", "pmf[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `Mult` method multiplies the probability associated with a value." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.30000000000000004" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf.Mult(2, 0.5)\n", "pmf[2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Total` returns the total probability (which is no longer 1, because we changed one of the probabilities)." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.8999999999999999" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf.Total()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Normalize` divides through by the total probability, making it 1 again." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf.Normalize()\n", "pmf.Total()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the PMF of pregnancy length for live births." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "pmf = thinkstats2.Pmf(live.prglngth, label='prglngth')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's what it looks like plotted with `Hist`, which makes a bar graph." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEPCAYAAABGP2P1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGt5JREFUeJzt3XmYFfWd7/H3pwFxwSUSXABtcQkuo47eEc01ubZ6VUwe\nl+FGB5wniZrkOjeizuQZLzhK6Hh5kuidJGaC3oHYg8uMS5wYxScRMdFjElfcIiqN4oJsosYNN0T8\n3j+qGs7v0DtdnHPoz+t5+umqOnV+51uH5nxO1a/qV4oIzMzM2jRUuwAzM6stDgYzM0s4GMzMLOFg\nMDOzhIPBzMwSDgYzM0sUHgySxkpqlfScpEkdrNMk6QlJT0u6t+iazMysYyryOgZJDcBzwLHAcmAe\nMD4iWsvW2R54ADg+IpZJ+mxEvFFYUWZm1qmi9xjGAM9HxOKIWAPcBJxSsc4ZwC8jYhmAQ8HMrLqK\nDoYRwJKy+aX5snKfA3aUdK+keZK+WnBNZmbWiYHVLoCshkOBY4BtgAclPRgRi6pblplZ/1R0MCwD\ndi+bH5kvK7cUeCMiPgI+kvR74GAgCQZJHtTJzKwXIkI9Wb/oQ0nzgL0lNUraAhgPzK5Y53bgC5IG\nSNoaOBxY0F5jEVG3P1OnTq16Da6/+nX0x/rrufbNof7eKHSPISLWSpoIzCULoZaIWCDpnOzhmBkR\nrZLuAp4C1gIzI+LZIusyM7OOFd7HEBFzgNEVy2ZUzP8z8M9F12JmZl3zlc+bSFNTU7VL2Ciuv7rq\nuf56rh3qv/7eKPQCt74kKeqlVjOzWiGJ6GHncy2crmpmm5E99tiDxYsXV7uMfqexsZGXX365T9ry\nHoOZ9an8G2q1y+h3Onrfe7PH4D4GMzNLOBjMzCzhYDAzs4SDwcysF8466yy++93vFtL2fffdx267\n7VZI293hs5LMrFATp91YaPvTL5lQaPubQkNDA4sWLWLPPfdct0zqUX9x39ZTtVc2M6tRa9eu3aSv\nV80QaI+Dwcz6jVGjRvHDH/6QAw44gKFDh/KNb3yDjz/+eN2hm8svv5xdd92Vs88+G4DLL7+c4cOH\nM3LkSFpaWmhoaODFF1/coN225//4xz9m5513ZsSIEVxzzTXrHn/zzTc56aST2H777Tn88MOZMmUK\nX/ziFwE46qijiAgOOuggtttuO2655RYgGzS0o/aK5mAws37lhhtu4O677+aFF15g4cKFTJs2DYBX\nX32Vt99+m1deeYWZM2cyZ84crrjiCu655x4WLVpEqVTq9Jv9q6++yqpVq1i+fDlXX3015557Lu+8\n8w4A3/72t9l222157bXXuOaaa7j22mvXtXXfffcBMH/+fN59911OO+20LtsrmoPBzPqV8847j+HD\nh7PDDjtw8cUXc+ONWR/IgAED+N73vsegQYMYPHgwt9xyC2eddRb77rsvW265Jc3NzZ22u8UWWzBl\nyhQGDBjAiSeeyJAhQ1i4cCGffvopt956K5deeimDBw9mv/324+tf//oGz6+8OK2j9jYFB4OZ9Ssj\nR45cN93Y2Mjy5csBGDZsGIMGDVr32PLly5Mzg3bbbbdOr+geOnQoDQ3rP1K33npr3nvvPV5//XXW\nrl2bvG53zjjqqL1NwcFgZv3KkiXrb0O/ePFihg8fDmzYAbzrrruydOnSdfOvvPJKrzqJhw0bxsCB\nA5O2ymuoRQ4GM+tXrrzySpYtW8abb77J97//fcaPHw9seCjn9NNPZ9asWbS2tvLBBx+s64voqYaG\nBsaNG0dzczMffvghra2tXHfddck6u+yyS7ud2tXi6xjMrFC1dp3BGWecwfHHH8+KFSs49dRTufji\ni3n44Yc32BsYO3Ys559/PkcffTQDBgxgypQpXH/99QwePLhbr1Pe3s9+9jPOPPNMdt11V0aPHs0Z\nZ5zBo48+uu7x5uZmvva1r/HRRx8xc+ZMhg0b1ml7RfPoqmbWp2p5dNVRo0bR0tLCMccc0+Pntra2\ncuCBB7J69erk2H9vTJ48mZUrVzJr1qyNaqecR1c1M9sEbrvtNj7++GPeeustJk2axMknn9yrUFi4\ncCHz588H4JFHHqGlpYVx48b1dbl9xsFgZv1GTw/HzJgxg5122ol99tmHQYMGcdVVV/XqdVetWsW4\nceMYMmQIEyZM4MILL+Skk07qVVubgg8lmVmfquVDSZszH0oyM7PCOBjMzCzhYDAzs4SvYzCzPtXY\n2Fhzw0j3B42NjX3Wljufzcw2Y+58NjOzjeZgMDOzROF9DJLGAleQhVBLRFxW8fhRwO1A2whSt0ZE\n70arMrOqaO++zrU2RpJ1X6HBIKkBmA4cCywH5km6PSJaK1b9fUScXGQtZmbWPUUfShoDPB8RiyNi\nDXATcEo76/kUBjOzGlF0MIwAyu9IsTRfVunzkp6U9GtJ+xdck5mZdaIWrmN4DNg9Ij6QdCJwG/C5\nKtdkZtZvFR0My4Ddy+ZH5svWiYj3yqbvlHSVpB0j4s3Kxspvxt3U1ERTU1Nf12tmVtdKpRKlUmmj\n2ij0AjdJA4CFZJ3PK4BHgAkRsaBsnZ0jYmU+PQb4RUTs0U5bvsDNrEb5rKTa1ZsL3ArdY4iItZIm\nAnNZf7rqAknnZA/HTOArkv4XsAb4EPibImsyM7POFd7HEBFzgNEVy2aUTV8JXFl0HWZm1j2+8tnM\nzBIOBjMzSzgYzMws4WAwM7OEg8HMzBIOBjMzSzgYzMws4WAwM7OEg8HMzBIOBjMzSzgYzMws4WAw\nM7OEg8HMzBIOBjMzSzgYzMws4WAwM7OEg8HMzBIOBjMzSzgYzMws4WAwM7OEg8HMzBIOBjMzSzgY\nzMws4WAwM7OEg8HMzBIOBjMzSzgYzMws4WAwM7OEg8HMzBKFB4OksZJaJT0naVIn6x0maY2kcUXX\nZGZmHSs0GCQ1ANOBE4ADgAmS9u1gvR8CdxVZj5mZda3oPYYxwPMRsTgi1gA3Aae0s955wH8CrxVc\nj5mZdaHoYBgBLCmbX5ovW0fScODUiPh/gAqux8zMujCw2gUAVwDlfQ8dhkNzc/O66aamJpqamgor\nysysHpVKJUql0ka1oYjom2raa1w6AmiOiLH5/GQgIuKysnVebJsEPgu8D/zPiJhd0VYUWauZ9d7E\naTdusGz6JROqUIlVkkRE9OhoTNF7DPOAvSU1AiuA8UDy1xIRe7ZNS5oF3FEZCmZmtukUGgwRsVbS\nRGAuWX9GS0QskHRO9nDMrHxKkfWYmVnXCu9jiIg5wOiKZTM6WPfsousxM7PO+cpnMzNLOBjMzCzh\nYDAzs4SDwczMEg4GMzNLOBjMzCzhYDAzs4SDwczMEg4GMzNLOBjMzCzhYDAzs4SDwczMEg4GMzNL\nOBjMzCzhYDAzs4SDwczMEg4GMzNLOBjMzCzhYDAzs4SDwczMEg4GMzNLOBjMzCzhYDAzs4SDwczM\nEp0Gg6TT8t+jNk05ZmZWbV3tMVyU//5l0YWYmVltGNjF43+WNBcYJWl25YMRcXIxZZmZWbV0FQxf\nBg4Frgd+VHw5ZmZWbZ0GQ0R8DDwk6b9GxOu9eQFJY4EryA5btUTEZRWPnwz8H+BTYA3wDxFxf29e\ny8zMNl5XewxtGiXNBBrLnxMRB3X2JEkNwHTgWGA5ME/S7RHRWrbabyNidr7+gcAvgP26vwlmZtaX\nuhsM/wFcCMwn+2bfXWOA5yNiMYCkm4BTgHXBEBEflK0/pIftm5lZH+tuMLze9q2+h0YAS8rml5KF\nRULSqcAPgGFk/RpmZlYl3Q2GqZKuBn4HrG5bGBG39kUREXEbcJukLwDTgOPaW6+5uXnddFNTE01N\nTX3x8mZmm41SqUSpVNqoNhQRXa8k/TuwL/AM6w/1RESc3cXzjgCaI2JsPj85f95lnTznBeCwiHiz\nYnl0p1Yz2/QmTrtxg2XTL5lQhUqskiQiQj15Tnf3GA6LiNG9qGkesLekRmAFMB5I/lok7RURL+TT\nhwJbVIaCmZltOt0Nhgck7R8Rz/ak8YhYK2kiMJf1p6sukHRO9nDMBP6HpK8BHwMfAqf35DXMzKxv\ndTcYjgCelPQSWR+DyD7YOz1dlWylOcDoimUzyqYvBy7vdsVmZlao7gbD2EKrMDOzmtFpMEjaEvg7\nYG+yaxhaIuKTTVGYmZlVR1ejq14L/BVZKJyIx0syM9vsdXUoaf+IOBBAUgvwSPElmZlZNXW1x7Cm\nbcKHkMzM+oeu9hgOlvRuPi1gq3y+7ayk7QqtzszMNrmuht0esKkKMTOz2tDVoSQzM+tnHAxmZpZw\nMJiZWcLBYGZmCQeDmZklHAxmZpZwMJiZWcLBYGZmCQeDmZklHAxmZpZwMJiZWcLBYGZmCQeDmZkl\nHAxmZpZwMJiZWcLBYGZmCQeDmZklHAxmZpZwMJiZWcLBYGZmCQeDmZklCg8GSWMltUp6TtKkdh4/\nQ9Kf8p8/Sjqw6JrMzKxjhQaDpAZgOnACcAAwQdK+Fau9CPy3iDgYmAb8vMiazMysc0XvMYwBno+I\nxRGxBrgJOKV8hYh4KCLeyWcfAkYUXJOZmXWi6GAYASwpm19K5x/83wTuLLQiMzPr1MBqF9BG0tHA\nWcAXOlqnubl53XRTUxNNTU2F12VmVk9KpRKlUmmj2lBE9E017TUuHQE0R8TYfH4yEBFxWcV6BwG/\nBMZGxAsdtBVF1mpmvTdx2o0bLJt+yYQqVGKVJBER6slzij6UNA/YW1KjpC2A8cDs8hUk7U4WCl/t\nKBTMzGzTKfRQUkSslTQRmEsWQi0RsUDSOdnDMROYAuwIXCVJwJqIGFNkXWZm1rHC+xgiYg4wumLZ\njLLpbwHfKroOMzPrHl/5bGZmCQeDmZklHAxmZpZwMJiZWcLBYGZmCQeDmZklHAxmZpZwMJiZWcLB\nYGZmCQeDmZklHAxmZpZwMJiZWcLBYGZmCQeDmZklHAxmZpZwMJiZWcLBYGZmCQeDmZklHAxmZpZw\nMJiZWcLBYGZmCQeDmZklHAxmZpZwMJiZWWJgtQsws83TxGk3JvPTL5lQpUqsp7zHYGZmCQeDmZkl\nHAxmZpYoPBgkjZXUKuk5SZPaeXy0pAckfSTpO0XXY2ZmnSu081lSAzAdOBZYDsyTdHtEtJat9mfg\nPODUImsxM7PuKXqPYQzwfEQsjog1wE3AKeUrRMQbEfEY8EnBtZiZWTcUHQwjgCVl80vzZWZmVqPc\n+WxmZomiL3BbBuxeNj8yX9Yrzc3N66abmppoamrqbVNmZpulUqlEqVTaqDYUEX1TTXuNSwOAhWSd\nzyuAR4AJEbGgnXWnAu9FxI86aCuKrNXMeq/yKuf2+Mrn6pBERKgnzyl0jyEi1kqaCMwlO2zVEhEL\nJJ2TPRwzJe0MPApsC3wq6QJg/4h4r8jazMysfYWPlRQRc4DRFctmlE2vBHYrug4zM+sedz6bmVnC\nwWBmZgkHg5mZJRwMZmaWcDCYmVnCwWBmZgkHg5mZJRwMZmaWKPwCNzPb/HRnCAyrXw4GM9tkKgPF\n4yfVJh9KMjOzhIPBzMwSDgYzM0s4GMzMLOHOZzPrlDuM+x/vMZiZWcLBYGZmCQeDmZklHAxmZpZw\n57OZVZU7t2uPg8Gsn+rOeEf+kO6ffCjJzMwSDgYzM0s4GMzMLOFgMDOzhIPBzMwSDgYzM0v4dFWz\nGtXe6aT95fRRX9tQXYUHg6SxwBVkeyctEXFZO+v8C3Ai8D5wZkQ8WXRdZpsLf4haXyv0UJKkBmA6\ncAJwADBB0r4V65wI7BUR+wDnAP9aZE3VUiqVql3CRnH91bXspWerXUKv1XPtUP9/O71R9B7DGOD5\niFgMIOkm4BSgtWydU4DrACLiYUnbS9o5IlYWXNsmVSqVaGpqqnYZveb6q2vZS88yYtT+vX5+d65y\nLsrG1l5t9f630xtFB8MIYEnZ/FKysOhsnWX5ss0qGKx/6G6/QNGHf6oZBEXoz/0t1eDOZ7NuqoUP\nc/cnrOf3ojiKiOIal44AmiNibD4/GYjyDmhJ/wrcGxE35/OtwFGVh5IkFVeomdlmLCLUk/WL3mOY\nB+wtqRFYAYwHKmN9NnAucHMeJG+317/Q0w0zM7PeKTQYImKtpInAXNafrrpA0jnZwzEzIn4j6UuS\nFpGdrnpWkTWZmVnnCj2UZGZm9afmh8SQ9BVJT0taK+nQiscukvS8pAWSjq9WjZ2RNFZSq6TnJE2q\ndj3dIalF0kpJT5Ut+4ykuZIWSrpL0vbVrLEjkkZKukfSM5LmSzo/X14v9Q+W9LCkJ/L6p+bL66J+\nyK5fkvS4pNn5fN3UDiDpZUl/yv8NHsmX1cU25Kf735J/Jj4j6fDe1F7zwQDMB/4auK98oaT9gNOB\n/ciumr5KUk31Q3TnAr8aNYus5nKTgd9GxGjgHuCiTV5V93wCfCciDgA+D5ybv+d1UX9ErAaOjohD\ngL8ETpQ0hjqpP3cBUH5VWz3VDvAp0BQRh0RE2+n19bINPwV+ExH7AQeTXTPW89ojoi5+gHuBQ8vm\nJwOTyubvBA6vdp0VNR8B3NlRzbX8AzQCT5XNtwI759O7AK3VrrGb23Eb8N/rsX5ga+BR4LB6qR8Y\nCdwNNAGz6/FvB3gJGFqxrOa3AdgOeKGd5T2uvR72GDrS0YVxtaS9C/xqrcbu2inys8Ui4lVgpyrX\n0yVJe5B9636I7D9GXdSfH4p5AngVuDsi5lE/9f8EuBAo77ysl9rbBHC3pHmSvpkvq4dtGAW8IWlW\nfihvpqSt6UXtNXGBm6S7gZ3LF5H941wcEXdUpyrrQk2ftSBpCPCfwAUR8V4718HUbP0R8SlwiKTt\ngF9JOoAN6625+iV9GVgZEU9Kaupk1ZqrvcKREbFC0jBgrqSF1MH7T/Z5fihwbkQ8KuknZEcpelx7\nTQRDRBzXi6ctA3Yrmx+ZL6sly4Ddy+ZrscbuWtk2hpWkXYDXql1QRyQNJAuF6yPi9nxx3dTfJiLe\nlVQCxlIf9R8JnCzpS8BWwLaSrgderYPa14mIFfnv1yXdRjaMTz28/0uBJRHxaD7/S7Jg6HHt9XYo\nqbxzeTYwXtIWkkYBewOPVKesDq27wE/SFmQX+M2uck3dJTZ8v8/Mp78O3F75hBryb8CzEfHTsmV1\nUb+kz7adNSJpK+A4YAF1UH9E/FNE7B4Re5L9rd8TEV8F7qDGa28jaet8bxNJ2wDHk50AUw/v/0pg\niaTP5YuOBZ6hN7VXu8OkGx0qp5Idp/+Q7Orp8s7ci4BFZP9xjq92rR3UPxZYCDwPTK52Pd2s+QZg\nObAaeIXsosPPAL/Nt2UusEO16+yg9iOBtcCTwBPA4/m/wY51Uv+Bec1PAk+RHU6lXuov246jWN/5\nXDe1kx2nb/vbmd/2f7ZetoHsTKR5+TbcCmzfm9p9gZuZmSXq7VCSmZkVzMFgZmYJB4OZmSUcDGZm\nlnAwmJlZwsFgZmYJB4NttHxI9MfzYaJvlrRltWvqS5JWFdDmwZJOLJufKuk73Xzu79ouwiqgrntV\nMbx9J+v+X0lHF1GHVZeDwfrC+xFxaEQcCKwB/q5yhVobEr2HirjY5y+BL/X0SflwE09GxHt9X1KP\n/YxsyAXbzDgYrK/9gfXDgLRKulbSfGCkpOMkPSDp0XzPYmvIPuzyG4vMk/RTSXfky6cqu2nQvZIW\nSTqv7UUk/Spff37ZCJhIWiVpmqQn89cali/fSdKt+fInJB0h6XuSLih77rTy12iPpH+U9EjeTttN\ndBolPZuPZvm0pDmSBuePHabspi+PS7o8r3cQcClwer78tLz5A9rb1gp/Sz6kQV7LxHz6J5J+l08f\nLenf8+njO3jPD5VUyt/DOyWVD2KJMrMkXapstNdZkp7Kt+UCgIh4BdhRUi2ONGobo9qXcPun/n+A\nVfnvgWT3PziH7H4Oa4HD8seGkt1saat8/n8DlwCDyYbd2D1ffgPrh1KYCvwxb3co8AYwIH9sh/z3\nlmRDF3wmn/8U+FI+fRnwT/n0TcD5+bSAbfMaHytbtqitnYrtezf/fRwwo2z9O4Av5O18DByYP3Yz\ncEY+PR8Yk0//gPweF2Rj1vxL2Wt0uK0VtbwMbJNPHw7cnE//nmx48QHAd4FvdfKeDwTuJ7/nANkN\nr1ry6Xvzdm8ALsqXHQrMLathu7LpmcBfV/tv0D99+1MTo6ta3dtK0uP59B+AFrL7Trwc2b0EILtp\n0f7A/flhpUHAg8C+ZDcXeSVf70ayD7U2v46IT4A/S1pJNjz7cuDvJZ2arzMS2IdsEMXVEfGbfPlj\nZDfpATgG+CpAZJ9oq4BVkt6QdDDZDUwej4i3OtnO44Hj8m0VsE3+ukuAlyJiftnr7pEPhjckItoG\nd7wB+HIn7Xe0reU+ExHvl73Of5G0Ldm4Vo+R3dTni8B5dPyejwb+guyeAyI7clD+OjPIAucH+fyL\nwChJPwV+QzbeTpvXgOGdbJPVIQeD9YUPIqLyftwA75cvIvvW+bcV6x1MOoprpdVl058CAyUdRfZB\nf3hErJZ0L9meA2R9HG3Wsv5vvKN+gqvJBgnchWxU1s4I+EFE/LxiGxor6lxbVk9P+lY22NZ21vmk\nbSIiPpH0MtnImfeTDbp3NLBXRLRK2pv23/O/AJ6OiCM7qON+4GhJP46I1RHxdv7vdALZ3uDpwDfy\ndbckG+DSNiPuY7C+0NGHX/nyh4AjJe0F64Y33odsxMdRktruW/E33Xi97YG38lDYl+ybcVe1/A74\ndv7aDcpuggPZoa+xwF8Bd3WxHXcBZysbjhlJw9v6MNp73Yh4B3hX0mH5ovFlD68iuxVjTy2UtGfZ\n/B+AfyQ7lPRHso7/J/LHOnvPh0k6Il8+UNL+ZW22kN0q9xeSBkgaSnZY61fAFOCQsnU/Bzzdi+2w\nGuZgsL7Q0bfxdcsj4g2yb7Y3SvoT8AAwOiI+IvvAvkvSPOBd4J0u2psDDJL0DPB9ssMjXdXy92Tf\ngp8iu4/yfnlda8iOq/8iP8TU4etGxN1kh4MezNu5BRhSvk47vglcnR9+2rps2+4F9i/rfO7uXbZ+\nTbZX0OYPZHs7D0bEa2Tf3n+f19vRe74G+ApwmaS2IaY/X7GtP8mXX0d2WLCk7Haj15OfiaTshkh7\nkb2fthnxsNtWdZK2aTtuLulK4LlIb7JT5Gs3kB2b/0pEvFBA++XbNgnYJSL+YSPa2wW4NiJO6Ksa\nN6KWU4FDImJqtWuxvuU9BqsF38pPIX2G7PDKjE3xopL2I7uB0t1FhELuy/m2zSc7g2naxjQW2c3c\nf66CLnDroQHAj6pdhPU97zGYmVnCewxmZpZwMJiZWcLBYGZmCQeDmZklHAxmZpZwMJiZWeL/A54X\nf1tRx/AaAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thinkplot.Hist(pmf)\n", "thinkplot.Config(xlabel='Pregnancy length (weeks)', ylabel='Pmf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's what it looks like plotted with `Pmf`, which makes a step function." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thinkplot.Pmf(pmf)\n", "thinkplot.Config(xlabel='Pregnancy length (weeks)', ylabel='Pmf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use `MakeFrames` to return DataFrames for all live births, first babies, and others." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "live, firsts, others = first.MakeFrames()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here are the distributions of pregnancy length." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "first_pmf = thinkstats2.Pmf(firsts.prglngth, label='firsts')\n", "other_pmf = thinkstats2.Pmf(others.prglngth, label='others')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And here's the code that replicates one of the figures in the chapter." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAs4AAAF/CAYAAABZkk9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmUVOW57/Hf0wMKKqQbPBhkMhjEgUswimaBsRGjaIJk\nqVfBAYPGZe4NuSauEzUhCZCARo5Rj1eTCMEEs+KUm3OiOEHioQ1Giahg0IAoaiOgHgaNAgk0zXP/\nqN1t2XZVvzXsGrq+n7VquWvXrl1Pbcqnf/32W3ubuwsAAABAelXFLgAAAAAoBwRnAAAAIADBGQAA\nAAhAcAYAAAACEJwBAACAAARnAAAAIEDswdnMxpvZWjNbZ2bXpNimwcxWmtmLZrY07poAAB2jZwNA\nahbneZzNrErSOknjJG2WtELSJHdfm7RNL0lPSTrN3TeZWR933xpbUQCADtGzASC9uEecR0l6xd2b\n3L1Z0r2SJrbb5gJJv3P3TZJEAwaAoqFnA0AacQfnQyW9mXR/Y7Qu2VBJ9Wa21MxWmNnFMdcEAOgY\nPRsA0qgpdgFK1HCspFMkHSDpaTN72t1fLW5ZAIAO0LMBVKy4g/MmSQOT7veP1iXbKGmru/9T0j/N\n7E+SRkj6SBM2s/gmYwNAAbi7FbuGTtCzASDSUc+Oe6rGCkmHm9kgM+smaZKkB9tt84CkMWZWbWY9\nJJ0gaU1HO3P3sr3NmDGj6DWU843jx/Er9i3XY1gm6Nl5+vfmxjHk+JX38Usl1hFnd28xs2mSligR\n0he4+xozuyLxsM9z97VmtljSXyW1SJrn7n+Lsy4AwMfRswEgvdjnOLv7Y5KOaLfujnb3b5R0Y9y1\nAADSo2cDQGpcObBAGhoail1CWeP45YbjlzuOYWXh3zt3HMPccPxyE9fxi/UCKPlkZl4utQJAe2Ym\nL/0vB+YNPRtAOUvVs0vhdHQASsDgwYPV1NRU7DLK3qBBg/TGG28UuwwAXRw9Oz8y7dmMOAOQ1Pbb\ndbHLKHupjiMjzgDyiZ6dH5n2bOY4AwAAAAEIzgAAAEAAgjMAAAAQgOAMoCysW7dOI0eOVM+ePVVT\nU6M5c+YUuyQAQApdtWdzVg0AKU2bfU+s+7/te5ODt507d65OOeUUrVy5MqfXPOyww7RgwQKdcsop\nOe0HAJBaV+3ZjDgDKAtNTU06+uijO92upaWlANUAANLpqj2b4Ayg5I0bN05Lly7VtGnT1LNnT114\n4YX6wQ9+IEl64oknNGDAAM2dO1ef/OQndemll2rbtm2aMGGC6urq1Lt3b5188smSpClTpmjDhg2a\nMGGCevbsqRtvvFG7d+/WRRddpD59+qiurk4nnHCCtmzZUsy3CwBlrSv3bKZqACh5jz/+uMaOHasp\nU6Zo6tSpmjp16kcef/vtt/Xee+9pw4YN2rdvn2bNmqUBAwZo27ZtcnctX75cknTXXXdp2bJluvPO\nOzV27FhJ0rx58/TBBx9o06ZN6tatm1atWqXu3bsX/D0CQFfRlXs2wRlA2Uh1sv/q6mrNmjVLtbW1\nkqTa2lq99dZbev311zVkyBCNHj065X5qa2u1bds2rVu3TsOHD9fIkSPjewMAUCDnXLckb/v63XdP\ny+p5XbFnM1UDQNk7+OCD2xqwJF199dUaMmSITjvtNB1++OG64YYbUj53ypQpOv300zVp0iT1799f\n1157bdnNuQOAclLOPZvgDKDsmX30qqgHHHCAbrzxRq1fv14PPvigbrrpJi1durTDbaurq/X9739f\nL730kp566iktWrRId911V8FqB4BKU849m6kaALqchx9+WMOGDdOQIUN00EEHqaamRtXV1ZKkvn37\n6rXXXms7tVFjY6P69Omjo446SgceeKBqa2tVVcWYAoDylu30imIop57NTwcAZaH9qEM6r7zyik49\n9VQddNBBGj16tL7+9a/r85//vCTpO9/5jn70ox+pvr5eN910k95++22de+656tWrl44++miNHTtW\nF198cVxvAwAqQlft2ZZq4napMTMvl1qBcmRmKb/IgXCpjmO0PvwnSZmjZwPxomfnR6Y9mxFnAAAA\nIADBGQAAAAhAcAYAAAACEJwBAACAAARnAAAAIADBGQAAAAhAcAYAAAACEJwBAACAAFxyG0CXc9hh\nh2nBggVtl2gFgHx6cv02Pb5uq/bszf4CJN1qTOOG9tGYIb3zWFl5KqeeTXAGysD0+1enfXzOecOL\n8rq5ykfdU6dO1YABA/TDH/4wDxUBQOdyDc2StGev6/F1WysuOJd7z2aqBgCk0NLSUuwSAJSgXENz\nvveDhEL0bIIzgLKwdu1ajR07VnV1dRo+fLgWLVqk+fPn6ze/+Y3mzp2rnj17auLEiW3br1y5UiNG\njFBdXZ0mT56sPXv2tD320EMPaeTIkaqrq9OYMWO0evWHI+uHHXaY5s6dqxEjRujAAw/Uvn37dMMN\nN6h///7q2bOnjjzySC1durSg7x1A6ZozYVjGt0rQVXs2wRlAydu7d68mTJig8ePHa8uWLbr11lt1\n0UUXqaGhQRdeeKGuvvpqvf/++3rggQfanvPb3/5WS5Ys0euvv64XXnhBv/rVryQlmvNll12m+fPn\na/v27briiit01llnqbm5ue259957rx599FG99957evXVV3X77bfrueee0/vvv6/Fixdr8ODBBT4C\nAFA+unLPZo4zgJK3fPly7dy5U9dcc40kaezYsfrSl76ku+++O+VzrrzySvXt21eSNGHCBK1atUqS\nNH/+fH3ta1/TcccdJ0m6+OKLNWfOHC1fvlwnnXRS23P79esnSaqurtaePXv04osvqnfv3ho4cGBs\n7xMA8mX6orV521emo+RduWcz4gyg5G3evFkDBgz4yLqBAwdq06ZNKZ/T2oAlqUePHtqxY4ckqamp\nST/5yU9UX1+v+vp61dXVaePGjdq8eXPb9v37929bHjJkiG655RbNnDlTffv21QUXXKC33norX28N\nALqcrtyzCc4ASl6/fv305ptvfmTdhg0b1L9/f5lZRvsaMGCApk+fru3bt2v79u169913tWPHDp1/\n/vlt27Tf56RJk7Rs2TI1NTVJkq699tos3wkAdH1duWczVQNAyTvhhBPUo0cPzZ07V1dddZWefPJJ\nPfTQQ5oxY4Z++ctf6rXXXgve1+WXX66zzz5b48aN06hRo7Rz50498cQTOvnkk3XAAQd8bPt169Zp\n06ZNGj16tLp166bu3btr3759+Xx7AJB3xfwSYlfu2Yw4Ayh5tbW1WrRokR555BH16dNH06ZN069/\n/WsNHTpUl112mV566SXV19fr7LPPlvTx0Ydkn/3sZzV//nxNmzZN9fX1Gjp0qBYuXNj2ePvn7t69\nW9dee60OPvhg9evXT1u2bNH1118fzxsFgC6gK/dscy+PcwiamZdLrUC+FeICKGYm/h/LXarjGK3P\n7G+UZYyeja4s+Yt32Yzs5vp8iZ6dL5n2bEacAQAAgAAEZwAAACAAwRkAAAAIQHAGAAAAAhCcAQAA\ngAAEZwAAACAAwRkAAAAIwJUDAUiSBg0alPGlUPFxgwYNKnYJACoAPTs/Mu3ZBGcAkqQ33nij2CUA\nAALRs4uDqRoAAABAgNiDs5mNN7O1ZrbOzK7p4PGTzew9M3s+un0v7poAAB2jZwNAarFO1TCzKkm3\n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\nE7mGZklq8cR+CM4otEo+D3T5VQwAQJ5ke9W7XE/HlWtozvd+gEyMG9pHj6/bmpfwXG5iD85mNl7S\nLUpcbGWBu9/QwTa3SjpD0k5JX3H3VXHXBQD4OHp24S3+1kkZP+f0m5e1LWczX3RPTY2aa2rKMrig\n+Cr5PNCxBmczq5J0m6RxkjZLWmFmD7j72qRtzpA0xN0/bWYnSPq5pBPjrKsYml5aoUFHH1/sMtLK\n9cuNcU4VKYfjV8o4frlrbGxUQ0NDscuIVaF6dj7OahH3GS1K/d87+XRgO7p3L1od1Wlyd6kfw1JX\nKccv+ZfATHQ2xz+u4xf3iPMoSa+4e5Mkmdm9kiZKSp5JPlHSXZLk7n8xs15m1tfd38n0xUr5rBZN\nfyvv4JJufqkU/xzTcj9+xVYJx6+z80Cn++Ut5PNbIT/ECtKzcw3Ne2pqtLO6Rj9fvlHPbPln1vtJ\nJ5N/72x/8OdiYJ8DtGHrzpxPB5aL1uCSSoX8PxObrnz8qi33aUadzfEv1+B8qKQ3k+5vVKIxp9tm\nU7Qu4+Acp0J8MSnbEVu+GAUgTwrSsz9wU/P+++c8TcDd276klw3LIXTm4wd/636ycfHnBuY8x7Rb\njWnc0D45/ckdyMapRxycty/IpvrF9dWnm/R0ml9qsz0rTcV8OTAk+OYy1QBAeetsxPqFl95Rc4o+\nwi+vHUs5Eltb27aYzVktnl+/NeeRVnNXD9+X9fPz8YO/sxHbdHKdYwoU01VnDMvpbDBn3rIsL6F7\n8dotWrw2s1++zWP8M4+ZnShppruPj+5fK8mTv2xiZj+XtNTd74vur5V0cvs/+5kZ3x0GUNbcvaS/\niUXPBoAPddSz4x5xXiHpcDMbJOktSZMktZ9s/KCkr0u6L2ra73U0V67Uf+AAQBdAzwaANGINzu7e\nYmbTJC3Rh6c2WmNmVyQe9nnu/oiZnWlmrypxaqOpcdYEAOgYPRsA0ot1qgYAAADQVVQVu4CuyMz2\nM7O/mNlKM1ttZjOi9XVmtsTMXjazxWbWq9i1lqI0x2+GmW00s+ej2/hi11rKzKwqOk4PRvf5/GUg\nOn4rk44fn78uip6dG3p2ftCzc1Oonk1wjoG775Y01t1HSvqMpDPMbJSkayX90d2PkPRfkr5TxDJL\nVprjJ0k3ufux0e2x4lVZFq6U9Lek+3z+MnOlpJfarePz1wXRs3NDz84benZuCtKzCc4xcfdd0eJ+\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "width=0.45\n", "axis = [27, 46, 0, 0.6]\n", "thinkplot.PrePlot(2, cols=2)\n", "thinkplot.Hist(first_pmf, align='right', width=width)\n", "thinkplot.Hist(other_pmf, align='left', width=width)\n", "thinkplot.Config(xlabel='Pregnancy length(weeks)', ylabel='PMF', axis=axis)\n", "\n", "thinkplot.PrePlot(2)\n", "thinkplot.SubPlot(2)\n", "thinkplot.Pmfs([first_pmf, other_pmf])\n", "thinkplot.Config(xlabel='Pregnancy length(weeks)', axis=axis)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the code that generates a plot of the difference in probability (in percentage points) between first babies and others, for each week of pregnancy (showing only pregnancies considered \"full term\"). " ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/downey/anaconda2/lib/python2.7/site-packages/matplotlib/axes/_axes.py:519: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots.\n", " warnings.warn(\"No labelled objects found. \"\n" ] }, { "data": { "image/png": "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\niGjJzGsREdGSmdciIqKlY1KQJOBnwGvJzGsREQOvY1KwbUnftr0T8K0+xRQREQ2p0qawQNLutUcS\nERGNq9Km8HzgYEmLgIcp50Sw/dxaI4uIiL6rkhReWnsUERExKazw9pHtRcAzgf3K5Ueq/F5EREw9\nVYa5mAm8H/hguWl14Et1BhUREc2o8o3/NcCBFO0J2L4LWK/OoCIiohmVejSXEySP9Ghep96QIiKi\nKVWSwkWSTgc2kHQkcAVwRr1hRUREE8Z9+kjSGrYX2/6EpP2BB4HtgQ/bnt+3CCMiom86PZL6I2A3\nSefb/icgiSAiYsB1SgpPkvRmYG9Jrx39pu2L6wsrIiKa0CkpvB04GNgAeNWo9wwkKUREDJhOSWFT\n20dJusH2F/sWUURENKbT00cjndXe3o9AIiKieZ2uFP4oaR6wlaRLRr9p+8D6woqIiCZ0SgqvAHYD\nzgc+2Z9wIiKiSeMmBduPAtdI2tv2PX2MKSIiGtKp89pnbB8LnC3Jo9/P7aOIiMHT6fbR+eXPT9R1\ncEnvBI4GlgLfsv2Buo4VEREr1un20fXlz6skPbVc7tltJElDFP0fdrK9VNJTelV2RESsnI4D4kma\nJele4OfALyTdI+nDPTr2UcDJtpcC2L63R+VGRMRKGjcpSHo3sA+wu+2NbG9IMV/zPpKO68GxtwNe\nKOkaSVdKel4PyoyIiC50alP4J2D/9m/wtu+Q9BZgHvDpFRUuaT6wSfsmiiEyTiqPvaHtPSXtDlwE\nbD3xKkRERK90Sgqrj3VLx/Y9klavUrjt/cd7T9LbKcdPsn2tpOWSNrb9x7H2nzVrVmt5aGiIoaGh\nKiFEREwbw8PDDA8Pd1WGiknVxnhDWmB7t4m+V/nA0luBZ9ieKWk7YL7tLcbZ1+PFGdHumDlzayv7\n1JMOqq3siDpIwrYm8judrhR2lvTgWMcB1pxQZGM7h6IPxEJgMXBID8qMiIgudHokddU6D2x7CUW7\nRURETBJV5miOiIhpIkkhIiJakhQiIqIlSSEiIlqSFCIioiVJISIiWsbtvDaZpPNaRMTErUzntVwp\nRERES5JCRES0JClERERLkkJERLQkKUREREuSQkREtCQpRERES5JCRES0JClERERLkkJERLQkKURE\nREuSQkREtCQpRERES5JCRES0JClERERLkkJERLQkKUREREuSQkREtCQpRERES5JCRES0JClERERL\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "weeks = range(35, 46)\n", "diffs = []\n", "for week in weeks:\n", " p1 = first_pmf.Prob(week)\n", " p2 = other_pmf.Prob(week)\n", " diff = 100 * (p1 - p2)\n", " diffs.append(diff)\n", "\n", "thinkplot.Bar(weeks, diffs)\n", "thinkplot.Config(xlabel='Pregnancy length(weeks)', ylabel='Difference (percentage points)')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Biasing and unbiasing PMFs\n", "\n", "Here's the example in the book showing operations we can perform with `Pmf` objects.\n", "\n", "Suppose we have the following distribution of class sizes." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [], "source": [ "d = { 7: 8, 12: 8, 17: 14, 22: 4, \n", " 27: 6, 32: 12, 37: 8, 42: 3, 47: 2 }\n", "\n", "pmf = thinkstats2.Pmf(d, label='actual')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This function computes the biased PMF we would get if we surveyed students and asked about the size of the classes they are in." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def BiasPmf(pmf, label):\n", " new_pmf = pmf.Copy(label=label)\n", "\n", " for x, p in pmf.Items():\n", " new_pmf.Mult(x, x)\n", " \n", " new_pmf.Normalize()\n", " return new_pmf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following graph shows the difference between the actual and observed distributions." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEPCAYAAABRHfM8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHdhJREFUeJzt3Xt0VfW57vHvGw0obCMgGIQQpFJpsVUuKYXSboOezUVU\ndFOPgLc6BNGKpdZhtXZ4DFrdm8qp2tFqVahbLSC6OQq4kYZqQ8WOKFG8gwLKRQIKFaogSCDv+WPN\nhEUIZIZkrrmy1vMZI4M17+/6kaxnzd+8mbsjIiLSkJy4CxARkZZBgSEiIqEoMEREJBQFhoiIhKLA\nEBGRUBQYIiISSuSBYWbDzWylmX1gZjfXM32cmb0Z/Cw1s9OTpq0Nxi83s1ejrlVERA7NorwOw8xy\ngA+As4FKYBkwxt1XJs0zEFjh7v80s+FAibsPDKZ9CPR3922RFSkiIqFEvYcxAFjl7uvcvQp4EhiV\nPIO7l7v7P4PBcqBr0mRLQY0iIhJC1B/GXYENScMfc2Ag1DUeeD5p2IHFZrbMzCZEUJ+IiIR0dNwF\n1DCzIcCVwPeTRg92901m1olEcKxw96XxVCgikt2iDoyNQGHScEEw7gDBge6HgeHJxyvcfVPw7xYz\ne4ZEF9dBgWFmuiGWiEgjubs1Zv6oA2MZ0NPMugObgDHA2OQZzKwQmAtc5u5rksa3AXLcfYeZtQWG\nAlMOtSHdRDGhpKSEkpKSuMuIXTa3w/jpFQcMvz7/Yfqdf3VM1SRMH18U6/ZrZPPvRV1mjcoKIOLA\ncPd9ZjYJKCVxvGSGu68ws4mJyf4wcBvQAXjAEu+gyt0HAPnAM8Hew9HATHcvjbJekUwzfXwRJR8/\nR0kMH9h1g0tavsiPYbj7IqBXnXEPJb2eABx0QNvdPwL6RF2fiIiEo1NWM0xxcXHcJaQFtcN+aov9\n1BZNo8DIMPqDSFA77Ke22E9t0TRpc1qtiGSOk08+mXXr1tUOz9BVVLHp3r07a9eubZZ1KTBEpNmt\nW7dOZy6miSM5G+pQ1CUlIiKhKDBERCQUBYaIiISiwBARiUlOTg4ffvhh3GWEpsAQEQmpR48evPji\ni822vuY8IJ0KCgwRkZi0tDPJFBgikpWmTp1Kz549ycvL41vf+hbPPvts7bRHHnmE3r1710574403\nuPzyy1m/fj3nnXceeXl5TJs2jSVLltCtW7cD1pu8F7Js2TK+973v0b59e7p27cr111/P3r17U/o+\nm5OuwxCRlBs9+Q/Nur6591/T6GV69uzJyy+/TH5+Pk8//TSXXXYZq1ev5m9/+xt33HEH8+bNo1+/\nfnz44Yfk5uby+OOP89JLL/HHP/6RIUOGALBkyZLDdisdddRR3HfffXznO99hw4YNjBgxggceeICf\n/OQnR/xe46Q9DBHJSqNHjyY/Px+Aiy66iJ49e/LKK68wY8YMfv7zn9OvXz8Avva1rx2wF9GYbqR+\n/foxYMAAzIzCwkKuvvpqlixZ0rxvJIW0hyEiWenxxx/n3nvvrb1txs6dO9m6dSsbNmzglFNOaZZt\nrFq1ip/97GdUVFSwa9cu9u7dS//+/Ztl3XFQYIhIyh1JF1JzWr9+PVdffTV//etfGTRoEAB9+/YF\noLCwkDVr1tS7XN3up7Zt2/Lll1/WDu/bt48tW7bUDl977bX069ePOXPm0KZNG+6//37mzp3b3G8n\nZdQlJSJZZ+fOneTk5NCxY0eqq6t59NFHeeeddwC46qqrmDZtGq+//joAa9asYcOGDQDk5+cfcN3E\nqaeeyu7du3n++efZu3cvv/rVr9izZ0/t9C+++IK8vDzatGnDypUrefDBB1P4LpufAkNEss43v/lN\nbrzxRgYOHEjnzp159913+f73vw/AD3/4Q375y18ybtw48vLyuPDCC/nss88A+MUvfsGdd95Jhw4d\n+M1vfkNeXh6///3vueqqqygoKOC4446joKCgdjvTpk1j5syZ5OXlMXHiRMaMGXNAHS3tOgxraecB\n18fMPBPeh0hzSH40alzP0jazFneNQaY61P9FML5RiaU9DBERCUWBISIioSgwREQkFAWGiIiEosAQ\nEZFQFBgiIhKKAkNEREJRYIiISCi6l5Q02bwX32TO8xV8tacq1jpat8rl4hFFjDrrjFjrkJbryiuv\npFu3btxxxx1xlxLalClTWL16NU888UTk29IehjRZOoQFwFd7qpjzfEXDM4pkmFTdYkSBIU2WDmFR\nI51qEanPvn374i7hiKlLSppVXLetbu4nuElmW7lyJddeey1vvPEGBQUF3H333Zx33nkAbNmyhaFD\nh1JeXk7//v157LHHKCwsBOCGG25g1qxZ7N69m5NPPpnZs2fTu3dv9uzZw6233srTTz/Nnj17uPDC\nC7n33ntp3bo1S5Ys4dJLL+X666/n3nvvZejQoSxbtoxp06ZxzjnnAIkQOemkkygtLaVPnz6Ul5dz\n44038t5773HyySdz3333ceaZZwKwdu1afvSjH7F8+XIGDhzIqaeemrJ2U2CISMol3yCxOTTmJot7\n9+7lvPPOY/z48SxevJiXXnqJCy64gIqKRE2zZs1i4cKFDBgwgJtuuolLLrmEl156idLSUpYuXcrq\n1as57rjjeP/992nXrh0AN998Mx999BFvvfUWRx99NOPGjeOOO+7grrvuAmDz5s1s376d9evXU11d\nzT333MOsWbNqA2PRokV06tSJPn36sHHjRs4991xmzpzJsGHDeOGFFxg9ejTvv/8+J5xwAuPGjWPw\n4MEsXryY8vJyRo4cyQUXXNCs7XkoCgwRySrl5eXs3LmTm2++GYAhQ4Zw7rnnMmvWLABGjhzJ4MGD\nAbjrrrto164dGzduJDc3ly+++IL33nuPAQMG0KtXr9p1PvLII7z99tscf/zxANxyyy1ccskltYFx\n1FFHMWXKFHJzcwEYO3Ysffv2Zffu3RxzzDHMnj2bsWPHAjBz5kxGjhzJsGHDADj77LMpKipi4cKF\nFBcXU1FRwQsvvEBubi4/+MEPaveMUkHHMEQkq1RWVh7wjG5IPGWvsrIS4IBpbdu2pX379lRWVjJk\nyBAmTZrEddddR35+Ptdccw07duxgy5YtfPnll/Tv358OHTrQoUMHRowYwT/+8Y/a9XTq1Kk2LABO\nOeUUevfuzYIFC9i1axfz58/nkksuAWDdunU89dRTtetq3749L7/8Mps2baKyspL27dtz7LHH1q6r\ne/fukbRTfbSHISIpF9dzOgC6dOlS+wS9GuvXr6dXr1589NFHB0zbsWMHn332GV26dAFg0qRJTJo0\nia1bt3LRRRdxzz33UFJSQps2bXj33Xc56aST6t1mfWcxjRkzhlmzZrFv3z5OO+00evToASQC6/LL\nL+ehhx46aJn169ezbds2du3aVRsa69evJycnNd/9tYchIlnlu9/9Lm3atOHXv/41e/fupaysjOee\ne672aXgLFy7k73//O3v27OG2225j0KBBdO3alYqKCl599VX27t3LscceyzHHHENOTg5mxoQJE/jp\nT39a+zzvjRs3Ulpaetg6xowZQ2lpKQ8++CDjxo2rHX/ppZeyYMECSktLqa6uZvfu3SxZsoTKykoK\nCwspKiri9ttvp6qqiqVLl7JgwYLoGqsOBYaIZJXc3FwWLFjAwoUL6dixI5MmTeKJJ57g1FNPxcwY\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "biased_pmf = BiasPmf(pmf, label='observed')\n", "thinkplot.PrePlot(2)\n", "thinkplot.Pmfs([pmf, biased_pmf])\n", "thinkplot.Config(xlabel='Class size', ylabel='PMF')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The observed mean is substantially higher than the actual." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Actual mean 23.6923076923\n", "Observed mean 29.1233766234\n" ] } ], "source": [ "print('Actual mean', pmf.Mean())\n", "print('Observed mean', biased_pmf.Mean())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we were only able to collect the biased sample, we could \"unbias\" it by applying the inverse operation." ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def UnbiasPmf(pmf, label=None):\n", " new_pmf = pmf.Copy(label=label)\n", "\n", " for x, p in pmf.Items():\n", " new_pmf[x] *= 1/x\n", " \n", " new_pmf.Normalize()\n", " return new_pmf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can unbias the biased PMF:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Unbiased mean 23.6923076923\n" ] } ], "source": [ "unbiased = UnbiasPmf(biased_pmf, label='unbiased')\n", "print('Unbiased mean', unbiased.Mean())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And plot the two distributions to confirm they are the same." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nhiGp5r7600e7dH8//er+nWrf0SmcpUuXsmzZMl566SVmzZrFUUcdxRFHHMGgQYMAuPnmm5k5cyZj\nx47lvPPOY9KkSTzwwAPr7XvAgAHceOONjBo1irlz53LwwQczevRoDj/8cG644Qb++te/snjxYvr1\n68ecOXN473vfC8CJJ57I0KFDWbBgAcuXL+fzn/88TU1NTJ48meuuu46ZM2fyxBNP0L9/f774xS92\n6r1vCU9JSWo42cEouv369aOlpYXevXszfvx4BgwYwJ///Oe29Z/73Oc48MAD6du3L5dccgl/+MMf\nWLx48Xr7/tSnPsWoUaMA2HvvvZk4cWLbI1r79u3L66+/zjPPPENEMHr0aAYMGMArr7zC3XffzeWX\nX84222zDTjvtxFlnncWtt94KwO23385ZZ53FLrvswvbbb88FF1zQpX2zKR5hSFI7O+644zqfOOrf\nvz/Lly9vm698xve2227L4MGDeemllxg2bNg6+3n44Ye54IILmDt3LitWrGDFihUcffTRABx//PG8\n+OKLTJw4kbfeeovjjjuOSy65hIULF7Jy5UqGDh0KvHvZoKmpCYCXXnppndcfMWJE13fARhgYkmqu\ns6eQulr//v3XebTq0qVL1/kl3JG1T+ADWL58OW+88cZ6YQEwadIkzjjjDH71q1/Rt29fzj77bF5/\n/XUA+vTpQ0tLCy0tLbzwwguMHz+ePffck/Hjx7PNNtvw+uuvb/DU2dChQ9d5/YULFxaue0t5SkpS\nwxk9ejQ333wza9as4Z577mk7TVTUzJkz+f3vf8+KFStoaWnhgAMOYJdddlmv3fLly9lhhx3o27cv\njzzyCDfffHPbutbWVubOncuaNWsYMGAAffv2pXfv3uy8884ccsghnH322SxbtozMZMGCBdx///0A\nfOlLX+Kqq65i8eLFvPnmm1x66aVb1hmdYGBIajhXXHEFd911FzvssAO33HILRxxxxCbbV/6lHxEc\ne+yxTJkyhR133JHHH3+cn//85xtse80119DS0sKgQYO4+OKL+fKXv9y2bunSpRx11FEMGjSIUaNG\ncdBBB3HccccBMH36dFasWMFee+3F4MGDOfroo1m6dCkAkydP5tBDD2WfffZh//3358gjj+ySPimi\n6o9ojYjDgCsohdO0zLy03fpjgfPLs8uAb2Tmn4psW7GPrPb70Mbte/YdbdNzLq/dN2+91aB1+YjW\n+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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "thinkplot.PrePlot(2)\n", "thinkplot.Pmfs([pmf, unbiased])\n", "thinkplot.Config(xlabel='Class size', ylabel='PMF')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pandas indexing\n", "\n", "Here's an example of a small DataFrame." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "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", "
01
0-0.3954830.636168
1-0.3024881.540846
20.8499770.360978
3-1.186987-0.782963
\n", "
" ], "text/plain": [ " 0 1\n", "0 -0.395483 0.636168\n", "1 -0.302488 1.540846\n", "2 0.849977 0.360978\n", "3 -1.186987 -0.782963" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import pandas\n", "array = np.random.randn(4, 2)\n", "df = pandas.DataFrame(array)\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can specify column names when we create the DataFrame:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "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", "
AB
0-0.3954830.636168
1-0.3024881.540846
20.8499770.360978
3-1.186987-0.782963
\n", "
" ], "text/plain": [ " A B\n", "0 -0.395483 0.636168\n", "1 -0.302488 1.540846\n", "2 0.849977 0.360978\n", "3 -1.186987 -0.782963" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "columns = ['A', 'B']\n", "df = pandas.DataFrame(array, columns=columns)\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also specify an index that contains labels for the rows." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "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", "
AB
a-0.3954830.636168
b-0.3024881.540846
c0.8499770.360978
d-1.186987-0.782963
\n", "
" ], "text/plain": [ " A B\n", "a -0.395483 0.636168\n", "b -0.302488 1.540846\n", "c 0.849977 0.360978\n", "d -1.186987 -0.782963" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "index = ['a', 'b', 'c', 'd']\n", "df = pandas.DataFrame(array, columns=columns, index=index)\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Normal indexing selects columns." ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "a -0.395483\n", "b -0.302488\n", "c 0.849977\n", "d -1.186987\n", "Name: A, dtype: float64" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['A']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use the `loc` attribute to select rows." ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "A -0.395483\n", "B 0.636168\n", "Name: a, dtype: float64" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.loc['a']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you don't want to use the row labels and prefer to access the rows using integer indices, you can use the `iloc` attribute:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "A -0.395483\n", "B 0.636168\n", "Name: a, dtype: float64" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.iloc[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`loc` can also take a list of labels." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "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", "
AB
a-0.3954830.636168
c0.8499770.360978
\n", "
" ], "text/plain": [ " A B\n", "a -0.395483 0.636168\n", "c 0.849977 0.360978" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "indices = ['a', 'c']\n", "df.loc[indices]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you provide a slice of labels, `DataFrame` uses it to select rows." ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "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", "
AB
a-0.3954830.636168
b-0.3024881.540846
c0.8499770.360978
\n", "
" ], "text/plain": [ " A B\n", "a -0.395483 0.636168\n", "b -0.302488 1.540846\n", "c 0.849977 0.360978" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['a':'c']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you provide a slice of integers, `DataFrame` selects rows by integer index." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "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", "
AB
a-0.3954830.636168
b-0.3024881.540846
\n", "
" ], "text/plain": [ " A B\n", "a -0.395483 0.636168\n", "b -0.302488 1.540846" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[0:2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But notice that one method includes the last elements of the slice and one does not.\n", "\n", "In general, I recommend giving labels to the rows and names to the columns, and using them consistently." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Exercises" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise:** Something like the class size paradox appears if you survey children and ask how many children are in their family. Families with many children are more likely to appear in your sample, and families with no children have no chance to be in the sample.\n", "\n", "Use the NSFG respondent variable `numkdhh` to construct the actual distribution for the number of children under 18 in the respondents' households.\n", "\n", "Now compute the biased distribution we would see if we surveyed the children and asked them how many children under 18 (including themselves) are in their household.\n", "\n", "Plot the actual and biased distributions, and compute their means." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [], "source": [ "resp = nsfg.ReadFemResp()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Solution\n", "\n", "pmf = thinkstats2.Pmf(resp.numkdhh, label='numkdhh')" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "thinkplot.Pmf(pmf)\n", "thinkplot.Config(xlabel='Number of children', ylabel='PMF')" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Solution\n", "\n", "biased = BiasPmf(pmf, label='biased')" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "thinkplot.PrePlot(2)\n", "thinkplot.Pmfs([pmf, biased])\n", "thinkplot.Config(xlabel='Number of children', ylabel='PMF')" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0242051550438309" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "pmf.Mean()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2.4036791006642821" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "biased.Mean()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "**Exercise:** I started this book with the question, \"Are first babies more likely to be late?\" To address it, I computed the difference in means between groups of babies, but I ignored the possibility that there might be a difference between first babies and others for the same woman.\n", "\n", "To address this version of the question, select respondents who have at least live births and compute pairwise differences. Does this formulation of the question yield a different result?\n", "\n", "Hint: use `nsfg.MakePregMap`:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [], "source": [ "live, firsts, others = first.MakeFrames()" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": true }, "outputs": [], "source": [ "preg_map = nsfg.MakePregMap(live)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Solution\n", "\n", "hist = thinkstats2.Hist()\n", "\n", "for caseid, indices in preg_map.items():\n", " if len(indices) >= 2:\n", " pair = preg.loc[indices[0:2]].prglngth\n", " diff = np.diff(pair)[0]\n", " hist[diff] += 1" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAEACAYAAABVtcpZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFRdJREFUeJzt3W+sXPWd3/H3B1hv2A1hSSrs1oYAJSYmpc1SrZM2bXeU\nsObPam0/qFhglUDIo0L+aHeVBhNUriskw6pVslUE0mpZYtKA5STd2tGy/JM7W9GWhQ0Qk9iBWyWA\n7a0vSoOoUKvITr59MMdmMtzL9Z25vjP2eb+kK5/5nt858x3f6/nM+Z1zfFNVSJLa6ZRxNyBJGh9D\nQJJazBCQpBYzBCSpxQwBSWoxQ0CSWmzeEEhyb5KZJLsH6p9JsjfJ80nu7KtvSjLdrFvXV780ye4k\nLyb58uK+DEnSMI7lSOA+4PL+QpIO8DvAJVV1CfDvmvoa4GpgDXAlcHeSNJvdA3yqqlYDq5P8wj4l\nSUtv3hCoqieA1wbK/wq4s6oON2N+3NQ3ANuq6nBVvQRMA2uTrADOqKqnm3H3AxsXoX9J0giGPSew\nGvgXSZ5M8l+S/OOmvhLY1zfuQFNbCezvq+9vapKkMTpthO3OqqoPJ/kN4BvABYvXliRpKQwbAvuA\n/wRQVU8n+VmS99D75H9u37hVTe0AcM4s9Vkl8T80kqQhVFXmH/WmY50OSvN1xH8GPgqQZDWwrKr+\nN7AT+N0ky5KcD1wIPFVVB4HXk6xtThR/AtgxzwuZ+K/bb7997D2cDD3ap31O+teJ0ucw5j0SSPIA\n0AHek+QV4Hbgz4D7kjwP/LR5U6eq9iTZDuwBDgE31Zud3Qx8FXgH8FBVPTxUx5KkRTNvCFTVdXOs\n+vgc47cAW2apfwe4ZEHdSZKOK+8YHkGn0xl3C/M6EXoE+1xs9rm4TpQ+h5Fh55GOpyQ1iX1J0iRL\nQh2nE8OSpJOQISBJLWYISFKLGQKS1GLD3jEstcqn73jwFx5/5bZrx9SJtLg8EpCkFjMEJKnFDAFJ\najFDQJJazBCQpBYzBCSpxQwBSWoxQ0CSWswQkKQWMwQkqcUMAUlqMUNAklps3hBIcm+SmSS7Z1n3\nh0l+nuTdfbVNSaaT7E2yrq9+aZLdSV5M8uXFewmSpGEdy5HAfcDlg8Ukq4DfAl7uq60BrgbWAFcC\ndyc58qvO7gE+VVWrgdVJ3rJPSdLSmjcEquoJ4LVZVn0J+PxAbQOwraoOV9VLwDSwNskK4IyqeroZ\ndz+wceiuJUmLYqhzAknWA/uq6vmBVSuBfX2PDzS1lcD+vvr+piZJGqMF/1KZJKcDt9KbCpIkncCG\n+c1ifx84D/huM9+/CngmyVp6n/zP7Ru7qqkdAM6ZpT6nqampo8udTodOpzNEq5J08up2u3S73ZH2\nkaqaf1ByHvDtqrpklnU/Ai6tqteSXAx8HfgQvemex4D3VVUleRL4LPA08BfAf6iqh+d4vjqWvqSl\n4q+X1IkgCVWV+Ue+6VguEX0A+O/0ruh5JcknB4YUEICq2gNsB/YADwE39b2b3wzcC7wITM8VAJKk\npTPvdFBVXTfP+gsGHm8Btswy7jvAW44kJEnj4x3DktRihoAktZghIEktZghIUosZApLUYoaAJLWY\nISBJLWYISFKLGQKS1GKGgCS1mCEgSS1mCEhSixkCktRihoAktZghIEktZghIUosZApLUYoaAJLWY\nISBJLXYsv2j+3iQzSXb31f4oyd4kzyX5VpJ39a3blGS6Wb+ur35pkt1JXkzy5cV/KZKkhTqWI4H7\ngMsHao8CH6iqDwLTwCaAJBcDVwNrgCuBu5Ok2eYe4FNVtRpYnWRwn5KkJTZvCFTVE8BrA7XHq+rn\nzcMngVXN8npgW1UdrqqX6AXE2iQrgDOq6ulm3P3AxkXoX5I0gsU4J3Aj8FCzvBLY17fuQFNbCezv\nq+9vapKkMTptlI2TfBE4VFUPLlI/R01NTR1d7nQ6dDqdxX4KSTqhdbtdut3uSPsYOgSS3ABcBXy0\nr3wAOKfv8aqmNld9Tv0hIEl6q8EPyJs3b17wPo51OijNV+9BcgXweWB9Vf20b9xO4Joky5KcD1wI\nPFVVB4HXk6xtThR/Atix4G4lSYtq3iOBJA8AHeA9SV4BbgduBZYBjzUX/zxZVTdV1Z4k24E9wCHg\npqqqZlc3A18F3gE8VFUPL/JrkSQt0LwhUFXXzVK+723GbwG2zFL/DnDJgrqTJB1X3jEsSS1mCEhS\nixkCktRihoAktZghIEktZghIUosZApLUYoaAJLWYISBJLWYISFKLGQKS1GKGgCS1mCEgSS1mCEhS\nixkCktRihoAktZghIEktZghIUosZApLUYvOGQJJ7k8wk2d1XOyvJo0leSPJIkjP71m1KMp1kb5J1\nffVLk+xO8mKSLy/+S5EkLdSxHAncB1w+ULsFeLyqLgJ2AZsAklwMXA2sAa4E7k6SZpt7gE9V1Wpg\ndZLBfUqSlti8IVBVTwCvDZQ3AFub5a3AxmZ5PbCtqg5X1UvANLA2yQrgjKp6uhl3f982kqQxGfac\nwNlVNQNQVQeBs5v6SmBf37gDTW0lsL+vvr+pSZLG6LRF2k8t0n6OmpqaOrrc6XTodDqL/RSSdELr\ndrt0u92R9jFsCMwkWV5VM81Uz6tN/QBwTt+4VU1trvqc+kNAkvRWgx+QN2/evOB9HOt0UJqvI3YC\nNzTL1wM7+urXJFmW5HzgQuCpZsro9SRrmxPFn+jbRpI0JvMeCSR5AOgA70nyCnA7cCfwjSQ3Ai/T\nuyKIqtqTZDuwBzgE3FRVR6aKbga+CrwDeKiqHl7clyJJWqh5Q6Cqrptj1WVzjN8CbJml/h3gkgV1\nJ0k6rrxjWJJazBCQpBYzBCSpxQwBSWoxQ0CSWswQkKQWMwQkqcUMAUlqMUNAklrMEJCkFjMEJKnF\nDAFJajFDQJJazBCQpBYzBCSpxQwBSWoxQ0CSWswQkKQWMwQkqcVGCoEkv5/ke0l2J/l6kmVJzkry\naJIXkjyS5My+8ZuSTCfZm2Td6O1LkkYxdAgk+XvAZ4BLq+of0vul9dcCtwCPV9VFwC5gUzP+YuBq\nYA1wJXB3kozWviRpFKNOB50K/GqS04DTgQPABmBrs34rsLFZXg9sq6rDVfUSMA2sHfH5JUkjGDoE\nqupvgX8PvELvzf/1qnocWF5VM82Yg8DZzSYrgX19uzjQ1CRJY3LasBsm+TV6n/rfC7wOfCPJ7wE1\nMHTw8TGZmpo6utzpdOh0OkP1KUknq263S7fbHWkfQ4cAcBnww6r6CUCSPwf+KTCTZHlVzSRZAbza\njD8AnNO3/aqmNqv+EJAkvdXgB+TNmzcveB+jnBN4Bfhwknc0J3g/BuwBdgI3NGOuB3Y0yzuBa5or\niM4HLgSeGuH5JUkjGvpIoKqeSvJN4FngUPPnnwBnANuT3Ai8TO+KIKpqT5Lt9ILiEHBTVQ01VSRJ\nWhyjTAdRVZuBweOPn9CbKppt/BZgyyjPKUlaPN4xLEktZghIUosZApLUYoaAJLWYISBJLWYISFKL\nGQKS1GKGgCS1mCEgSS1mCEhSixkCktRihoAktZghIEktZghIUosZApLUYoaAJLWYISBJLWYISFKL\nGQKS1GIjhUCSM5N8I8neJN9P8qEkZyV5NMkLSR5Jcmbf+E1Jppvx60ZvX5I0ilGPBP4YeKiq1gD/\nCPgBcAvweFVdBOwCNgEkuRi4GlgDXAncnSQjPr8kaQRDh0CSdwH/vKruA6iqw1X1OrAB2NoM2wps\nbJbXA9uacS8B08DaYZ9fkjS6UY4Ezgd+nOS+JM8k+ZMkvwIsr6oZgKo6CJzdjF8J7Ovb/kBTkySN\nyWkjbnspcHNV/U2SL9GbCqqBcYOPj8nU1NTR5U6nQ6fTGa5LSTpJdbtdut3uSPsYJQT2A/uq6m+a\nx9+iFwIzSZZX1UySFcCrzfoDwDl9269qarPqDwFJ0lsNfkDevHnzgvcx9HRQM+WzL8nqpvQx4PvA\nTuCGpnY9sKNZ3glck2RZkvOBC4Gnhn1+SdLoRjkSAPgs8PUkvwT8EPgkcCqwPcmNwMv0rgiiqvYk\n2Q7sAQ4BN1XVUFNFkqTFMVIIVNV3gd+YZdVlc4zfAmwZ5TklSYvHO4YlqcUMAUlqMUNAklrMEJCk\nFjMEJKnFDAFJajFDQJJazBCQpBYzBCSpxQwBSWoxQ0CSWswQkKQWMwQkqcUMAUlqMUNAklrMEJCk\nFjMEJKnFDAFJajFDQJJabOQQSHJKkmeS7Gwen5Xk0SQvJHkkyZl9YzclmU6yN8m6UZ9bkjSaxTgS\n+Bywp+/xLcDjVXURsAvYBJDkYuBqYA1wJXB3kizC80uShjRSCCRZBVwF/GlfeQOwtVneCmxsltcD\n26rqcFW9BEwDa0d5fknSaEY9EvgS8Hmg+mrLq2oGoKoOAmc39ZXAvr5xB5qaJGlMTht2wyS/DcxU\n1XNJOm8ztN5m3ZympqaOLnc6HTqdt3sKSWqfbrdLt9sdaR9DhwDwEWB9kquA04EzknwNOJhkeVXN\nJFkBvNqMPwCc07f9qqY2q/4QkCS91eAH5M2bNy94H0NPB1XVrVV1blVdAFwD7KqqjwPfBm5ohl0P\n7GiWdwLXJFmW5HzgQuCpYZ9fkjS6UY4E5nInsD3JjcDL9K4Ioqr2JNlO70qiQ8BNVTXUVJEkaXEs\nSghU1V8Bf9Us/wS4bI5xW4Ati/GckqTRecewJLWYISBJLWYISFKLGQKS1GKGgCS1mCEgSS1mCEhS\nixkCktRihoAktZghIEktZghIUosZApLUYoaAJLWYISBJLWYISFKLGQKS1GKGgCS1mCEgSS02dAgk\nWZVkV5LvJ3k+yWeb+llJHk3yQpJHkpzZt82mJNNJ9iZZtxgvQJI0vFGOBA4Df1BVHwD+CXBzkvcD\ntwCPV9VFwC5gE0CSi+n90vk1wJXA3UkySvOSpNEM/Yvmq+ogcLBZfiPJXmAVsAH4zWbYVqBLLxjW\nA9uq6jDwUpJpYC3w10N3Lx0nn77jwXG3IC2JoUOgX5LzgA8CTwLLq2oGekGR5Oxm2Ergf/RtdqCp\nSWPnm77aauQTw0neCXwT+FxVvQHUwJDBx5KkCTHSkUCS0+gFwNeqakdTnkmyvKpmkqwAXm3qB4Bz\n+jZf1dRmNTU1dXS50+nQ6XRGaVWSTjrdbpdutzvSPlI1/Af1JPcDP66qP+ir3QX8pKruSvIF4Kyq\nuqU5Mfx14EP0poEeA95XszSQZLaydNwsdDroK7dde5w6kYaXhKpa0AU3Qx8JJPkI8HvA80mepTft\ncytwF7A9yY3Ay/SuCKKq9iTZDuwBDgE3+U4vSeM1ytVB/w04dY7Vl82xzRZgy7DPKUlaXN4xLEkt\nZghIUostyn0Ckn7x5LInjnWiMASkIQxeTeSbvk5UTgdJUosZApLUYoaAJLWYISBJLWYISFKLeXWQ\ntES8okiTyBDQSc83X2luTgdJUot5JKBW8u5eqccjAUlqMUNAklrMEJCkFvOcgHScLPRXVkrj4JGA\nJLWYRwI66fgJXDp2Sx4CSa4AvkzvKOTeqrprqXuQThbeCKdRLel0UJJTgK8AlwMfAK5N8v6l7GEx\ndbvdcbcwrxOhR/jFPj99x4NHvybNgR/tWbR99b/OxX6tJ+L3fZKdKH0OY6nPCawFpqvq5ao6BGwD\nNixxD4vmRPjBOBF6hNH6PJ5vpoMWMwSOpzZ835fSidLnMJZ6OmglsK/v8X56wSDNaRKPCI6H2aZ2\nBu9s9k5nLTZPDGtRzfeGPfjGdWT8U//1eX58x4O+sY1o8O9zPscSLJ53OLmlqpbuyZIPA1NVdUXz\n+BagBk8OJ1m6piTpJFJVWcj4pQ6BU4EXgI8B/wt4Cri2qvYuWROSpKOWdDqoqn6W5NPAo7x5iagB\nIEljsqRHApKkyTJx/21Ekj9M8vMk7+6rbUoynWRvknVj7u/fJvlukmeTPJxkxYT2+UdNH88l+VaS\nd01on/8yyfeS/CzJpQPrJqbPpp8rkvwgyYtJvjDufo5Icm+SmSS7+2pnJXk0yQtJHkly5ph7XJVk\nV5LvJ3k+yWcntM9fTvLXzb/v55PcPol9HpHklCTPJNnZPF54n1U1MV/AKuBh4EfAu5vaGuBZelNX\n5wH/k+YIZkw9vrNv+TPAPc3yxRPW52XAKc3yncCWCe3zIuB9wC7g0r76pH3fT2l6eC/wS8BzwPvH\n1c9Ab/8M+CCwu692F/Cvm+UvAHeOuccVwAeb5XfSOzf4/knrs+njV5o/TwWepHcZ+8T12fTy+8B/\nBHYO+32ftCOBLwGfH6htALZV1eGqegmYZoz3FlTVG30PfxX4ebO8nsnq8/GqOtLbk/QCFiavzxeq\nahoYvKJhor7vTPCNjlX1BPDaQHkDsLVZ3gpsXNKmBlTVwap6rll+A9hL72dyovoEqKr/2yz+Mr0P\nIcUE9plkFXAV8Kd95QX3OTEhkGQ9sK+qnh9YNXiD2YGmNjZJ7kjyCnAd8G+a8sT12edG4KFmeZL7\n7Ddpfc52o+Mk/r0dcXZVzUDvDRg4e8z9HJXkPHpHLk8Cyyetz2aK5VngIPBYVT3NBPbJmx+a+0/s\nLrjPJb06KMljwPL+Er0XcBtwK/BbS9nPXN6mzy9W1ber6jbgtmZe+DPA1NJ3OX+fzZgvAoeqamy3\n3R5LnzruJuIKkCTvBL4JfK6q3pjlnqCx99kcQf96cx7tz5N8gLf2NdY+k/w2MFNVzyXpvM3Qeftc\n6ktEZ32TT/IP6M37fjdJ6B0mPpNkLb1PgOf2DV/V1Ja8z1k8APwFvRA4AJzTt27sfSa5gd7h4kf7\nyhPX5xyWvM95LPnP4Yhmkiyvqpnm4oVXx91QktPoBcDXqmpHU564Po+oqv+TpAtcweT1+RFgfZKr\ngNOBM5J8DTi40D4nYjqoqr5XVSuq6oKqOp/eofavV9WrwE7gd5MsS3I+cCG9m8zGIsmFfQ83Aj9o\nlncC10xQn1fQO1RcX1U/7Vs1UX0O6D8vMGl9Pg1cmOS9SZYB1zQ9Torw1r+/G5rl64EdgxuMwZ8B\ne6rqj/tqE9Vnkr9z5IqaJKfTm53Yy4T1WVW3VtW5VXUBvZ/FXVX1ceDbLLTPcZ/dnuOM9w9prg5q\nHm+id2XGXmDdmHv7JrCb3tUhO4C/O6F9TgMvA880X3dPaJ8b6c21/z96d5H/5ST22fRzBb2rWqaB\nW8bdT19fDwB/C/wUeAX4JHAW8HjT76PAr425x48AP2v+3Tzb/ExeAbx7wvq8pOntuebf+Reb+kT1\nOdDzb/Lm1UEL7tObxSSpxSZiOkiSNB6GgCS1mCEgSS1mCEhSixkCktRihoAktZghIEktZghIUov9\nf6OQhW9pdqIzAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "thinkplot.Hist(hist)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "-0.05636743215031337" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution\n", "\n", "pmf = thinkstats2.Pmf(hist)\n", "pmf.Mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise:** In most foot races, everyone starts at the same time. If you are a fast runner, you usually pass a lot of people at the beginning of the race, but after a few miles everyone around you is going at the same speed.\n", "When I ran a long-distance (209 miles) relay race for the first time, I noticed an odd phenomenon: when I overtook another runner, I was usually much faster, and when another runner overtook me, he was usually much faster.\n", "\n", "At first I thought that the distribution of speeds might be bimodal; that is, there were many slow runners and many fast runners, but few at my speed.\n", "\n", "Then I realized that I was the victim of a bias similar to the effect of class size. The race was unusual in two ways: it used a staggered start, so teams started at different times; also, many teams included runners at different levels of ability.\n", "\n", "As a result, runners were spread out along the course with little relationship between speed and location. When I joined the race, the runners near me were (pretty much) a random sample of the runners in the race.\n", "\n", "So where does the bias come from? During my time on the course, the chance of overtaking a runner, or being overtaken, is proportional to the difference in our speeds. I am more likely to catch a slow runner, and more likely to be caught by a fast runner. But runners at the same speed are unlikely to see each other.\n", "\n", "Write a function called `ObservedPmf` that takes a `Pmf` representing the actual distribution of runners’ speeds, and the speed of a running observer, and returns a new `Pmf` representing the distribution of runners’ speeds as seen by the observer.\n", "\n", "To test your function, you can use `relay.py`, which reads the results from the James Joyce Ramble 10K in Dedham MA and converts the pace of each runner to mph.\n", "\n", "Compute the distribution of speeds you would observe if you ran a relay race at 7 mph with this group of runners." ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import relay\n", "\n", "results = relay.ReadResults()\n", "speeds = relay.GetSpeeds(results)\n", "speeds = relay.BinData(speeds, 3, 12, 100)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZMAAAEPCAYAAACHuClZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu8VXWd//HX+xhoZoeL/ADjZoKa6KQyhmTNdDRNwPSY\nlII1YFliidLl4ag5/oTq0cPbUKApamgwjwxGnZ/QjBr1w6ONU4QXzBuKmtyM4y215Kdy+fz+2Osc\nF9u9z4W919n77PN+Ph7nwV5rfdfan8W5fPb3u74XRQRmZmalqKt0AGZm1v05mZiZWcmcTMzMrGRO\nJmZmVjInEzMzK5mTiZmZlSzzZCJpvKQ1kp6WdEGRMvMkrZW0WtJhecfqJD0kaVlq36WSNib7H5I0\nPuv7MDOz4t6X5cUl1QHXAJ8GXgBWSVoaEWtSZSYAIyNif0lHAvOBcanLzASeAOrzLj8nIuZkGb+Z\nmXVM1jWTscDaiFgXEVuBxUBjXplGYBFARKwE+kgaBCBpKDAR+GmBayuzqM3MrFOyTiZDgA2p7Y3J\nvrbKbEqV+RFwPlBomP6MpFnsp5L6lCleMzPbBVX7AF7SCUBzRKwmVwtJ10SuBfaLiMOAzYCbu8zM\nKijTZybkahnDU9tDk335ZYYVKPN54CRJE4H3Ax+UtCgipkbES6nyNwK/LPTmkjzxmJnZLoiITj1K\nyLpmsgoYJWmEpN7AZGBZXpllwFQASeOA1yKiOSK+GxHDI2K/5LwVEdFSbnDq/FOAx4oFEBE1+3Xp\npZdWPAbfn+/N91d7X7si05pJRGyXNANYTi5xLYiIJyVNzx2OGyLiTkkTJT0DvAl8uQOXviLpQrwD\neB6YntEtmJlZB2TdzEVE3A0cmLfv+rztGe1c417g3tT21HLGaGZmpanaB/DWvoaGhkqHkKlavr9a\nvjfw/fVE2tX2se5AUtTy/ZmZZUES0ckH8Jk3c5lZddt3331Zt25dpcOwChgxYgTPP/98Wa7lmolZ\nD5d8Cq10GFYBxb73u1Iz8TMTMzMrmZOJmZmVzMnEzMxK5mRiZtaOuro6nnvuuUqHUdTRRx/NTTfd\nVNEYnEzMrOZ8+MMfZsWKFWW7nuQVL9rjZGJm1g73dmufk4mZVa3LL7+cUaNGUV9fzyGHHMIdd9yx\n0/Ebb7yR0aNHtx5fvXo1U6dOZf369Zx44onU19dz1VVXce+99zJs2LCdzk3XXlatWsVRRx1Fv379\nGDJkCOeeey7btm3rUIw/+9nPGDlyJPX19YwcOZJf/OIXACxcuJBPfvKTnHvuufTt25fRo0fvVFt6\n4403+OpXv8qHPvQhhg0bxiWXXLJT0rrpppsYPXo0e++9NxMmTGD9+vWtx379619z0EEH0a9fP849\n99ydznv22WdpaGigb9++DBw4kClTpnTwf7s0HrRoZkVNmjm/rNe7fe7ZnSo/atQo7r//fgYNGsSt\nt97Kl770JZ599tnW7e9973ssXbqUMWPG8Nxzz9GrVy8WLVrEb3/7W2666SaOPvpoAO699942m6p2\n2203fvzjH/Oxj32MDRs2MGHCBK699lrOO++8NuPbsmULM2fO5MEHH2TUqFE0Nzfz6quvth5fuXIl\np556Kq+88gq33347p5xyCs8//zx9+/Zl2rRp7LPPPjz33HP87W9/47Of/SzDhw/na1/7GkuXLuWy\nyy7jP//zPxk1ahSXXXYZU6ZM4f777+fll19m0qRJLFy4kJNOOomrr76a+fPnM3VqbsrCSy65hOOP\nP56mpibeeecdHnjggU79n+8q10zMrGpNmjSJQYMGAfCFL3yB/fffnz/84Q8ALFiwgH/+539mzJgx\nAOy333471T460zQ1ZswYxo4diySGDx/OWWedxb333tv+ieQS0aOPPspbb73FoEGDOOigg1qPDRo0\niPPOO4/ddtuNU089lQMPPJD/+q//4sUXX+Suu+7iRz/6EXvssQcDBgzgm9/8JosXLwbg+uuv56KL\nLuKAAw6grq6OCy+8kNWrV7NhwwbuuusuDjnkED73uc+x22678c1vfpPBg99dlaNXr16sW7eOTZs2\n0bt3b4466qgO/z+UwsnEzKrWokWLOPzww+nXrx/9+vXj8ccf5+WXXwZgw4YNjBw5sizvs3btWk48\n8UT22Wcf+vbty8UXX9z6Pm3Zc889WbJkCddddx377LMPJ554Ik899VTr8SFDdl6lfMSIEbzwwgus\nW7eOrVu3ss8++9C/f3/69evH2WefzUsv5db9W7duHTNnzqR///7079+fvffeG0ls2rSJF1544T1N\nduntK6+8kh07djB27Fj+7u/+jptvvrmU/5oOczOXmRXV2Wapclq/fj1nnXUW99xzDx//+McBOPzw\nw1trHMOGDePZZ58teG5+k9YHPvABtmzZ0rq9ffv21j/cAF//+tcZM2YMS5YsYc8992Tu3Lncfvvt\nHYrzuOOO47jjjuPtt9/m4osv3qlWs2nTzgvLrl+/nsbGRoYNG8Yee+zBK6+8UrD5bfjw4fzLv/xL\nwecdTz/99E7PTyCXWFsMHDiQG264AYD777+fY489lk996lPst99+HbqfXeWaiZlVpTfffJO6ujoG\nDBjAjh07uPnmm3nssXcXVf3qV7/KVVddxUMPPQTkHjy3/FEdNGjQTuNCDjjgAN566y3uuusutm3b\nxg9+8APeeeed1uN//etfqa+vZ88992TNmjVcd911HYrxxRdfZNmyZWzZsoVevXqx1157UVdXt9Px\nq6++mm3btnHrrbeyZs0aJk6cyODBg/nMZz7Dt771Lf76178SETz33HPcd999AEyfPp0f/vCHPPHE\nEwC8/vrr3HbbbQCccMIJPPHEE9xxxx1s376duXPnsnnz5tb3vO2221qTWN++famrq9sppqxk/g6S\nxktaI+lpSRcUKTNP0lpJq5MVFNPH6iQ9JGlZal8/ScslPSXpV5L6ZH0fZta1DjroIL7zne8wbtw4\nBg8ezOOPP84nP/nJ1uOf//znufjiizn99NOpr6/nc5/7XOvD74suuojvf//79O/fnzlz5lBfX89P\nfvITzjzzTIYOHcoHP/hBhg4d2nqtq666ip///OfU19czffp0Jk+evFMsxR7e79ixgzlz5jBkyBAG\nDBjAfffdt1MiOvLII1m7di0DBgzgkksu4fbbb6dfv35ArgnvnXfeYfTo0fTv358vfOELrUnh5JNP\n5sILL2Ty5Mn07duXj370o9x9990A7L333tx6661ccMEFDBgwgGeffXan/5dVq1Zx5JFHUl9fz8kn\nn8y8efPYd999S/hOdEymswZLqgOeBj4NvEBuTfjJEbEmVWYCMCMiTpB0JDA3Isaljn8L+HugPiJO\nSvZdDrwSEVckCapfRFxY4P09a7BZOzxrcDYWLlzIggULWmsb1ag7zRo8FlgbEesiYiuwGGjMK9MI\nLAKIiJVAH0mDACQNBSYCPy1wzsLk9ULg5GzCNzOzjsj6AfwQYENqeyO5BNNWmU3JvmbgR8D5QH4z\n1sCIaAaIiM2SBpYzaKt+S1c8wpK7HuDtd7aye+9enDbhCBqPObTSYZn1WFXbm0vSCUBzRKyW1AC0\nVeUqWkefNWtW6+uGhgav3VwjWhIJwNvvbGXJXQ84mVhVmTZtGtOmTat0GB3S1NREU1NTSdfIOpls\n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\nwMf3AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pmf = thinkstats2.Pmf(speeds, 'actual speeds')\n", "thinkplot.Pmf(pmf)\n", "thinkplot.Config(xlabel='Speed (mph)', ylabel='PMF')" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Solution\n", "\n", "def ObservedPmf(pmf, speed, label=None):\n", " \"\"\"Returns a new Pmf representing speeds observed at a given speed.\n", "\n", " The chance of observing a runner is proportional to the difference\n", " in speed.\n", "\n", " Args:\n", " pmf: distribution of actual speeds\n", " speed: speed of the observing runner\n", " label: string label for the new dist\n", "\n", " Returns:\n", " Pmf object\n", " \"\"\"\n", " new = pmf.Copy(label=label)\n", " for val in new.Values():\n", " diff = abs(val - speed)\n", " new[val] *= diff\n", " new.Normalize()\n", " return new\n" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZMAAAEPCAYAAACHuClZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmcVOWd7/HPl9UliriAyqaCMdHMVSODeJkkjSvgghOT\niG2CW4ze2COTucNo4szQmMW4ZjSaoIbJlSSomWTugAYNZrCdmAyKC26I4ERZFXG7jhhZf/ePOt05\nFFW9UHW6qqu/79erX9Y55zmnfkegf+dZzvMoIjAzMytFj0oHYGZmXZ+TiZmZlczJxMzMSuZkYmZm\nJXMyMTOzkjmZmJlZyTJPJpLGSVoqaZmkK4qUuUXSckmLJR2Vd6yHpKckzU3tmyZpdbL/KUnjsr4P\nMzMrrleWF5fUA7gVOAFYCyySNCcilqbKjAeGR8Shko4FZgCjU5eZAiwB9sy7/E0RcVOW8ZuZWftk\nXTMZBSyPiBURsRm4B5iYV2YiMAsgIh4D+kkaCCBpMDAB+FGBayuzqM3MrEOyTiaDgFWp7dXJvtbK\nrEmV+R4wFSj0mn5D0iz2I0n9yhSvmZnthKrtgJd0KrAuIhaTq4WkayI/AA6JiKOA1wE3d5mZVVCm\nfSbkahlDU9uDk335ZYYUKPM54AxJE4BdgT0kzYqIyRGxPlX+TuC+Ql8uyROPmZnthIjoUFdC1jWT\nRcAIScMk9QEmAXPzyswFJgNIGg28GxHrIuIbETE0Ig5JzlsQEc3l9k+d/1ng+WIBRETN/kybNq3i\nMfj+fG++v9r72RmZ1kwiYqukBmA+ucQ1MyJelHRJ7nDcERHzJE2Q9DKwAbigHZe+LhlCvA14Fbgk\no1swM7N2yLqZi4h4EDgsb9/tedsNbVzjEeCR1PbkcsZoZmalqdoOeGtbXV1dpUPIVC3fXy3fG/j+\nuiPtbPtYVyApavn+zMyyIInoYAd85s1cZlZ+Bx10ECtWrKh0GNbFDRs2jFdffbUs13LNxKwLSp4c\nKx2GdXHF/h7tTM3EfSZmZlYyJxMzMyuZk4mZmZXMycTMOtUFF1zAP/7jP1Y6jA6ZPn06X/rSlyod\nRlGPPPIIQ4YMabtghpxMzMzaQaruVS8qHZ+TiZnVnK1bt1Y6hG7HycTMym7p0qWMHTuW/v3782d/\n9mfcd9/2E3uvX7+ek08+mT333JOxY8eycuXKlmNf+9rXGDhwIP369ePII49kyZIlAGzatIm//du/\nZdiwYRxwwAF89atfZePGjcCfmnmuu+46DjjgAC688EIOP/xw5s2b13LdrVu3MmDAABYvXgzAwoUL\nGTNmDP379+foo4/mkUdaZmzi1Vdfpa6ujn79+nHKKafw5ptvFr3Xt956i9NPP53+/fuzzz778JnP\nfKbl2MEHH8x3v/tdjjjiCPbZZx8uuugiNm3a1HL8/vvv5+ijj6Z///78xV/8Bc8991zLsddee43P\nfe5zDBgwgOHDh/P973+/5diHH37I+eefz957780nPvEJFi1atF1M1157LYMHD2bPPffk4x//OA8/\n/HArf1rl4ZcWzWrQWVNmlO1av7z50g6V37JlC6effjpf/vKXeeihh/jtb3/LxIkTefLJJzn00EMB\nmD17NvPmzWPUqFFMnTqVc889l9/+9rfMnz+fRx99lJdffpk99tiDl156ib322guAK664gldeeYVn\nn32WXr16UV9fz9VXX823v/1tAF5//XXeffddVq5cybZt27j++uuZPXs2EyZMAODBBx9kv/3246ij\njmLNmjWcdtpp/OxnP+OUU07h3//93znrrLN46aWX2Geffaivr2fMmDE89NBDLFy4kFNPPZUzzzyz\n4P3eeOONDBkyhLfeeouIYOHChdsdnz17Ng899BC77bYbp512Gt/61re4+uqrefrpp7nooov41a9+\nxTHHHMNPf/pTzjjjDJYtW0avXr04/fTT+cu//EvuvfdeVq1axYknnsjHPvYxTjrpJBobG3nllVd4\n5ZVXeP/99xk3blzL9y1btozbbruNJ598koEDB7Jy5cpOqam5ZmKdas6CZ6ifOpOzpsygfupM5ix4\nptIhWZktXLiQDRs2cMUVV9CrVy/Gjh3Laaedxt13391S5tRTT2XMmDH07t2bb3/72yxcuJA1a9bQ\nu3dv/vu//5slS5YQERx22GEMHDgQgDvvvJPvfe979OvXj913350rr7xyu2v27NmT6dOn07t3b/r2\n7cs555zD3Llz+fDDDwG4++67OeeccwD42c9+xqmnnsopp5wCwAknnMDIkSOZN28eq1at4oknnuDq\nq6+md+/efOpTn+L0008ver+9e/fmtdde45VXXqFnz56MGTNmu+N/9Vd/xYEHHshee+3FVVdd1RLz\nnXfeyaWXXsrIkSORxJe+9CX69u3LwoULWbRoEW+++SZXXXUVPXv25KCDDuLLX/4y99xzDwD/8i//\nwt///d/Tr18/Bg0axOWXX77d/4dNmzbx/PPPs2XLFoYOHcrBBx+803+e7eVkYp3q3geeYOOmzQBs\n3LSZex94osIRWbmtXbt2h5FFw4YNY82aP62Llz6+++67079/f9auXcvYsWNpaGjgsssuY+DAgVx6\n6aW8//77rF+/ng8++IBjjjmGvffem7333pvx48fz1ltvtVxnv/32o3fv3i3bw4cP5/DDD+e+++7j\nj3/8I3PnzuXcc88FYMWKFfz85z9vuVb//v353e9+x2uvvcbatWvp378/u+6663bxF/N3f/d3DB8+\nnJNPPpkRI0Zw7bXXbnd88ODB211n7dq1LTHceOON28WwevVq1q5dy4oVK1izZs12x6655hreeOON\nlv/H+ddN3/c//dM/0djYyMCBA6mvr+e1114rGn+5uJnLOlVzIim2beXR0aapcjrwwANZtWrVdvtW\nrlzJYYf9aSWK9PH333+ft99+mwMPPBCAhoYGGhoaePPNN/n85z/P9ddfT2NjI7vtthsvvPACBxxw\nQMHvLTSaadKkScyePZutW7dyxBFHtDyhDxkyhMmTJ3P77bfvcM7KlSt55513+OMf/9iSUFauXEmP\nHoWfvXfffXduuOEGbrjhBpYsWcLYsWMZNWoUY8eO3eFeV6xY0XKfQ4YM4aqrruLrX//6DtdcuHAh\nhxxyCC+99FLB72z+f/zxj3+85br59z1p0iTef/99vvKVr3DllVdy1113FbxWubhmYmZldeyxx7Lb\nbrtx3XXXsWXLFpqamrj//vtbmpgA5s2bx+9//3s2bdrEP/zDP3DccccxaNAgnnjiCR5//HG2bNnC\nrrvuyi677EKPHj2QxMUXX8xf//Vfs359btXuNWvWMH/+/FZjmTRpEvPnz+eHP/wh9fX1Lfu/+MUv\nct999zF//ny2bdvGhx9+yCOPPMLatWsZOnQoI0eOZNq0aWzevJlHH310hwEEab/61a/4r//6LwD2\n2GMPevXqRc+ePVuO33bbbaxZs4a3336b73znO0yaNAmAiy++mBkzZvD4448DsGHDBubNm8eGDRsY\nNWoUe+yxB9dddx0ffvghW7du5YUXXuCJJ3I1+c9//vNcc801vPvuu6xevZpbb7215fuWLVvGww8/\nzKZNm+jTpw+77rpr0URYTpl/g6RxkpZKWibpiiJlbpG0XNLiZAXF9LEekp6SNDe1r7+k+ZJekvRr\n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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "biased = ObservedPmf(pmf, 7, label='observed speeds')\n", "thinkplot.Pmf(biased)\n", "thinkplot.Config(xlabel='Speed (mph)', ylabel='PMF')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "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.11" } }, "nbformat": 4, "nbformat_minor": 0 }