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
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 ...