# Think Bayes

This notebook presents example code and exercise solutions for Think Bayes.

``````

In [12]:

# 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 classes from thinkbayes2
from thinkbayes2 import Pmf, Beta, MakeBinomialPmf

import thinkplot

import numpy as np

``````
``````

In [25]:

beta = Beta(5, 5)
prior = beta.MakePmf()
thinkplot.Pdf(prior)
thinkplot.decorate(xlabel='Prob Red Sox win (x)',
ylabel='PDF')

``````
``````

``````
``````

In [26]:

%psource beta.Update

``````
``````

In [27]:

beta.Update((15, 0))
posterior = beta.MakePmf()

thinkplot.Pdf(prior, color='gray', label='prior')
thinkplot.Pdf(posterior, label='posterior')
thinkplot.decorate(xlabel='Prob Red Sox win (x)',
ylabel='PDF')

``````
``````

``````
``````

In [28]:

posterior.Mean()

``````
``````

Out[28]:

0.8000000040157967

``````
``````

In [29]:

posterior.MAP()

``````
``````

Out[29]:

0.83

``````
``````

In [30]:

posterior.CredibleInterval()

``````
``````

Out[30]:

(0.66, 0.91)

``````
``````

In [31]:

x = posterior.Random()

``````
``````

Out[31]:

0.94

``````
``````

In [32]:

np.sum(np.random.random(7) < x)

``````
``````

Out[32]:

7

``````
``````

In [33]:

def simulate(k, dist):
x = dist.Random()
return np.sum(np.random.random(k) <= x)

simulate(7, posterior)

``````
``````

Out[33]:

6

``````
``````

In [34]:

sample = [simulate(7, posterior) for i in range(100000)];
thinkplot.Hist(Pmf(sample))

``````
``````

``````
``````

In [35]:

np.mean(np.array(sample) >= 4)

``````
``````

Out[35]:

0.94716

``````
``````

In [ ]:

``````
``````

In [ ]:

``````