## Extracting the posteriors

After we update the Emitter, we can get the posterior distribution of r by looping through the Detectors and their probabilities:

# class Emitter def DistOfR(self): items = [(detector.r, prob) for detector, prob in self.Items()] return thinkbayes.MakePmfFromItems(items)

`items`

is a list of values of
r and their probabilities. The result is
the Pmf of r.

To get the posterior distribution of n, we have to compute the mixture of the Detectors.
We can use `thinkbayes.MakeMixture`

,
which takes a meta-Pmf that maps from each distribution to its
probability. And that’s exactly what the Emitter is:

# class Emitter def DistOfN(self): return thinkbayes.MakeMixture(self)

Figure 14-2 shows the results. Not surprisingly, the most likely value for n is 150. Given f and n, the expected count is , so given f and k, the expected value of n is , which is 150.

And if 150 particles are emitted in one second, the most likely value of r is 150 particles per second. So the posterior distribution of r is also centered on 150.

The posterior distributions of r and n are similar; the only difference is that we are slightly less certain ...

Get *Think Bayes* now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.