{ "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": 15, "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": 16, "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": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nt/8PTX/Oa/NbjBsAAAAASUVORK5CYII=\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": 21, "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": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAEKCAYAAADq59mMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHMdJREFUeJzt3X2Y1WW97/H3pwEBA3YKbEKgQA+SiEE5IUa6NTc7jrnD\nnR4vzAc6R2Mf0bKydpBdWfuKc7hO7TIP6U6NA14phg8lmbYl0o2cg+BoPBNJijCIgg8kZrIFv+eP\n3z24HObphlmz1sDndV3rmnvdv4f1XQMzn/ndv9+6f4oIzMzMcryr0gWYmVnn4/AwM7NsDg8zM8vm\n8DAzs2wODzMzy+bwMDOzbA4PMzPL5vAwM7NsDg8zM8vWpdIFlEvfvn1jyJAhlS7DzKxTeeKJJ16M\niH6trXfIhseQIUOoq6urdBlmZp2KpGfbsp6HrczMLJvDw8zMsjk8zMws2yF7zsPMOp8333yT+vp6\n3njjjUqXcsjr3r07gwYNomvXrge0vcPDzKpGfX09vXr1YsiQIUiqdDmHrIjgpZdeor6+nqFDhx7Q\nPjxsZWZV44033qBPnz4OjjKTRJ8+fQ7qCM/hYWZVxcHRMQ72++zwMDOzbGU75yGpO7AY6JZe5+6I\nuE7S0cDPgCHAJuCCiHglbTMduAzYC3whIv4t9Z8MzAF6AA8AV4dvvm52yLvqO/PadX+zvnFhu+7v\ncFbOE+a7gY9HxGuSugJLJD0IfBpYFBEzJU0DpgFfkzQCmAScCBwD/EbS8RGxF7gJ+BywjCI8JgAP\nlrF2s/20xy8y//Kqbps2beKcc85hzZo17+i//PLL+fKXv8yIESP22+b6669nypQpHHnkkQD07NmT\n1157rd1q2rlzJ3fccQdTp05tU91z5syhrq6OWbNmtVsNTSnbsFUUGr6DXdMjgInA3NQ/Fzg3tScC\nd0bE7oh4BtgIjJE0AOgdEY+lo43bSrYxMyu7W2+9tcng2Lt3L9dffz2vv/562V57586d3HjjjWXb\n/4Eq6zkPSTWSVgDbgYURsQzoHxHb0irPA/1TeyCwpWTz+tQ3MLUb95uZtbs9e/Zw0UUXccIJJ3D+\n+efz+uuvc8YZZ+ybK69nz55cc801jBo1ihkzZvDcc89x5plncuaZZ+7bx7XXXsuoUaMYO3YsL7zw\nAnv37mXo0KFEBDt37qSmpobFixcDcPrpp/PUU0+xY8cOxo8fz4knnsjll1/O+9//fl588UWmTZvG\nH//4R0aPHs1Xv/rVNr2HLVu2cMYZZzBs2DC+/e1vt/83iTKHR0TsjYjRwCCKo4iRjZYHxdFIu5A0\nRVKdpLodO3a0127N7DCyYcMGpk6dyvr16+ndu/d+f/X/+c9/5pRTTmHlypV885vf5JhjjuHhhx/m\n4Ycf3rd87NixrFy5ktNPP51bbrmFmpoahg8fzrp161iyZAkf/vCHefTRR9m9ezdbtmzZ90v+4x//\nOGvXruX8889n8+bNAMycOZPjjjuOFStW8N3vfrdN72H58uXcc889rFq1irvuuqssk8R2yNVWEbET\neJjiXMULaSiK9HV7Wm0rMLhks0Gpb2tqN+5v6nVujojaiKjt16/VGYXNzPYzePBgxo0bB8DFF1/M\nkiVL3rG8pqaG8847r9ntjzjiCM455xwATj75ZDZt2gTAaaedxuLFi1m8eDHTp09nyZIlPP7443zk\nIx8BYMmSJUyaNAmACRMmcNRRRx3wexg/fjx9+vShR48efPrTn97vPbSHsoWHpH6S3pPaPYDxwO+B\nBcDktNpk4L7UXgBMktRN0lBgGLA8DXG9KmmsiguTLy3ZxsysXTX+/EPj5927d6empqbZ7bt27bpv\nm5qaGvbs2QMUw1OPPvooy5cv5+yzz2bnzp088sgjnHbaae38Dlp/D+2hnFdbDQDmSqqhCKn5EXG/\npKXAfEmXAc8CFwBExFpJ84F1wB7gynSlFcBU3r5U90F8pZXZYaESV6dt3ryZpUuXcuqpp3LHHXfw\nsY99jF/+8pfNrt+rVy927dpF3759W9zvmDFjuOSSSzj22GPp3r07o0eP5sc//jH3338/AOPGjWP+\n/Pl87Wtf46GHHuKVV155x/5zLFy4kJdffpkePXrwi1/8gtmzZ2dt3xblvNpqVUR8KCI+GBEjI+Kf\nU/9LEXFWRAyLiL+NiJdLtpkREcdFxPCIeLCkvy7t47iIuMqf8TCzchk+fDg/+tGPOOGEE3jllVe4\n4oorWlx/ypQpTJgw4R0nzJvSrVs3Bg8ezNixY4FiGGvXrl2cdNJJAFx33XU89NBDjBw5krvuuov3\nvve99OrViz59+jBu3DhGjhzZ5hPmY8aM4bzzzuODH/wg5513HrW1tW3aLocO1d/DtbW14TsJWnvy\n5zzKb/369ZxwwgmVLqMidu/eTU1NDV26dGHp0qVcccUVrFixoqyv2dT3W9ITEdFq2nhWXTOzKrB5\n82YuuOAC3nrrLY444ghuueWWSpfUIoeHmVkVGDZsGL/73e9aXGf16tVccskl7+jr1q0by5YtK2dp\nTXJ4mFlViQjPrNuMk046qd2Gsg72lIVn1TWzqtG9e3deeumlg/7FZi1ruBlU9+7dD3gfPvIws6ox\naNAg6uvr8QwR5ddwG9oD5fAws6rRtWvXA74tqnUsD1uZmVk2h4eZmWVzeJiZWTaHh5mZZXN4mJlZ\nNoeHmZllc3iYmVk2h4eZmWVzeJiZWTaHh5mZZXN4mJlZNoeHmZllc3iYmVk2h4eZmWVzeJiZWTaH\nh5mZZXN4mJlZNoeHmZllK1t4SBos6WFJ6yStlXR16v+WpK2SVqTH2SXbTJe0UdIGSZ8o6T9Z0uq0\n7AZJKlfdZmbWunLew3wPcE1EPCmpF/CEpIVp2Q8i4nulK0saAUwCTgSOAX4j6fiI2AvcBHwOWAY8\nAEwAHixj7WZm1oKyHXlExLaIeDK1dwHrgYEtbDIRuDMidkfEM8BGYIykAUDviHgsIgK4DTi3XHWb\nmVnrOuSch6QhwIcojhwAPi9plaTZko5KfQOBLSWb1ae+ganduN/MzCqk7OEhqSdwD/DFiHiVYgjq\nWGA0sA34l3Z8rSmS6iTV7dixo712a2ZmjZQ1PCR1pQiO2yPiXoCIeCEi9kbEW8AtwJi0+lZgcMnm\ng1Lf1tRu3L+fiLg5ImojorZfv37t+2bMzGyfcl5tJeAnwPqI+H5J/4CS1f4BWJPaC4BJkrpJGgoM\nA5ZHxDbgVUlj0z4vBe4rV91mZta6cl5tNQ64BFgtaUXq+zpwoaTRQACbgH8EiIi1kuYD6yiu1Loy\nXWkFMBWYA/SguMrKV1qZmVVQ2cIjIpYATX0e44EWtpkBzGiivw4Y2X7VmZnZwfAnzM3MLJvDw8zM\nsjk8zMwsm8PDzMyyOTzMzCybw8PMzLI5PMzMLJvDw8zMsjk8zMwsm8PDzMyyOTzMzCybw8PMzLI5\nPMzMLJvDw8zMspXzfh5mFXfVd+Yd9D5mfePCdqjE7NDiIw8zM8vm8DAzs2wODzMzy+bwMDOzbA4P\nMzPL5vAwM7NsDg8zM8vm8DAzs2wODzMzy+bwMDOzbGULD0mDJT0saZ2ktZKuTv1HS1oo6an09aiS\nbaZL2ihpg6RPlPSfLGl1WnaDJJWrbjMza105jzz2ANdExAhgLHClpBHANGBRRAwDFqXnpGWTgBOB\nCcCNkmrSvm4CPgcMS48JZazbzMxaUbbwiIhtEfFkau8C1gMDgYnA3LTaXODc1J4I3BkRuyPiGWAj\nMEbSAKB3RDwWEQHcVrKNmZlVQIec85A0BPgQsAzoHxHb0qLngf6pPRDYUrJZfeobmNqN+83MrELK\nHh6SegL3AF+MiFdLl6UjiWjH15oiqU5S3Y4dO9prt2Zm1khZw0NSV4rguD0i7k3dL6ShKNLX7al/\nKzC4ZPNBqW9rajfu309E3BwRtRFR269fv/Z7I2Zm9g7lvNpKwE+A9RHx/ZJFC4DJqT0ZuK+kf5Kk\nbpKGUpwYX56GuF6VNDbt89KSbczMrALKeSfBccAlwGpJK1Lf14GZwHxJlwHPAhcARMRaSfOBdRRX\nal0ZEXvTdlOBOUAP4MH0MDOzCilbeETEEqC5z2Oc1cw2M4AZTfTXASPbrzozMzsY/oS5mZllc3iY\nmVk2h4eZmWUr5wlzM2vGVd+Zd9D7mPWNC9uhErMD4yMPMzPL5vAwM7NsDg8zM8vm8DAzs2wODzMz\ny+bwMDOzbA4PMzPL5vAwM7NsDg8zM8vm8DAzs2wODzMzy9ZieEiaU9Ke3MKqZmZ2GGntyGNUSfvq\nchZiZmadR2vhER1ShZmZdSqtTck+SNINFLeTbWjvExFfKFtlZmZWtVoLj6+WtOvKWYiZmXUeLYZH\nRMztqELMzKzzaDE8JC1oaXlEfKp9yzEzs86gtWGrU4EtwDxgGcW5DzMzO8y1Fh7vBcYDFwKfAX4F\nzIuIteUuzMzMqleLl+pGxN6I+HVETAbGAhuBRyRd1SHVmZlZVWp1ehJJ3SR9GvgpcCVwA/DzNmw3\nW9J2SWtK+r4laaukFelxdsmy6ZI2Stog6RMl/SdLWp2W3SDJQ2dmZhXW2gnz24CRwAPAtyNiTUvr\nNzIHmAXc1qj/BxHxvUavMwKYBJwIHAP8RtLxEbEXuAn4HMU5lweACcCDGXWYmVk7a+3I42JgGMXU\nJEslvZoeuyS92tKGEbEYeLmNdUwE7oyI3RHxDMXw2BhJA4DeEfFYRARFEJ3bxn2amVmZtHbO410R\n0avk0Ts9ekVE7wN8zc9LWpWGtY5KfQMprupqUJ/6BqZ2434zM6ug1mbV7S7pi5JmSZoiqbWrs1pz\nE3AsMBrYBvzLQe7vHVKNdZLqduzY0Z67NjOzEq0NW80FaoHVwNkc5C/7iHghXcH1FnALMCYt2goM\nLll1UOrbmtqN+5vb/80RURsRtf369TuYUs3MrAWthceIiLg4In4MnA+cdjAvls5hNPgHoOEE/AJg\nUrqyayjFeZblEbENeFXS2HSV1aXAfQdTg5mZHbzWhqHebGhExJ6cq2QlzQPOAPpKqgeuA86QNJpi\nqvdNwD+mfa+VNB9YB+wBrkxXWgFMpbhyqwfFVVa+0srMrMJaC49RJVdVCeiRnguIlk6aR8SFTXT/\npIX1ZwAzmuivo7hc2MzMqkRrs+rWdFQhZmbWebT6CXMzM7PGHB5mZpbN4WFmZtkcHmZmls3hYWZm\n2RweZmaWzeFhZmbZHB5mZpbN4WFmZtkcHmZmls3hYWZm2RweZmaWzeFhZmbZHB5mZpbN4WFmZtkc\nHmZmls3hYWZm2RweZmaWzeFhZmbZHB5mZpbN4WFmZtkcHmZmls3hYWZm2RweZmaWrWzhIWm2pO2S\n1pT0HS1poaSn0tejSpZNl7RR0gZJnyjpP1nS6rTsBkkqV81mZtY25TzymANMaNQ3DVgUEcOARek5\nkkYAk4AT0zY3SqpJ29wEfA4Ylh6N92lmZh2sbOEREYuBlxt1TwTmpvZc4NyS/jsjYndEPANsBMZI\nGgD0jojHIiKA20q2MTOzCunocx79I2Jbaj8P9E/tgcCWkvXqU9/A1G7cb2ZmFVSxE+bpSCLac5+S\npkiqk1S3Y8eO9ty1mZmV6OjweCENRZG+bk/9W4HBJesNSn1bU7txf5Mi4uaIqI2I2n79+rVr4WZm\n9raODo8FwOTUngzcV9I/SVI3SUMpTowvT0Ncr0oam66yurRkGzMzq5Au5dqxpHnAGUBfSfXAdcBM\nYL6ky4BngQsAImKtpPnAOmAPcGVE7E27mkpx5VYP4MH0MDOzCipbeETEhc0sOquZ9WcAM5rorwNG\ntmNpZmZ2kPwJczMzy+bwMDOzbA4PMzPL5vAwM7NsDg8zM8vm8DAzs2wODzMzy+bwMDOzbA4PMzPL\n5vAwM7NsDg8zM8vm8DAzs2wODzMzy+bwMDOzbA4PMzPLVrb7eZgdqKu+M++g9zHrG83dTsbM2oOP\nPMzMLJvDw8zMsjk8zMwsm8PDzMyy+YS5WSfnCwysEnzkYWZm2RweZmaWzeFhZmbZHB5mZpatIuEh\naZOk1ZJWSKpLfUdLWijpqfT1qJL1p0vaKGmDpE9UomYzM3tbJY88zoyI0RFRm55PAxZFxDBgUXqO\n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\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": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Pmf({1: 0.2, 2: 0.4, 3: 0.2, 5: 0.2})" ] }, "execution_count": 24, "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": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.4" ] }, "execution_count": 25, "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": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.4" ] }, "execution_count": 26, "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": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.6000000000000001" ] }, "execution_count": 27, "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": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.30000000000000004" ] }, "execution_count": 28, "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": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.8999999999999999" ] }, "execution_count": 29, "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": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 30, "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": 31, "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": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEKCAYAAAD9xUlFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGApJREFUeJzt3Xu0nXWd3/H3h3AJhQg1iagECBQGyABmYkAUqmgrRUGj\nDjOAOF4YpeBQx65qxdYq3pba4swo4EAUVnSGS0HUIsRBi1JRQBIwINcxBZSwGIiMFygEiH77x37O\n4+Zwcs5JOM85yc77tdZe57n89rO/v03Yn/1c9u9JVSFJEsAWU12AJGnjYShIklqGgiSpZShIklqG\ngiSpZShIklqGgiSpZShIklqGgiSpteVUF7C+Zs2aVXPnzp3qMiRpk3LjjTf+oqpmj9VukwuFuXPn\nsnz58qkuQ5I2KUl+Np52Hj6SJLUMBUlSy1CQJLU2uXMKI3nqqadYtWoVa9asmepSNinTp09nzpw5\nbLXVVlNdiqSNxECEwqpVq5gxYwZz584lyVSXs0moKh5++GFWrVrF7rvvPtXlSNpIDMThozVr1jBz\n5kwDYT0kYebMme5dSXqagQgFwEDYAL5nkoYbmFCQJD17A3FOYbhTPnHhhG7vzA8dN6HbG8nVV1/N\n6aefzuWXX75Bz1+yZAmHH344L3zhC4Hf/8hv1qxZE1mmpAE3kKGwsfrtb3/LtGnTOtn2kiVL2G+/\n/dpQkDZVI32pm4wvZurp9PBRkiOS3JVkZZJTR1h/WJJfJ1nRPD7cZT1duvfee9lnn304/vjj2Xff\nfTn66KN57LHHmDt3Lh/4wAdYsGABl1xyCcuWLeOAAw5g/vz5vP/972e//fZ7xrZOO+00TjjhBA47\n7DD22GMPPv/5z7frPv7xj7P33ntz6KGHctxxx3H66afz1a9+leXLl3P88cczf/58Hn/8cQDOOOMM\nFixYwP7778+dd945ae+FpE1XZ6GQZBpwFvAaYB5wXJJ5IzS9pqrmN4+PdVXPZLjrrrt497vfzR13\n3MFznvMcvvCFLwAwc+ZMbrrpJo499lje8Y53cM4557BixYpR9xruvPNOrrzySm644QY++tGP8tRT\nT7Fs2TIuvfRSbr75Zr71rW+1Y0AdffTRLFy4kPPPP58VK1aw7bbbAjBr1ixuuukmTj75ZE4//fTu\n3wBJm7wu9xQOAlZW1d1V9SRwEbCow9ebcrvssguHHHIIAG95y1v4wQ9+AMAxxxwDwK9+9SseeeQR\nXvrSlwLw5je/eZ3bOvLII9lmm22YNWsWz3ve83jwwQf54Q9/yKJFi5g+fTozZszgda973aj1vOlN\nbwLgxS9+Mffee++z7Z6kzUCXobAzcF/f/Kpm2XAvS3JLkm8l+cMO6+nc8Es8h+a322679d7WNtts\n005PmzaNtWvXbvA2NvT5kjY/U31J6k3ArlV1AHAG8I2RGiU5McnyJMtXr149qQWuj5///Odcd911\nAFxwwQUceuihT1u/4447MmPGDH70ox8BcNFFF63X9g855BC++c1vsmbNGh599NGnXak0Y8YMHnnk\nkWfZA0mbuy6vProf2KVvfk6zrFVVv+mbXprkC0lmVdUvhrVbDCwGWLhwYY31wlN1pcLee+/NWWed\nxQknnMC8efM4+eSTOeOMM57W5txzz+Vd73oXW2yxBa94xSvYYYcdxr39Aw88kNe//vUccMAB7LTT\nTuy///7t89/+9rdz0kknse2227bBJEnrK1VjfsZu2IaTLYF/BP4NvTBYBry5qm7ra/N84MGqqiQH\nAV8FdqtRilq4cGENv8nOHXfcwb777ttBL8bv3nvv5aijjuLWW28dtd2jjz7K9ttvD8CnP/1pHnjg\nAT73uc+N+3WGnv/YY4/x8pe/nMWLF7NgwYINrntjeO+kfl6S2o0kN1bVwrHadbanUFVrk5wCXAlM\nA86rqtuSnNSsPxs4Gjg5yVrgceDY0QJhEFxxxRV86lOfYu3atey2224sWbJkvZ5/4okncvvtt7Nm\nzRre9ra3PatAkKThOv3xWlUtBZYOW3Z23/SZwJld1jBZ5s6dO+ZeAvSuRBq6GmlDXHDBBRv8XEka\ny1SfaJ4wA76D0QnfM0nDDUQoTJ8+nYcfftgPufUwdD+F6dOnT3UpkjYiAzH20Zw5c1i1ahUb8+Wq\nG6OhO69J0pCBCIWtttrKu4dJ0gQYiMNHkqSJYShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShI\nklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqG\ngiSpZShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqdhkKSI5LclWRlklNHaXdgkrVJju6y\nHknS6DoLhSTTgLOA1wDzgOOSzFtHu88A3+6qFknS+HS5p3AQsLKq7q6qJ4GLgEUjtPsPwKXAQx3W\nIkkahy5DYWfgvr75Vc2yVpKdgTcCfzvahpKcmGR5kuWrV6+e8EIlST1TfaL5b4APVNXvRmtUVYur\namFVLZw9e/YklSZJm58tO9z2/cAuffNzmmX9FgIXJQGYBbw2ydqq+kaHdUmS1qHLUFgG7JVkd3ph\ncCzw5v4GVbX70HSSJcDlBoIkTZ3OQqGq1iY5BbgSmAacV1W3JTmpWX92V68tSdowXe4pUFVLgaXD\nlo0YBlX19i5rkSSNbapPNEuSNiKGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqG\ngiSpZShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqGgiSp\nZShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqGgiSpZShIklqdhkKSI5LclWRlklNHWL8o\nyS1JViRZnuTQLuuRJI1uy642nGQacBbwamAVsCzJZVV1e1+zq4DLqqqSHABcDOzTVU2SpNF1uadw\nELCyqu6uqieBi4BF/Q2q6tGqqmZ2O6CQJE2ZLkNhZ+C+vvlVzbKnSfLGJHcCVwAndFiPJGkMU36i\nuaq+XlX7AG8APj5SmyQnNucclq9evXpyC5SkzUiXoXA/sEvf/Jxm2Yiq6vvAHklmjbBucVUtrKqF\ns2fPnvhKJUlAt6GwDNgrye5JtgaOBS7rb5BkzyRpphcA2wAPd1iTJGkUnV19VFVrk5wCXAlMA86r\nqtuSnNSsPxv4Y+CtSZ4CHgeO6TvxLEmaZKOGQpI/qapLkuxeVfes78araimwdNiys/umPwN8Zn23\nK0nqxliHjz7Y/L2060IkSVNvrMNHDyf5NrB7ksuGr6yq13dTliRpKowVCkcCC4C/Az7bfTmSpKk0\naig0v0S+PsnLqsofCEjSgBvv1Ue7JVkM7Nb/nKo6oJOqJElTYryhcD7wfuAnwO+6K0eSNJXGGwqr\nq+oZJ5olSYNlvKHwkSRfojfU9RNDC6vqa51UJUmaEuMNhXfQu8/BVvz+8FEBhoIkDZDxhsKBVbV3\np5VIkqbceAfEuzbJvE4rkSRNufHuKRwMrEhyD71zCgHKS1IlabCMNxSO6LQKSdJGYaxRUqcDJwF7\n0vuNwrlVtXYyCpMkTb6xzil8GVhILxBeg+MfSdJAG+vw0byq2h8gybnADd2XJEmaKmPtKTw1NOFh\nI0kafGPtKbwoyW+a6QDbNvNDVx89p9PqJEmTaqyhs6dNViGSpKk33h+vSZI2A4aCJKllKEiSWoaC\nJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKllKEiSWoaCJKnVaSgkOSLJXUlWJjl1hPXHJ7kl\nyU+SXJvkRV3WI0kaXWehkGQacBa9O7bNA45LMm9Ys3uAVzQ38vk4sLireiRJY+tyT+EgYGVV3V1V\nTwIXAYv6G1TVtVX1y2b2emBOh/VIksbQZSjsDNzXN7+qWbYufw58q8N6JEljGOvOa5MiySvphcKh\n61h/InAiwK677jqJlUnS5qXLPYX7gV365uc0y54myQHAl4BFVfXwSBuqqsVVtbCqFs6ePbuTYiVJ\n3YbCMmCvJLsn2Ro4Frisv0GSXYGvAX9WVf/YYS2SpHHo7PBRVa1NcgpwJTANOK+qbktyUrP+bODD\nwEzgC0kA1lbVwq5qkiSNrtNzClW1FFg6bNnZfdPvBN7ZZQ2SpPHzF82SpJahIElqGQqSpJahIElq\nGQqSpJahIElqGQqSpJahIElqGQqSpJahIElqGQqSpJahIElqGQqSpJahIElqGQqSpJahIElqGQqS\npJahIElqGQqSpJahIElqGQqSpJahIElqGQqSpJahIElqGQqSpJahIElqGQqSpNaWU12AJI3HKZ+4\n8BnLzvzQcVNQyWBzT0GS1DIUJEktQ0GS1DIUJEmtTkMhyRFJ7kqyMsmpI6zfJ8l1SZ5I8r4ua5Ek\nja2zq4+STAPOAl4NrAKWJbmsqm7va/bPwHuAN3RVhyRp/LrcUzgIWFlVd1fVk8BFwKL+BlX1UFUt\nA57qsA5J0jh1GQo7A/f1za9qlq23JCcmWZ5k+erVqyekOEnSM20SJ5qranFVLayqhbNnz57qciRp\nYHUZCvcDu/TNz2mWSZI2Ul2GwjJgryS7J9kaOBa4rMPXkyQ9S51dfVRVa5OcAlwJTAPOq6rbkpzU\nrD87yfOB5cBzgN8leS8wr6p+01VdkqR163RAvKpaCiwdtuzsvul/ondYSZK0EdgkTjRLkiaHoSBJ\nahkKkqSWoSBJahkKkqSWoSBJahkKkqSWoSBJanX64zVJWpdTPnHhM5ad+aHjpqAS9TMUJG3SDJeJ\n5eEjSVLLUJAktQwFSVLLUJAktQwFSVLLq48kdcqrgzYt7ilIklqGgiSpZShIklqGgiSp5YlmSQPJ\n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\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": 33, "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": 35, "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": 36, "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": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtQAAAF3CAYAAACFTdwtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu0XHV99/H3N+ckJKBVIKkEguUid5EUUgIN9LEgyEWb\neuVi1WgtCy2CsrTm0S4fbasFrZfygKRIUZQq9FGpqCAoogQFTAKI4Z5QhGDVEAWJIMlJvs8fsxOG\ncC7J/GafmTnn/VrrrOzZt/nOZp8vn7NnXyIzkSRJktSaCZ0uQJIkSeplBmpJkiSpgIFakiRJKmCg\nliRJkgoYqCVJkqQCBmpJkiSpQK2BOiKOiYh7ImJZRMwfYp6XRsRtEXFHRPygznokSUOzZ0tSa6Ku\n+1BHRB9wL3AUsAJYBJyUmXc2zfN84EfAMZn5YET8YWb+qpaCJElDsmdLUuvqPEJ9MLAsM+/PzDXA\npcDcTeY5GfhaZj4IYGOWpI6xZ0tSi+oM1DsBDzW9XlGNa7YnsG1EfD8ilkTEm2qsR5I0NHu2JLWo\nvwve/yDgSGAKcGNE3JSZ9zbPFBGnAKcAbLPNNgftvffeo16oJLXDkiVLHsnMaZ2uo0X2bEnjyub2\n7DoD9cPAzk2vZ1Tjmq0AVmXm74DfRcT1wAE0zuPbKDMvAC4AmDVrVi5evLi2oiWpThHxs07XMAR7\ntiRtYnN7dp2nfCwC9oiIXSNiEnAicMUm83wdOCwi+iNia2A2cFeNNUmSBmfPlqQW1XaEOjMHIuI0\n4GqgD7goM++IiFOr6Qsy866I+DZwO7AeuDAzl9ZVkyRpcPZsSWpdbbfNq4tfH0rqZRGxJDNndbqO\n0WLPltTLNrdnd/qiREljyNq1a1mxYgW///3vO11Kx02ePJkZM2YwceLETpciSYOyZz+ttGcbqCW1\nzYoVK3juc5/LLrvsQkR0upyOyUxWrVrFihUr2HXXXTtdjiQNyp7d0I6eXeujxyWNL7///e/Zfvvt\nx3VjBogItt9+e4/6SOpq9uyGdvRsA7WkthrvjXkDt4OkXmCvaijdDgZqSWPKOeecwz777MO2227L\nWWedtdnLPfDAA3zpS1+qsTJJ0qbGSs/2HGpJtTnt/Bvaur5z337YiPN85jOf4bvf/S4zZswYdPrA\nwAD9/c9ufRua88knn1xcpyRp84yVnm2gljRmnHrqqdx///0ce+yxvPWtb2X58uWce+65zJs3j8mT\nJ3PrrbcyZ84c5s6dyxlnnAE0vua7/vrrmT9/PnfddRczZ87kzW9+M0cffTRvectbWLNmDevXr+er\nX/0qe+yxR4c/oSSNHWOpZxuoJY0ZCxYs4Nvf/jbXXXcd3/zmN58xbcWKFfzoRz+ir6+PV77ylZx3\n3nnMmTOH1atXM3nyZM466yz+5V/+ZeNy73znOznjjDN4wxvewJo1a1i3bl0nPpIkjYrXfPSa2tb9\n1fcfPej4sdSzPYda0rjwute9jr6+PgDmzJnDmWeeyTnnnMOjjz466NeJhx56KB/96Ec5++yz+dnP\nfsaUKVNGu2RJGrd6rWcbqCWNC9tss83G4fnz53PhhRfy5JNPMmfOHO6+++5nzX/yySdzxRVXMGXK\nFI477ji+973vjWa5kjSu9VrP9pQPSePO8uXL2X///dl///1ZtGgRd999NzvvvDOPP/74xnnuv/9+\ndtttN04//XQefPBBbr/9do444ogOVi1J9RnqtIxu0As920Atadz59Kc/zXXXXceECRPYb7/9OPbY\nY5kwYQJ9fX0ccMABzJs3j6eeeoovfvGLTJw4kR122IH3v//9nS5bksalXujZkZmj+oalZs2alYsX\nL+50GZIGcdddd7HPPvt0uoyuMdj2iIglmTmrQyWNOnu21L3s2c9U0rM9h1qSJEkqYKCWJEmSChio\nJUmSpAIGakmSJKmAgVqSJEkqYKCWJEmSChioJY1pjz76KJ/5zGc2vv7+97/PK17xig5WJEkaTi/2\nbR/sIqk2n/ze8rau78wjdt/iZTY05ne84x1tqWFgYID+flunJNWlF/u2/1eQNKZ88pOf5KKLLgLg\nbW97GzfddBPLly9n5syZHHXUURx//PGsXr2a1772tSxdupSDDjqISy65hIhgyZIlnHnmmaxevZqp\nU6fy+c9/nunTp/PSl76UmTNncsMNN3DSSSfxwhe+kA9/+MP09fXxvOc9j+uvv77Dn1qSetdY6NsG\nakljxpIlS/jc5z7HzTffTGYye/ZsLrnkEpYuXcptt90GNL46vPXWW7njjjvYcccdmTNnDj/84Q+Z\nPXs273znO/n617/OtGnTuOyyy/jABz6wscmvWbOGDU/823///bn66qvZaaedePTRRzv2eSWpXT7w\njbtrW/dHXrn3kNPGSt82UEsaM2644QZe9apXsc022wDw6le/moULFz5rvoMPPpgZM2YAMHPmTB54\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": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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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": 40, "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": 41, "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": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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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": 43, "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": 44, "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": 45, "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": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\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": 47, "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
01.748448-1.705241
1-0.3661540.341385
2-0.5162551.719845
31.2242720.982769
\n", "
" ], "text/plain": [ " 0 1\n", "0 1.748448 -1.705241\n", "1 -0.366154 0.341385\n", "2 -0.516255 1.719845\n", "3 1.224272 0.982769" ] }, "execution_count": 47, "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": 48, "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
01.748448-1.705241
1-0.3661540.341385
2-0.5162551.719845
31.2242720.982769
\n", "
" ], "text/plain": [ " A B\n", "0 1.748448 -1.705241\n", "1 -0.366154 0.341385\n", "2 -0.516255 1.719845\n", "3 1.224272 0.982769" ] }, "execution_count": 48, "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": 49, "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
a1.748448-1.705241
b-0.3661540.341385
c-0.5162551.719845
d1.2242720.982769
\n", "
" ], "text/plain": [ " A B\n", "a 1.748448 -1.705241\n", "b -0.366154 0.341385\n", "c -0.516255 1.719845\n", "d 1.224272 0.982769" ] }, "execution_count": 49, "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": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "a 1.748448\n", "b -0.366154\n", "c -0.516255\n", "d 1.224272\n", "Name: A, dtype: float64" ] }, "execution_count": 51, "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": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "A 1.748448\n", "B -1.705241\n", "Name: a, dtype: float64" ] }, "execution_count": 53, "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": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "A 1.748448\n", "B -1.705241\n", "Name: a, dtype: float64" ] }, "execution_count": 54, "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": 55, "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
a1.748448-1.705241
c-0.5162551.719845
\n", "
" ], "text/plain": [ " A B\n", "a 1.748448 -1.705241\n", "c -0.516255 1.719845" ] }, "execution_count": 55, "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": 56, "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
a1.748448-1.705241
b-0.3661540.341385
c-0.5162551.719845
\n", "
" ], "text/plain": [ " A B\n", "a 1.748448 -1.705241\n", "b -0.366154 0.341385\n", "c -0.516255 1.719845" ] }, "execution_count": 56, "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": 57, "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
a1.748448-1.705241
b-0.3661540.341385
\n", "
" ], "text/plain": [ " A B\n", "a 1.748448 -1.705241\n", "b -0.366154 0.341385" ] }, "execution_count": 57, "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": 58, "metadata": { "collapsed": false }, "outputs": [], "source": [ "resp = nsfg.ReadFemResp()" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Solution goes here\n", "pmf = thinkstats2.Pmf(resp.numkdhh, label='actual')" ] }, { "cell_type": "code", "execution_count": 80, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "actual\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution goes here\n", "print('actual')\n", "thinkplot.pmf(pmf)\n", "thinkplot.Config(xlabel='# of children', ylabel='PMF')" ] }, { "cell_type": "code", "execution_count": 81, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Solution goes here\n", "# biased numbers\n", "biased = BiasPmf(pmf, label='Biased')" ] }, { "cell_type": "code", "execution_count": 82, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nEhMO70RVqAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution goes here\n", "thinkplot.PrePlot(2)\n", "thinkplot.Pmfs([pmf, biased])\n", "thinkplot.Config(xlabel='number of children', ylabel='pmf')" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0242051550438309" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution goes here\n", "# mean of pmf\n", "pmf.Mean()" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2.4036791006642821" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Solution goes here\n", "# biased mean\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": 86, "metadata": { "collapsed": false }, "outputs": [], "source": [ "live, firsts, others = first.MakeFrames()" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "collapsed": false }, "outputs": [], "source": [ "preg_map = nsfg.MakePregMap(live)" ] }, { "cell_type": "code", "execution_count": 99, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Solution goes here\n", "hist = thinkstats2.Hist()\n", "\n", "for i,j in preg_map.items():\n", "# print('i=',i,'j=',j)\n", " if len(j) >= 2:\n", " pair = (preg.loc[j[0:2]].prglngth)\n", " diff = np.diff(pair)[0]\n", " hist[diff] += 1" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution goes here\n", "thinkplot.Hist(hist)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Solution goes here" ] }, { "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": 101, "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": 102, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEKCAYAAAA4t9PUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+UVOWd5/H3R0TxVwJoxxAwC54hBiI/xBbJmrgOqAE1\ndgxZo4k/kwlDFINuYiSZyUyysznjZpJxxHHpQWUjZxzFE+PCGqKikTGTkcTGKILEtQ8x2oRIaxTH\naFTku3/U01CWVV3VVN+uqq7P65w6Vfe5z6373FL4cr/3+aGIwMzMbG/tU+sGmJlZY3MgMTOzqjiQ\nmJlZVRxIzMysKg4kZmZWFQcSMzOrigOJmZlVxYHEzMyq4kBiZmZV2bfWDRgIhx12WIwdO7bWzTAz\nayjr169/PiJaytVrikAyduxYOjo6at0MM7OGIuk3ldRzasvMzKriQGJmZlVxIDEzs6o0xTMSM6ud\nN998k66uLv74xz/WuilWwrBhwxgzZgxDhw7dq+MdSMwsU11dXRxyyCGMHTsWSbVujhWICF544QW6\nuroYN27cXn1HpqktSbMlPSmpU9KiIvslaXHav0HStIL9QyT9UtJdeWUjJa2R9FR6H5HlNZhZdf74\nxz9y6KGHOojUKUkceuihVd0xZhZIJA0BrgfmABOBcyVNLKg2BxifXvOAJQX7FwKbC8oWAfdHxHjg\n/rRtZnXMQaS+VfvfJ8vU1nSgMyK2AEi6DWgDnsir0wYsj9x6v+skDZc0KiK2SRoDnA58G/hvBcec\nlD7fDKwFrsrwOqyBrPzJY6z4cQevv/EmAPvvN5RPz2mlbeaUGrfMbPDKMrU1Gng2b7srlVVa5x+A\nrwK7Co45PCK2pc+/Aw7vl9baoJAfRABef+NNVvzYg1GtcmvXruXf//3fq/qOgw8+uJ9as/dOOumk\nARuIXZfdfyWdAWyPiPW91Ut3MlHiO+ZJ6pDU0d3dnUUzrQ7lB5HeysxK6Y9A0myyDCRbgSPytsek\nskrqnACcKelp4DZgpqR/TnWekzQKIL1vL3byiFgaEa0R0drSUnaqGDMbxD7xiU9w7LHH8qEPfYil\nS5fuLr/77ruZNm0aU6ZMYdasWTz99NO0t7dzzTXXMHXqVH76059y0UUX8YMf/GD3MT13G6+88gqz\nZs1i2rRpTJo0iZUrV/bahj/84Q+cfvrpTJkyhaOPPpoVK1YAuSmcvvrVrzJp0iSmT59OZ2cnAN3d\n3cydO5fjjjuO4447jp/97Ge7v+dzn/sc06dP55hjjtl93tdee41zzjmHCRMmcNZZZ/Haa68B8NZb\nb3HRRRdx9NFHM2nSJK655pp++lX3yPIZycPAeEnjyAWHc4DPFNRZBSxIz0+OB3aktNXX0gtJJwFf\niYjz8o65ELg6vff+X8/M6sbche2Zffcd184vuW/ZsmWMHDmS1157jeOOO465c+eya9cuvvCFL/Dg\ngw8ybtw4fv/73zNy5Ejmz5/PwQcfzFe+8hUAbrrppqLfOWzYMO68807e9a538fzzzzNjxgzOPPPM\nkg+u7777bt73vvfxox/9CIAdO3bs3vfud7+bxx9/nOXLl3P55Zdz1113sXDhQq644go+8pGP8Mwz\nz/Cxj32MzZs38+1vf5uZM2eybNkyXnrpJaZPn87JJ5/MP/3TP3HggQeyefNmNmzYwLRpuU6wjz76\nKFu3bmXjxo0AvPTSS33/ccvILJBExE5JC4B7gCHAsojYJGl+2t8OrAZOAzqBV4GLK/jqq4HbJX0e\n+A1wdhbtN7PBY/Hixdx5550APPvsszz11FN0d3dz4okn7h47MXLkyD59Z0Tw9a9/nQcffJB99tmH\nrVu38txzz/He9763aP1Jkybx5S9/mauuuoozzjiDj370o7v3nXvuubvfr7jiCgDuu+8+nnhiT9+k\nl19+mVdeeYV7772XVatW8d3vfhfIda9+5plnePDBB/nSl74EwOTJk5k8eTIARx55JFu2bOGyyy7j\n9NNP59RTT+3TdVYi0wGJEbGaXLDIL2vP+xzApWW+Yy25nlk92y8As/qznWY2eK1du5b77ruPhx56\niAMPPJCTTjqpT2Mm9t13X3btyvX52bVrF2+88QYAt9xyC93d3axfv56hQ4cyduzYXr/3Ax/4AI88\n8girV6/mL//yL5k1axZ/9Vd/Bby9+23P5127drFu3TqGDRv2tu+JCO644w6OOuqoito/YsQIHnvs\nMe655x7a29u5/fbbWbZsWcXXXwmPbDezAdNb+ikrO3bsYMSIERx44IH86le/Yt26dQDMmDGDSy65\nhF//+tdvS20dcsghvPzyy7uPHzt2LOvXr+fss89m1apVvPnmm7u/9z3veQ9Dhw7lgQce4De/6X3G\n9d/+9reMHDmS8847j+HDh3PjjTfu3rdixQoWLVrEihUr+PCHPwzAqaeeynXXXceVV14J5FJUU6dO\n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\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": 110, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Solution goes here\n", "def Observed_Pmf(pmf, speed, label=None):\n", " mod = pmf.Copy(label=label)\n", " for i in mod.Values():\n", "# print('values=',i)\n", " diff = abs(i -speed)\n", " mod[i] *= diff\n", " mod.Normalize()\n", " return mod\n", " \n", "newpmf = Observed_Pmf(pmf, 7, label='observed')\n", "thinkplot.Pmf(newpmf)\n", "thinkplot.Config(xlabel='speed',ylabel='pmf')" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [], "source": [] }, { "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.13" } }, "nbformat": 4, "nbformat_minor": 0 }