{ "cells": [ { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "import thinkbayes2\n", "import thinkplot\n" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [], "source": [ "class Socks(thinkbayes2.Suite):\n", " \n", " def __init__(self, hypos):\n", " \"\"\"Inits a Sock object.\n", " \n", " hypos: sequence or map of number of pairs in the drawer\n", " \n", " matched: number of matched socks that have been picked\n", " unmatched: number of unmatched socks that have been picked\n", " \"\"\"\n", " thinkbayes2.Suite.__init__(self, hypos)\n", " self.matched = 0\n", " self.unmatched = 0\n", " \n", " def Update(self, data):\n", " \"\"\"Updates the suite based on data.\n", " \n", " data: 'u' if we picked an unmatched sock, 'm' otherwise\n", " \"\"\"\n", " thinkbayes2.Suite.Update(self, data)\n", " if data == 'u':\n", " self.unmatched += 1\n", " else:\n", " self.matched += 1\n", " \n", " def Likelihood(self, data, hypo):\n", " \"\"\"Computes the likelihood of the data under the hypothesis.\n", " \n", " data: 'u' if we picked an unmatched sock, 'm' otherwise\n", " hypo: hypothetical number of pairs\n", " \"\"\"\n", " n_pairs = hypo\n", " n_socks = 2 * n_pairs - self.matched - self.unmatched\n", " if n_socks <= 0:\n", " return 0\n", " \n", " n_singletons = self.unmatched - self.matched\n", " p = n_singletons / n_socks\n", "\n", " like = 1-p if data == 'u' else p\n", " return like" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "prior_n_pairs = thinkbayes2.MakePoissonPmf(12, 30)\n", "suite = Socks(prior_n_pairs)\n", "thinkplot.Hist(suite)\n", "thinkplot.Config(xlabel='# pairs', ylabel='PMF', xlim=[0, 30])" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "suite = Socks(hypos)\n", "for datum in 'u' * 11:\n", " suite.Update('u')\n", "thinkplot.Hist(suite)\n", "thinkplot.Config(xlabel='# pairs', ylabel='PMF', xlim=[0, 30])" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [], "source": [ "class Socks2(Socks, thinkbayes2.Joint):\n", " \n", " def Likelihood(self, data, hypo):\n", " \"\"\"Computes the likelihood of the data under the hypothesis.\n", " \n", " data: 'u' if we picked an unmatched sock, 'm' otherwise\n", " hypo: hypothetical number of pairs, number of odds\n", " \"\"\"\n", " n_pairs, n_odds = hypo\n", " n_socks = 2 * n_pairs + n_odds - self.matched - self.unmatched\n", " if n_socks <= 0:\n", " return 0\n", " \n", " n_singletons = self.unmatched - self.matched\n", " p = n_singletons / n_socks\n", "\n", " like = 1-p if data == 'u' else p\n", " return like" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "prior_n_odds = thinkbayes2.MakePoissonPmf(3, 30)\n", "thinkplot.Hist(prior_n_odds)\n", "thinkplot.Config(xlabel='# odds', ylabel='PMF', xlim=[0, 30])" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [], "source": [ "joint = thinkbayes2.MakeJoint(prior_n_pairs, prior_n_odds)\n", "suite = Socks2(joint)\n", "for datum in 'u' * 11:\n", " suite.Update('u')" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "post_n_pairs = suite.Marginal(0)\n", "thinkplot.Hist(post_n_pairs)\n", "thinkplot.Config(xlabel='# pairs', ylabel='PMF', xlim=[0, 30])" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "post_n_odds = suite.Marginal(1)\n", "thinkplot.Hist(post_n_odds)\n", "thinkplot.Config(xlabel='# odds', ylabel='PMF', xlim=[0, 30])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 1 }