This notebook presents code and exercises from Think Bayes, second edition.
Copyright 2018 Allen B. Downey
MIT License: https://opensource.org/licenses/MIT
In [10]:
    
# Configure Jupyter so figures appear in the notebook
%matplotlib inline
# Configure Jupyter to display the assigned value after an assignment
%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'
import math
import numpy as np
from thinkbayes2 import Pmf, Suite, Joint
import thinkbayes2
import thinkplot
    
In [12]:
    
class Battleship(Suite, Joint):
    lam = 1
    
    def Likelihood(self, hypo, data):
        x_actual, y_actual = hypo
        x_guess, y_guess, result = data
        d = np.hypot(x_guess-x_actual, y_guess-y_actual)
        p_hit = np.exp(-self.lam * d)
        return p if result == 'hit' else 1-p
    
In [ ]:
    
for t, p in gap.Items():
    arrivals = thinkbayes2.MakePoissonPmf(1.3 * t, 25)
    thinkplot.plot(arrivals, color='C0', linewidth=0.1)
    metapmf[arrivals] = p
    
In [2]:
    
gap = thinkbayes2.MakeNormalPmf(7, 1, 3)
thinkplot.plot(gap)
    
    
In [4]:
    
metapmf = thinkbayes2.Pmf()
for t, p in gap.Items():
    arrivals = thinkbayes2.MakePoissonPmf(1.3 * t, 25)
    thinkplot.plot(arrivals, color='C0', linewidth=0.1)
    metapmf[arrivals] = p
    
    
In [5]:
    
mix = thinkbayes2.MakeMixture(metapmf)
mix.Mean()
thinkplot.Hist(mix)
thinkplot.decorate(xlabel='Number of passengers',
                   ylabel='PMF')
    
    
In [6]:
    
mix[10]
    
    Out[6]:
In [ ]:
    
    
In [ ]: