{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# IPython notebook in Dr. H's class" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Statistical distribution" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: pylab import has clobbered these variables: ['random']\n", "`%matplotlib` prevents importing * from pylab and numpy\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Write a function that generates random coin flips, storing a value of 0 and +1 to correspond to heads and tails.\n", "\n", "- Then, write a loop to flip this X time (ie x = 1, 10, 100) and see what our average score (total number of heads - total number tails) is!" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import random\n", "\n", "def fair_coin():\n", " return random.choice([0,1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Test it out" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def multi_trial(flips, flip_function):\n", " total = 0\n", " for i in range(FLIPS):\n", " total += flip_function() \n", " return total" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Total score is: 3 out of 10 flips for \"fair_coin\"\n" ] } ], "source": [ "FLIPS = 10 #How many flips to do\n", "\n", "score = multi_trial(FLIPS, fair_coin)\n", "print 'Total score is: %s out of %s flips for \"%s\"' % (score, FLIPS, 'fair_coin')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is a score that is out of the ordinary for 10 flips? IE we expect on average, to get 0; however, we know that we won't always get 0. We don't know the statistical distribution? Let's test this for 1000 simulations of 10 flips. " ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": [ "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEZCAYAAAB8culNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", "AAALEgAACxIB0t1+/AAAHtVJREFUeJzt3Xu4XFWd5vHvy00EhIhoQAgCNlFARVBRx1YiKuKlwcu0\n", "oC1Ne+9GRccZNeiMZHraa7e3tkWnW0CwNRIVGLC1JSBH8QaCASIBATVKEAJyv6gk5J0/9jpQ1K46\n", "p845ddnn5P08Tz3Ze+1da/9q5dT+1Vr7JttERES02mTUAURERPMkOURERE2SQ0RE1CQ5RERETZJD\n", "RETUJDlERERNkkNERNQkOcRGR9K3JB3Z47qrJT2vz9t/lqSrJd0p6dAOyx8n6RJJd0h62yR17Vrq\n", "UT9jnGSbd0rabVjbi9FIcogZkbSFpBPKTvQOSSskHdK2zvMkXSnpbknflbRr2/KPSvp9eX2kbdlu\n", "ks4r771ioh21pCWSvjRZzLZfbHvS9cZXL69++nvgn20/zPaZHZa/BzjX9ra2/2XC4OzflnqGdjVr\n", "2d7qYW0vRiPJIWZqM+C3wHNsbwv8T2CZpMcASNoB+AbwfuDhwEXAqeNvlvQW4DDgSeX1F6Vs3FLg\n", "YmD7UsfXS51TpmI67+2zXYFVEyx/zCTLe9Kgzxuzke288urrC7gUeHmZfjPwg5ZlWwH3AAvL/I+A\n", "N7Ysfx3w4zK9EPgjsHXL8u8Bb+mwzUOAPwH3AncCK0r5GPAPwA+Bu4HHlrI3lOWPBb4L/B64Cfh3\n", "YLuWen8NHFSmD6BKbrcDNwAfn6AN3gRcDdwM/D9gp1L+S+C+0gZ3AJu3ve+7wHrgD2X5nsBLgBVl\n", "u78FjmtZfzdgA7BJh897D7DHBDFuD5wEXAfcApw+Wfxl2YbxeoEvAp8Fvlni/clE28xr9rzSc4i+\n", "kjSfaqd+eSnahypZAGD7HuCaUg6wd+ty4LKWZfsAv7J9d8vyS1uW38/2fwIfAr7qathjv5bFrwXe\n", "CDwM+A31oaIPAjsBewELgCVdPt6ngU/a3g7YA1jWaSVJB5VY/rLU+xvgqyXOx1Lt4F/qathoXdvn\n", "OAg4H3hrWX41cBfw2rLdlwB/J+mwLjG2ft5tyra6+RKwJdX/waOAT0wWfxeHU7XZw6n+bz84wbox\n", "SyQ5RN9I2hz4MvBF21eV4q2pflG2uoNqRw3VDuz2tmXbdFnW/t5aCOXVyiWeK2xvsL3+QQvtX9o+\n", "1/Y6278HPgkc2KX+e4E9Je1g+x7bF3RZ76+AE2xfYvte4Fjgme3HWiZx/+ew/T3bl5fplVQ76m4x\n", "Tvh5769c2omqt/W3tm+3vd72+dOI38Bpti+yfR/V//+Tp/A5o6GSHKIvJG1C9Uv0j0DrGTZ3Adu2\n", "rb4d1dBPp+XblbJu751HPdlM5tpuCyTNl/RVSWsk3U71GR7RZfU3UPWKrpB0oaSXdFlv/Nc2AKXn\n", "czOw8xRivr9nI+np5aD8jZJuA94yQYwwwedtsQC4xXZ78oWpx7+2ZfoPPJDcYxZLcogZKwc9TwAe\n", "Cbyy/IIcdzmwb8u6W1ON81/esrz1l+a+wM9blu0haZu25ZfT2YYu5ROdyfMhqmMATyjDNkfS5Xth\n", "+xrbr7H9SOCjVAfHH9ph1d9RHQsA7v/Mj6Aa25+OrwBnALvYngd8vluM46H2UOe1wPaStuuwrN/x\n", "xyyU5BD98Dng8cChtv/Utux04AmSXiFpS+A44JKWYadTgHdJerSknYF3UR3kpKxzCXCcpC0lvQJ4\n", "AtXZT52sBXbrcIbORGfsbEN1oPqOsv13d1tR0mslPbLM3k61E+6UkJYCr5O0r6SHUCWgn9ieaPy/\n", "trm2GG+1fa+kA4DXMHECmPQMJdvXA98Gjpc0T9Lmkp4zjfhzNtQcNbDkIOlESWslrWwpO6B0x1dI\n", "+qmkp7UsO7ZcGHSlpIMHFVf0Vzll9c1Uv+hvKBdI3Snp1QBlHP+VVAcpbwGeChwx/n7b/xc4C1hJ\n", "dTD6LNv/2rKJI8p7bil1vNL2zV3C+Vr592ZJF7WUT7Qj/d/A/lQ7+7OoEk+39V8I/FzSnVTHJo7o\n", "kAyxfS7wv0pdvwN2p+Uz96g1hqOBv5d0R6n31AnW7TTfzZHAOuBKqsR6DPQUv9ump7v9aDDZg/l/\n", "lPRsqjHjU2w/sZSNAR+2/R1JLwLeY/u5kvam6jo/jWpc8xyqUx27DRNERMQADaznUM58uLWt+Hqq\n", "A45QHVgcH8M8DFhazhhZTXU63AGDii0iIia22ZC3txj4gaR/okpMzyzlj6a6eGbcGqZ2ZkdEdCDp\n", "LjoP8xxi+4fDjidmj2EnhxOAY2yfLukvgROBF3RZN+OWETNkO6eVxrQMOzkcYPv5ZfrrwBfK9HVU\n", "512P24UOp81JSsKIiJgG21M7s2yQ9+agOld6Zcv8z4ADy/TzgJ+W6b2pTlncgurMiF9SDpa31edB\n", "xtvHz71k1DEkzsSZOBNjS5ye6nsG1nOQtJTqEv8dJF0LfIDqlMfPlnOn/1Dmsb1K0jKqO1GuB452\n", "+UQRETF8A0sOtl/dZdHTu6z/IaqLbSIiYsRyhfRgjI06gB6NjTqAHo2NOoAejY06gB6NjTqAHo2N\n", "OoAejI06gEEZ2EVwgyDJnupBlYiIjdx09p3pOURERE2SQ0RE1CQ5RERETZJDRETUJDlERETNsG+f\n", "ETErTHSrlpwxFxuD9BwiIqImySEiImqSHCIioibJISIiapIcIiKiJskhIiJqkhwiIqImySEiImoG\n", "lhwknShpraSVbeVvl3SFpJ9L+mhL+bGSrpZ0paSDBxVXRERMbpBXSJ8EfAY4ZbxA0nOBQ4En2V4n\n", "6ZGlfG/gcKpnSe8MnCNpoe0NA4wvIiK6GFjPwfb5wK1txX8HfNj2urLOTaX8MGCp7XW2VwPXAAcM\n", "KraIiJjYsI857Ak8R9JPJI1JemopfzSwpmW9NVQ9iIiIGIFh33hvM+Dhtp8h6WnAMmCPLut2vPGZ\n", "pCUts2O2x/oaYUTELCdpEbBoJnUMOzmsAU4DsP1TSRsk7QBcByxoWW+XUlZje8mgg4yImM3Kj+ax\n", "8XlJx021jmEPK50BHAQgaSGwhe3fA2cCR0jaQtLuVMNPFw45toiIKAbWc5C0FDgQeISka4EPACcC\n", "J5bTW+8F/hrA9ipJy4BVwHrgaNtd76cfERGDpdm0D5bkPGglhiEP+4m5ZDr7zlwhHRERNUkOERFR\n", "k2dIR/RBhqFirknPISIiapIcIiKiJskhIiJqkhwiIqImySEiImqSHCIioianskYMWLfTXDud4jqV\n", "dSMGKT2HiIioSXKIiIiaJIeIiKhJcoiIiJokh4iIqElyiIiImoElB0knSlpbnvrWvuy/l+dHb99S\n", "dqykqyVdKengQcUVc58kd3uNOraI2WKQPYeTgEPaCyUtAF4A/KalbG/gcGDv8p7jJaVXExExIgPb\n", "Ads+H7i1w6JPAO9pKzsMWGp7ne3VwDXAAYOKLSIiJjbUX+eSDgPW2L6sbdGjgTUt82uAnYcWWERE\n", "PMjQbp8haSvgfVRDSvcXT/CWjuPDkpa0zI7ZHptxcBERc4ikRcCimdQxzHsrPRbYDbhUEsAuwMWS\n", "ng5cByxoWXeXUlZje8lAo4yImOXKj+ax8XlJx021jqENK9leaXu+7d1t7041dLS/7bXAmcARkraQ\n", "tDuwJ3DhsGKLiIgHG+SprEuBHwELJV0r6XVtq9w/bGR7FbAMWAV8Gzjadk47jIgYEc2mfbAk59bF\n", "MZmJrmfo9e9nqnVM5xqK3LI7hmU6+85cSxARETVJDhERUZPkEBERNXlMaGzUcr+liM7Sc4iIiJok\n", "h4iIqElyiIiImiSHiIioSXKIiIiaJIeIiKhJcoiIiJpc5xAxC+SeSzFs6TlERERNkkNERNRkWCli\n", "FstwUwxKeg4REVEzyCfBnShpraSVLWX/KOkKSZdKOk3Sdi3LjpV0taQrJR08qLgiImJyg+w5nAQc\n", "0lZ2NrCP7X2Bq4BjASTtDRwO7F3ec7yk9GoiIkZkYDtg2+cDt7aVLbe9ocxeAOxSpg8DltpeZ3s1\n", "cA1wwKBii4iIiY3y1/nrgW+V6UcDa1qWrQF2HnpEEREBjOhsJUnvB+61/ZUJVut4FoakJS2zY7bH\n", "+hhaRMSsJ2kRsGgmdQw9OUj6G+DFwPNaiq8DFrTM71LKamwvGVRsERFzQfnRPDY+L+m4qdYx1GEl\n", "SYcA7wYOs/3HlkVnAkdI2kLS7sCewIXDjC0iIh4wsJ6DpKXAgcAOkq4FjqM6O2kLYLkkgB/bPtr2\n", "KknLgFXAeuBo23m2b0TEiGg27YMlOVd+xmS6XTUM9SuHJ1q31zpGXU+vdcfGazr7zlxLEBERNUkO\n", "ERFRk+QQERE1kyYHSe+UtJ0qJ0haIemFwwguIiJGo5eew+tt3w4cDGwPHAl8ZKBRRUTESPWSHMaP\n", "cL8E+JLtnw8wnoiIaIBernO4WNLZwB7AYknbAhsmeU/EwPXrtM+IqJv0OgdJmwL7Ar+yfZukRwA7\n", "275sGAG2xZLrHOJ+/bi2INc5xMZgUNc5GNgHOKbMbw1sOcXYIiJiFuklORwPPAN4TZm/q5RFRMQc\n", "1csxh6fb3k/SCgDbt0jafMBxRdwvxxYihq+X5HBvOe4AgKRHkgPSEbPOVO45FdHLsNJngNOBR0n6\n", "EPBD4MMDjSoiIkaqp7uyStqLBx7Oc67tKwYaVfc4crbSRqifw0ob89lK6TlsvKaz7+zlVNZnAKts\n", "31HmtwX2sn3BtCOdpiSHjVOSw9QlOUSrQZ3K+nngzpb5u0vZZMGcKGmtpJUtZdtLWi7pKklnS5rX\n", "suxYSVdLulLSwVP5EBER0V893ZW19alstu8DNp1g9XEnAYe0lS0GltteCJxb5pG0N3A4sHd5z/GS\n", "csfYiIgR6WUH/GtJx0javDzj+R3AryZ7k+3zgVvbig8FTi7TJwMvK9OHAUttr7O9GrgGOKCXDxAR\n", "Ef3XS3L4W+BZwHXAGqoL4t48ze3Nt722TK8F5pfpR5e6x60Bdp7mNiIiYoYmvc6h7MwP7/eGbXuS\n", "g2+58CkiYkQmTQ6SHgW8CditZX3bfv00trdW0o62b5C0E3BjKb8OWNCy3i6lrFM8S1pmx2yPTSOO\n", "iIg5S9IiYNGM6ujhVNYfA98HLuaBK6Nt+xs9BLgbcJbtJ5b5jwE32/6opMXAPNuLywHpr1AdZ9gZ\n", "OAf4M7cFl1NZN045lXXqciprtJrOvrOX22c81PZ7pxHMUuBAYAdJ1wIfoHqC3DJJbwBWA68CsL1K\n", "0jJgFbAeOLo9MURExPD00nP4B+DHtv9jOCFNGEt6Dhuh9BymLj2HaDWoK6TvArYC7gXWlWLb3nZa\n", "Uc5AksPGKclh6pIcotVAhpVsbzP9kCIiYjaa9DoHSZtIOlLSB8r8rpJygVpExBzW65PgnkmeBBcR\n", "sdHIk+AiIqKml55DngQXEbGRyZPgIiKiZsJTWctts58J3EKeBBcjklNZpy6nskarQV3ncIntJ88o\n", "sj5Jctg4JTlMXZJDtBrUk+DOkfRfJeWPJyJiIzGVK6TvA/5YinOFdAxNeg5Tl55DtOp7z6Ecc3ih\n", "7U1sb277YeU19MQQERHDM2FysL0B+OyQYomIiIbIMYeIiKjJMYdovBxzmLocc4hWuStrRET0RS/P\n", "kH5Op3Lb35/uRiUdC7yW6jYcK4HXAVsDpwKPoTwlzvZt091GRERMXy/DSt8Exlfakuo5zxfbPmha\n", "G6yeK/1dYC/bf5J0KvAtYB/g97Y/Jum9wMNtL257b4aVNkIZVpq6DCtFq0ENK720bSMLgE9PMbZW\n", "d1A9UW4rSfdRHc/4HXAs1TOnAU4GxoDFnSqI2S07qYjm6+VspXZrgL2mu0HbtwAfB35LlRRus70c\n", "mG97bVltLTB/utuIiIiZ6eWYw2daZjcBngxcPN0NSnos8E5gN+B24GuSXtu6jm33cyghIiKmppeH\n", "/VzMA8cc1gNfsf3DGWzzqcCPbN8MIOk0qju/3iBpR9s3SNoJuLHTmyUtaZkdsz02g1giIuYcSYuA\n", "RTOqo4cD0tsAf7B9X5nfFHiI7XumtUFpX+DLwNOorpv4InAh1VlKN9v+qKTFwLwckJ6bpnrMIQek\n", "py4HpKPVwO7KCjy0ZX6rUjYtti8FTgEuAi4rxf8KfAR4gaSrgIPKfEREjMC0nucwqmc8pOcwN6Tn\n", "0N96+lF3vldz26B6DndLekrLRp4K/GGqwUVExOzRywHpdwLLJF1f5ncCDh9cSBERMWqTDisBSNoC\n", "eFyZ/YXtewcaVfc4Mqw0B2RYqb/19KPufK/mtoEMK0l6G7C17ZW2VwJbSzp6ukFGRETz9XLM4U22\n", "bx2fKdNvHlxIERExar0kh03K40KB+69z2HxwIUVExKj1ckD6O8Cpkj4PCHgL8J8DjSoiIkaql+sc\n", "tgLeSHUptoGzgS+MXzE9TDkgPTfkgHR/6+lH3flezW19vWW3pM2BDwKvp7qDqoAFwK+ohqOGnhwi\n", "ImI4Jjrm8I/A9sDutve3vR+wBzAP+KdhBBcREaPRdVhJ0jXAQtsb2so3pbrW4c+GEF97TBlWmgMy\n", "rNTfevpRd75Xc1u/r3PY0J4YAMqxhlp5RETMHRMlhyskHdVeKOlI4MrBhRQREaM20bDSLsBpVDfZ\n", "G3/y21Oobtn9cttrhhLhg2PKsNIckGGl/tYzyLrzfZsbprPvnPBUVkmierbCPlSnsa6yfe6MopyB\n", "JIe5Icmhv/UMsu6p1JPvZnP1PTk0TZLD3JDk0N96Bll3ksPcMKjnOfSdpHmSvi7pCkmrJD1d0vaS\n", "lku6StLZkuaNIraIiBhRcgA+DXzL9l7Ak6gOcC8GltteCJxb5mMWk+ROr1HHFRGTG/qwkqTtgBW2\n", "92grvxI40PZaSTsCY7Yf37ZOhpVmkaYNtXSqP8NK/asn383mmi3DSrsDN0k6SdLPJP2bpK2B+bbX\n", "lnXWAvNHEFtERNDbXVkHsc39gbfZ/qmkT9E2hGS76/CDpCUts2O2xwYVaETEbCRpEdXNUqdfxwiG\n", "lXYEfmx79zL/58CxVPdteq7tGyTtBJyXYaXZrWlDLZ3qz7BS/+rJd7O5ZsWwku0bgGslLSxFzwcu\n", "B84Cxq/IPgo4Y9ixRUREZSTXOUjaF/gCsAXwS+B1wKbAMmBXYDXwKtu3tb0vPYdZpGm/pjvVn55D\n", "/+rJd7O5chFcNErTdpid6k9y6F89+W4216wYVoqIiOZLcoiIiJokh4iIqElyiIiImiSHiIioSXKI\n", "iIiaJIeIiKhJcoiIiJokh4iIqElyiIiImiSHiIioSXKIiIiaJIeIiKhJcoiIiJokh4iIqElyiIiI\n", "mpElB0mbSloh6awyv72k5ZKuknS2pHmjii0iYmM3yp7DO4BVwPhTpRYDy20vBM4t8xERMQIjSQ6S\n", "dgFeTPUc6fFH1x0KnFymTwZeNoLQIiKC0fUcPgm8G9jQUjbf9toyvRaYP/SoIiICgM2GvUFJLwVu\n", "tL1C0qJO69h2t4eYS1rSMjtme6zvQUZEzGJl37poRnXYHffBAyPpQ8CRwHpgS2Bb4DTgacAi2zdI\n", "2gk4z/bj295r22qvM5qpW4KfSKf/3+nU02v9o4xxkJ+1STHmOzt609l3Dn1Yyfb7bC+wvTtwBPBd\n", "20cCZwJHldWOAs4YdmwREVFpwnUO479CPgK8QNJVwEFlPiIiRmDow0ozkWGl2aVpQy2d6s+w0uDr\n", "yXd29GbFsFJERDRfkkNERNQkOURERM3Qr3OI2WGiceWMIUfMfUkOMWXdEkeSRsTckWGliIioSXKI\n", "iIiaJIeIiKjJMYeIGLqc8NB86TlERERNkkNERNQkOURERE2SQ0RE1CQ5RERETZJDRETUJDlERETN\n", "0JODpAWSzpN0uaSfSzqmlG8vabmkqySdLWnesGOLiIjKKHoO64D/Znsf4BnAWyXtBSwGltteCJxb\n", "5iMiYgSGnhxs32D7kjJ9F3AFsDNwKHByWe1k4GXDji0iIiojvX2GpN2A/YALgPm215ZFa4H5Iwpr\n", "VsttCSKiH0aWHCRtA3wDeIftO6UH9lu23W0nJ2lJy+yY7bFBxjmX5DkMMRvk73TmJC0CFs2oDrvr\n", "D82BkbQ58E3g27Y/VcquBBbZvkHSTsB5th/f9j7nD2RiE/UcuunUpv2oZ5Sx9Fp/k9pruvUMsu5+\n", "1DPIWKI309l3juJsJQEnAKvGE0NxJnBUmT4KOGPYsUVERGXoPQdJfw58H7gMGN/4scCFwDJgV2A1\n", "8Crbt7W9Nz2HSTTpl3DTfk13qr9J7TXdegZZd3oOc8N09p0jGVaariSHyTVpZ9e0HWan+pvUXtOt\n", "Z5B1JznMDbNiWCkiIpovySEiImqSHCIioibJISIiapIcIiKiJskhIiJqRnpvpZi+fp7eGTEbTOW2\n", "GrkFx8yl5xARETVJDhERUZPkEBERNUkOERFRk+QQERE1SQ4REVGT5BARETW5ziEiooON/Xnsjeo5\n", "SDpE0pWSrpb03lHHM2yS3O016tgiYuPSmOQgaVPgX4BDgL2BV0vaa7RRTU95uHdENEy/f3zN5e96\n", "Y5IDcABwje3VttcBXwUOG3FM07Vo1AFExFAsGnUAg9Kk5LAzcG3L/JpS1jNJX5P0hw6vuyU9oa/R\n", "RkTMYU06IN2PcfVty7/r28ofQoMSYY4hRMw9c+0AdpOSw3XAgpb5BVS9hweZwY71Uml4/z+Sjutz\n", "fQNLKP2qux/1DDpxNinG/J/2xyhibF2/l+/6bPxBKLsZMUvaDPgF8Dzgd8CFwKttXzHSwCIiNkKN\n", "6TnYXi/pbcB3gE2BE5IYIiJGozE9h4iIaI7GHKRtJ2lLSRdIukTSKkkfLuXbS1ou6SpJZ0ua19A4\n", "l0haI2lFeR0yyjhLTJuWWM4q841qy3Ed4mxiW66WdFmJ58JS1rj27BJnE9tznqSvS7qifI+e3tD2\n", "bI/zGU1rT0mPa4llhaTbJR0z1fZsdM9B0la27ynHI34A/A/gUOD3tj+m6irqh9te3MA4nwfcafsT\n", "o4ytlaR3AU8BHmb7UEkfo2FtCR3jPI7mteWvgafYvqWlrHHt2SXOJrbnycD3bJ9YvkdbA++nee3Z\n", "Kc530rD2HCdpE6qTfQ4A3s4U2rOxPQcA2/eUyS2ojkPcSpUcTi7lJwMvG0FoD9IlToDGnL4maRfg\n", "xcAXeCCuxrVllzhFg9qyRXtMjWvPolPbNaY9JW0HPNv2iVAdf7R9Ow1rzwnihAa1Z5vnU11cfC1T\n", "bM9GJwdJm0i6BFgLnGf7cmC+7bVllbXA/JEFWHSJE+Dtki6VdEIDusSfBN4NbGgpa1xb0jlO06y2\n", "hCqmcyRdJOlNpayJ7dkpTmhWe+4O3CTpJEk/k/Rvkramee3ZKc6tyrImtWerI4ClZXpK7dno5GB7\n", "g+0nA7sAz5H03Lblpj8Xz81IhzgXAZ+j+mN6MnA98PFRxSfppcCNtlfQ5RdOE9pygjgb05YtnmV7\n", "P+BFwFslPbt1YRPas+gUZ9PaczNgf+B42/sDdwMPGu5oSHt2i/N4mtWeAEjaAvgL4Gvty3ppz0Yn\n", "h3Gl6/YfVOPQayXtCCBpJ+DGUcbWqiXOp9q+0QXVEMkBIwztvwCHlvHnpcBBkr5E89qyU5ynNKwt\n", "AbB9ffn3JuB0qpia1p4d42xge64B1tj+aZn/OtVO+IaGtWfHOG3f1LD2HPci4OLyfw9T/PtsbHKQ\n", "tMN490zSQ4EXACuAM4GjympHAWeMJsJKtzjH/xOKlwMrRxEfgO332V5ge3eqbuZ3bR9Jw9qyS5x/\n", "Xf6Qx420LaE6AUHSw8r01sDBJaZGtWe3OJv0twlg+wbgWkkLS9HzgcuBs2hQe3aLs2nt2eLVPDCk\n", "BFP8+2zMRXAd7AScXI62bwJ8yfa5klYAyyS9AVgNvGqEMUL3OE+R9GSqrtuvgbeMMsg2493Jj9Cs\n", "tmwlHojzY5L2pTltOR84XdXtWDYDvmz7bEkX0az27BZnE/823w58uQyF/BJ4HdXJHU1qT6jH+Xrg\n", "n5vWnuXHwPOB1uNMU/q+N/pU1oiIGI3GDitFRMToJDlERERNkkNERNQkOURERE2SQ0RE1CQ5RERE\n", "TZJDRBeS3i/p5+WeOSskNeXK14iBa/JFcBEjI+mZwEuA/Wyvk7Q98JAZ1LeZ7fV9CzBiwNJziOhs\n", "R6p7368DsH2L7eslPU3SD1U93OkCSVureuDTSaoeqvOzcuNFJP2NpDMlnQssL7ezOLG872eSDh3h\n", "54uYUHoOEZ2dDXxA0i+Ac4BTgZ8AXwVeZftiSdsAf6R62Mt9tp8k6XHA2S3339kPeKLt2yR9CDjX\n", "9uvL/bgukHROy/NAIhojPYeIDmzfTXUX4DcDN1ElhzcD19u+uKxzl+37gGcB/17KfgH8BlhIda+d\n", "5bZvK9UeDCwu9wc7j2qYasHQPlTEFKTnENGF7Q3A94DvSVoJvHWC1bs9CezutvlX2L66H/FFDFJ6\n", "DhEdSFooac+Wov2AK4AdJT21rPMwSZsC5wN/Nf4+YFfgSuoJ4zvAMS3b2G9wnyBiZtJziOhsG+Az\n", "5djAeuBqqmGlk0r5Q4F7qG6LfDzwOUmXlXWPKmc4tT9t6/8AnyrrbQL8iuq5vhGNk1t2R0RETYaV\n", "IiKiJskhIiJqkhwiIqImySEiImqSHCIioibJISIiapIcIiKiJskhIiJq/j/rOQoePvOjNQAAAABJ\n", "RU5ErkJggg==\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def simulation(trials=5, fcn=fair_coin, plot=True):\n", " ''' Run a function TRIALS times, plot the results in a histogram '''\n", " total = []\n", " for i in range(trials):\n", " total.append(multi_trial(FLIPS, fcn))\n", "\n", " if plot:\n", " plt.hist(total, bins=20, color='black')\n", " plt.title('%s trials of %s' % (trials, fcn.__name__))\n", " plt.xlabel('Score')\n", " plt.ylabel('Occurrences')\n", " \n", "simulation(2000) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**TRY THIS WITH MORE FLIPS PER TRIAL (IE CHANGE FLIPS)** Notice how the space fills up!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Is this the binomial distribution?" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import Image\n", "Image(url='http://docs.scipy.org/doc/numpy/_images/math/d0e9bf22b11bd63cac4e02feb23f7c40e2c26943.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use Numpy's [binomial distribution generator to check!](http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.binomial.html). " ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on built-in function binomial:\n", "\n", "binomial(...)\n", " binomial(n, p, size=None)\n", " \n", " Draw samples from a binomial distribution.\n", " \n", " Samples are drawn from a Binomial distribution with specified\n", " parameters, n trials and p probability of success where\n", " n an integer >= 0 and p is in the interval [0,1]. (n may be\n", " input as a float, but it is truncated to an integer in use)\n", " \n", " Parameters\n", " ----------\n", " n : float (but truncated to an integer)\n", " parameter, >= 0.\n", " p : float\n", " parameter, >= 0 and <=1.\n", " size : {tuple, int}\n", " Output shape. If the given shape is, e.g., ``(m, n, k)``, then\n", " ``m * n * k`` samples are drawn.\n", " \n", " Returns\n", " -------\n", " samples : {ndarray, scalar}\n", " where the values are all integers in [0, n].\n", " \n", " See Also\n", " --------\n", " scipy.stats.distributions.binom : probability density function,\n", " distribution or cumulative density function, etc.\n", " \n", " Notes\n", " -----\n", " The probability density for the Binomial distribution is\n", " \n", " .. math:: P(N) = \\binom{n}{N}p^N(1-p)^{n-N},\n", " \n", " where :math:`n` is the number of trials, :math:`p` is the probability\n", " of success, and :math:`N` is the number of successes.\n", " \n", " When estimating the standard error of a proportion in a population by\n", " using a random sample, the normal distribution works well unless the\n", " product p*n <=5, where p = population proportion estimate, and n =\n", " number of samples, in which case the binomial distribution is used\n", " instead. For example, a sample of 15 people shows 4 who are left\n", " handed, and 11 who are right handed. Then p = 4/15 = 27%. 0.27*15 = 4,\n", " so the binomial distribution should be used in this case.\n", " \n", " References\n", " ----------\n", " .. [1] Dalgaard, Peter, \"Introductory Statistics with R\",\n", " Springer-Verlag, 2002.\n", " .. [2] Glantz, Stanton A. \"Primer of Biostatistics.\", McGraw-Hill,\n", " Fifth Edition, 2002.\n", " .. [3] Lentner, Marvin, \"Elementary Applied Statistics\", Bogden\n", " and Quigley, 1972.\n", " .. [4] Weisstein, Eric W. \"Binomial Distribution.\" From MathWorld--A\n", " Wolfram Web Resource.\n", " http://mathworld.wolfram.com/BinomialDistribution.html\n", " .. [5] Wikipedia, \"Binomial-distribution\",\n", " http://en.wikipedia.org/wiki/Binomial_distribution\n", " \n", " Examples\n", " --------\n", " Draw samples from the distribution:\n", " \n", " >>> n, p = 10, .5 # number of trials, probability of each trial\n", " >>> s = np.random.binomial(n, p, 1000)\n", " # result of flipping a coin 10 times, tested 1000 times.\n", " \n", " A real world example. A company drills 9 wild-cat oil exploration\n", " wells, each with an estimated probability of success of 0.1. All nine\n", " wells fail. What is the probability of that happening?\n", " \n", " Let's do 20,000 trials of the model, and count the number that\n", " generate zero positive results.\n", " \n", " >>> sum(np.random.binomial(9,0.1,20000)==0)/20000.\n", " answer = 0.38885, or 38%.\n", "\n" ] } ], "source": [ "help(np.random.binomial)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": [ "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEACAYAAAC57G0KAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", "AAALEgAACxIB0t1+/AAAEK5JREFUeJzt3X2sZHV9x/H3R1eqiClF2t1lWQvRUt3WFqxsSNGyWkqg\n", "tUD7B0prSqwlJrRK/aMp6x+6f1k18aFJo0nLQ9aH3XaLlUhaKyxlWpumWJSVh2UVjJuylL1YFZH6\n", "EJBv/5izMl5m7917Z+49w2/fr+RmzzkzZ87nzr37ub/5zZmZVBWSpPY8q+8AkqSVYcFLUqMseElq\n", "lAUvSY2y4CWpURa8JDVqwYJPsjHJrUnuSXJ3krd127clOZDkju7rgpF9tia5L8m+JOet9DcgSRov\n", "C50Hn2QdsK6q9iQ5DvgCcDFwCfCdqvrAvOtvAnYAZwIbgN3AaVX15ArllyQdxoIj+Ko6WFV7uuXH\n", "gHsZFjdAxuxyEbCzqh6vqv3A/cDm6cWVJB2pI56DT3IKcAbwn92mtyb5UpJrkhzfbTsJODCy2wGe\n", "+oMgSVpFR1Tw3fTM9cCV3Uj+I8CpwOnAQ8D7F9jd90KQpB6sWewKSZ4DfBL4eFXdAFBVD49cfjVw\n", "Y7f6ILBxZPeTu23zb9PSl6RlqKpx0+OHvfJhvxjOs38U+OC87etHlt8O7OiWNwF7gGMYjvC/SvdE\n", "7rz9a6Hj9vEFbOs7g5naymUmM61ArlrK9RcbwZ8NvBG4M8kd3bZ3AJcmOZ3h9MvXgLd0R96bZBew\n", "F3gCuKK6VJKk1bVgwVfVvzN+nv4zC+zzbuDdE+aSJE3IV7I+ZdB3gDEGfQcYY9B3gMMY9B1gjEHf\n", "AcYY9B1gjEHfAcYY9B1gGhZ8odOKHTSpWsoTBZKkJXenI3hJapQFL0mNsuAlqVEWvCQ1yoKXpEZZ\n", "8JLUKAtekhplwUtSoyx4SWqUBS9JjVr0/eDVvmm9P79vPyHNFgtenUk73m6XZo1TNJLUKAtekhpl\n", "wUtSoyx4SWqUT7JqZkzjbB7P5JGeYsFrxkzS8Xa7NMopGklqlAUvSY2y4CWpURa8JDXKgpekRlnw\n", "ktQoC16SGmXBS1KjLHhJapQFL0mNsuAlqVEWvCQ1yoKXpEb5bpLSlPkh5poVFry0IvwQc/XPKRpJ\n", "atSCBZ9kY5Jbk9yT5O4kb+u2n5Dk5iRfSXJTkuNH9tma5L4k+5Kct9LfgCRpvFQd/qFkknXAuqra\n", "k+Q44AvAxcCbgP+tqvcl+XPgp6rqqiSbgB3AmcAGYDdwWlU9Oe92y/nF2TGcM558SmHSn+nkOSbP\n", "MA2zcn+qPUvtzgVH8FV1sKr2dMuPAfcyLO4Lge3d1bYzLH2Ai4CdVfV4Ve0H7gc2L+k7kCRNxRHP\n", "wSc5BTgDuA1YW1Vz3UVzwNpu+STgwMhuBxj+QZAkrbIjOoumm575JHBlVX0neeoRQlXVIqeFjb0s\n", "ybaR1UFVDY4kiyQdLZJsAbYsd/9FCz7JcxiW+8eq6oZu81ySdVV1MMl64OFu+4PAxpHdT+62PU1V\n", "bVtuaEk6GnQD38Gh9STvWsr+i51FE+AaYG9VfWjkok8Dl3XLlwE3jGx/Q5JjkpwK/Bzw+aUEkiRN\n", "x2Jn0bwK+DfgTp6aatnKsLR3AS8C9gOXVNUj3T7vAP4QeILhlM5nx9yuZ9HMkFk568OzaH7sVmbi\n", "e9FsWWp3LljwK8WCny2zUkgW/I/dykx8L5otUz1NUpL0zGXBS1KjLHhJapQFL0mNsuAlqVEWvCQ1\n", "yoKXpEZZ8JLUKAtekhplwUtSoyx4SWqUBS9JjbLgJalRFrwkNcqCl6RGWfCS1CgLXpIaZcFLUqMs\n", "eElqlAUvSY2y4CWpURa8JDXKgpekRlnwktQoC16SGmXBS1KjLHhJapQFL0mNsuAlqVEWvCQ1yoKX\n", "pEZZ8JLUKAtekhplwUtSoyx4SWrUogWf5Nokc0nuGtm2LcmBJHd0XxeMXLY1yX1J9iU5b6WCS5IW\n", "diQj+OuA8+dtK+ADVXVG9/UZgCSbgNcDm7p9PpzERwmS1INFy7eqPgd8a8xFGbPtImBnVT1eVfuB\n", "+4HNEyWUJC3LJKPrtyb5UpJrkhzfbTsJODBynQPAhgmOIUlapuUW/EeAU4HTgYeA9y9w3VrmMSRJ\n", "E1iznJ2q6uFDy0muBm7sVh8ENo5c9eRu29Mk2TayOqiqwXKySFKrkmwBtix7/6rFB9hJTgFurKqX\n", "d+vrq+qhbvntwJlV9Xvdk6w7GM67bwB2Ay+peQdJUlU1bg5fPUhSkz/QCpP+TCfPMXmGaZiV+1Pt\n", "WWp3LjqCT7ITOAc4MckDwLuALUlOZ/hb/DXgLQBVtTfJLmAv8ARwxfxylyStjiMawU/9oI7gZ8qs\n", "jDgdwf/YrczE96LZstTu9Bx1SWqUBS9JjbLgJalRFrwkNcqCl6RGWfCS1CgLXpIaZcFLUqMseElq\n", "lAUvSY2y4CWpURa8JDXKgpekRlnwktQoC16SGmXBS1KjLHhJapQFL0mNsuAlqVEWvCQ1ak3fASRN\n", "3/CDvyfnB38/s1nwUrMm7Xi7/ZnOgu+ZIy1JK8WCnwmOtCRNn0+ySlKjLHhJapQFL0mNsuAlqVEW\n", "vCQ1yoKXpEZZ8JLUKAtekhplwUtSoyx4SWqUBS9JjbLgJalRixZ8kmuTzCW5a2TbCUluTvKVJDcl\n", "OX7ksq1J7kuyL8l5KxVckrSwIxnBXwecP2/bVcDNVXUacEu3TpJNwOuBTd0+H07iowRJ6sGi5VtV\n", "nwO+NW/zhcD2bnk7cHG3fBGws6oer6r9wP3A5ulElSQtxXJH12uraq5bngPWdssnAQdGrncA2LDM\n", "Y0iSJjDx9ElVFQt/YsVUPrFIkrQ0y/1Ep7kk66rqYJL1wMPd9geBjSPXO7nb9jRJto2sDqpqsMws\n", "ktSkJFuALcvefzgAX/QgpwA3VtXLu/X3Ad+oqvcmuQo4vqqu6p5k3cFw3n0DsBt4Sc07SJLyM0SH\n", "hp/JOvlH9k1yf85ChunkmDzDNMzC/TkLGTR9S+3ORUfwSXYC5wAnJnkAeCfwHmBXkjcD+4FLAKpq\n", "b5JdwF7gCeCK+eUuSVodRzSCn/pBHcH/yCyMtGYhw3RyzMaIcxbuz1nIoOlband6jrokNcqCl6RG\n", "WfCS1CgLXpIaZcFLUqMseElqlAUvSY2y4CWpURa8JDXKgpekRlnwktQoC16SGmXBS1KjLHhJapQF\n", "L0mNsuAlqVEWvCQ1yoKXpEZZ8JLUKAtekhplwUtSoyx4SWqUBS9JjbLgJalRFrwkNcqCl6RGWfCS\n", "1CgLXpIaZcFLUqMseElqlAUvSY2y4CWpURa8JDXKgpekRlnwktQoC16SGrVmkp2T7AceBX4IPF5V\n", "m5OcAPwd8LPAfuCSqnpkwpySpCWadARfwJaqOqOqNnfbrgJurqrTgFu6dUnSKpvGFE3mrV8IbO+W\n", "twMXT+EYkqQlmsYIfneS25Nc3m1bW1Vz3fIcsHbCY0iSlmGiOXjg7Kp6KMlPAzcn2Td6YVVVkhq3\n", "Y5JtI6uDqhpMmEWSmpJkC7Bl2ftXje3f5QR5F/AYcDnDefmDSdYDt1bVS+ddt6pq/tTOUWn4B3DS\n", "n0GY5P6chQzTyTF5hmmYhftzFjJo+pbancueoklybJIXdMvPB84D7gI+DVzWXe0y4IblHkOStHyT\n", "TNGsBT6V5NDtfKKqbkpyO7AryZvpTpOcOKUkacmmNkWzpIM6RfMjs/BQehYyTCfHbEwpzML9OQsZ\n", "NH2rNkUjSZptFrwkNcqCl6RGWfCS1KhJX+gkSYd1uBc6LpVP9i6PBS9phU1+No+W56gteEcWklp3\n", "1Bb8kCMLSe3ySVZJapQFL0mNsuAlqVEWvCQ1yoKXpEZZ8JLUKAtekhplwUtSoyx4SWqUBS9JjbLg\n", "JalRFrwkNcqCl6RGWfCS1CgLXpIaZcFLUqMseElqlAUvSY2y4CWpURa8JDXKgpekRlnwktQoC16S\n", "GmXBS1KjLHhJatSavg6c5CcnvIlHq6qmEkaSGtRbwcNzH17+vt8/BjgB+Na00khqU5KpDASrKtO4\n", "ndW0IgWf5HzgQ8Czgaur6r1Pv9b3jln+EY79AXxv+btLOspM2vHPuG4HVmAOPsmzgb8Czgc2AZcm\n", "edm0jzN9g74DjDHoO8AYg74DHMag7wBjDPoOMMag7wBjDPoOMMag7wBTsRJPsm4G7q+q/VX1OPC3\n", "wEUrcJwpG/QdYIxB3wHGGPQd4DAGfQcYY9B3gDEGfQcYY9B3gDEGfQeYipUo+A3AAyPrB7ptkqRV\n", "tBJz8Ec42fXaby//ED94wfL3laTVN60ne5d0zGmfaZjkLGBbVZ3frW8Fnhx9orWPb1SSWrCUs3lW\n", "ouDXAF8Gfh34H+DzwKVVde9UDyRJWtDUp2iq6okkfwJ8luFpktdY7pK0+qY+gpckzYZVfS+aJNcm\n", "mUty12oedyFJNia5Nck9Se5O8rYZyPTcJLcl2ZNkb5K/6DvTIUmeneSOJDf2nQUgyf4kd3aZPt93\n", "HoAkxye5Psm93c/vrBnI9PPdfXTo69sz8ru+tfu/d1eSHUl+YgYyXdnluTvJlT1leFpXJjkhyc1J\n", "vpLkpiTHL3Y7q/1mY9cxfAHULHkceHtV/QJwFvDHfb8wq6q+D7ymqk4Hfgl4TZJX9ZlpxJXAXiZ/\n", "aeC0FLClqs6oqs19h+n8JfBPVfUyhj+/3qcoq+rL3X10BvArwHeBT/WZKckpwOXAK6rq5QyndN/Q\n", "c6ZfBP4IOBP4ZeB1SV7cQ5RxXXkVcHNVnQbc0q0vaFULvqo+x4y9f0xVHayqPd3yYwz/M57Ubyqo\n", "qu92i8cw/MX/Zo9xAEhyMvCbwNXM1mu3ZyZL9yZ6r66qa2H4nFRVTXBK8Io4F/hqVT2w6DVX1qMM\n", "B1jHdidnHAs82G8kXgrcVlXfr6ofAv8K/O5qhzhMV14IbO+WtwMXL3Y7vl3wiG5EcQZwW79JIMmz\n", "kuwB5oBbq2pv35mADwJ/BjzZd5ARBexOcnuSy/sOA5wKfD3JdUm+mORvkhzbd6h53gDs6DtEVX0T\n", "eD/w3wzPuHukqnb3m4q7gVd30yHHAr8FnNxzpkPWVtVctzwHrF1sBwu+k+Q44Hrgym4k36uqerKb\n", "ojkZ+LUkW/rMk+R1wMNVdQczNGIGzu6mHS5gOL326p7zrAFeAXy4ql4B/B9H8FB6tSQ5Bvht4O9n\n", "IMuLgT8FTmH4qPm4JL/fZ6aq2ge8F7gJ+AxwB7M1oAGge6v0RadJLXggyXOATwIfr6ob+s4zqnt4\n", "/4/AK3uO8qvAhUm+BuwEXpvkoz1noqoe6v79OsM55b7n4Q8AB6rqv7r16xkW/qy4APhCd3/17ZXA\n", "f1TVN6rqCeAfGP6e9aqqrq2qV1bVOcAjDF/XMwvmkqwDSLIeWPQt14/6gk8S4Bpgb1V9qO88AElO\n", "PPQMeZLnAb/BcCTRm6p6R1VtrKpTGT7E/5eq+oM+MyU5NskLuuXnA+cBvZ6hVVUHgQeSnNZtOhe4\n", "p8dI813K8A/0LNgHnJXked3/w3MZPoHfqyQ/0/37IuB3mIHprM6ngcu65cuARQejq/qBH0l2AucA\n", "L0zyAPDOqrpuNTOMcTbwRuDOJIdKdGtV/XOPmdYD25M8i+Ef4Y9V1S095hlnFs6iWQt8atgNrAE+\n", "UVU39RsJgLcCn+imQ74KvKnnPMCP/giey/DMld5V1Ze6R4G3M5wG+SLw1/2mAuD6JC9k+ATwFVX1\n", "6GoHGOnKEw91JfAeYFeSNwP7gUsWvR1f6CRJbTrqp2gkqVUWvCQ1yoKXpEZZ8JLUKAtekhplwUtS\n", "oyx4SWqUBS9Jjfp/neQe7PWQXusAAAAASUVORK5CYII=\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "n, p = 10, .5 # number of trials, probability of each trial\n", "s = np.random.binomial(n, p, size=1000) # result of flipping a coin 10 times, tested 1000 times.\n", "plt.hist(s, bins=20);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The variance of a binomial distribution follows the following formula:\n", "\n", "$V(X) = np(1-p)$\n", "\n", "Where n is the number of trials/flips. The distribution is N, ie this was done thousands of times to get a real statistical distribution.\n", "\n", "Meaning the standard deviation is:\n", "\n", "$\\sigma(x) = \\sqrt{V(x)}$\n", "\n", "$\\sigma(x) = \\sqrt{np(1-p)}$\n", "\n", "For a fair coin:\n", "\n", "$\\sigma(x) = \\sqrt{n} \\times 0.25$" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "std is 1.52804417475\n", "sqrt n times .25 is 1.58113883008\n" ] } ], "source": [ "print 'std is %s' %(np.std(s))\n", "print 'sqrt n times .25 is',sqrt(10.0 * 0.25)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**By the way, how fast this this?**" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10000 loops, best of 3: 99.6 \u00b5s per loop\n" ] } ], "source": [ "%%timeit\n", "s = np.random.binomial(n, p, size=1000) # result of flipping a coin 10 times, tested 1000 times." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10 loops, best of 3: 28.1 ms per loop\n" ] } ], "source": [ "%%timeit\n", "simulation(2000, plot=False) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**What, 100-1000 times faster?**" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### What about two coins" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We were pretty smart with our design of functions, so we can *ensemble* space, ie the number of possible outcomes. " ] }, { "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": [ "def two_flips():\n", " return fair_coin() + fair_coin()\n", "\n", "simulation(trials=5000, fcn=two_flips, plot=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# IGNORE ME" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import os.path as op\n", "from IPython.display import display, HTML\n", "\n", "def load_style(s, figsize=None, loghide=False):\n", " \"\"\"Load a CSS stylesheet in the notebook either by builtin styles, or\n", " from a file, or from a URL.\n", " Examples::\n", " %load_style \n", " %load_style mystyle.css\n", " %load_style http://ipynbstyles.com/otherstyle.css\n", " \"\"\"\n", " if s.startswith('http'):\n", " try:\n", " import requests\n", " except ImportError:\n", " raise ImportError('Failed to import python \"requests\" library;'\n", " 'please install to use load_style(url)')\n", " r =requests.get(s)\n", " style = r.text\n", "\n", " else:\n", " try:\n", " with open(s, 'r') as f:\n", " style = f.read()\n", " except IOError:\n", " raise IOError('Failed to load style as a url, file or builtin type.'\n", " ' Valid builtins are \"%s\"' % '\",\"'.join(__all__.keys() ))\n", "\n", " out = ''.format(style=style)\n", " \n", " if figsize:\n", " if figsize == True:\n", " figsize = 8, 5.5\n", " else:\n", " try:\n", " fx, fy = figsize\n", " except Exception:\n", " fx, fy = figsize, figsize\n", " \n", " fstring = \"\\ninput:pylab.rcParams['figure.figsize'] = %s, %s\\n\" \\\n", " % (fx,fy)\n", " out += fstring\n", "\n", " display(HTML(out))\n", " \n", " if loghide:\n", " import warnings #supress non-skspec log msgs\n", " warnings.filterwarnings('ignore') \n" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#load_style('https://raw.githubusercontent.com/panditarevolution/ipythonNotebook_customs/master/monokai/custom.css')\n", "load_style('https://raw.githubusercontent.com/hugadams/skspec/master/skspec/bundled/gwu.css')" ] } ], "metadata": { "kernelspec": { "display_name": "IPython (Python 2)", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "mimetype": "text/x-python", "name": "python", "pygments_lexer": "ipython2" }, "signature": "sha256:3953ac7af48e16be46228206dfa760dd8b0becce2d4c06883560fc8ba1f5a876" }, "nbformat": 4, "nbformat_minor": 0 }