def main(): # make a uniform prior param = 1.2 prior = _make_uniform_suite(0.5, 1.5, 1000) # try out the sample in the book t = [] sample = [2.675, 0.198, 1.152, 0.787, 2.717, 4.269] name = 'post%d' % len(sample) posterior = _estimate_parameter(prior, sample, name) t.append(posterior) # try out a range of sample sizes for n in [10, 20, 40]: # generate a sample sample = [random.expovariate(param) for _ in range(n)] name = 'post%d' % n # compute the posterior posterior = _estimate_parameter(prior, sample, name) t.append(posterior) # plot the posterior distributions for i, posterior in enumerate(t): pyplot.subplot(2, 2, i + 1) _05_myplot._pmf(posterior) pyplot.xlabel('lambda') pyplot.ylabel('Posterior probability') pyplot.legend() _05_myplot._save(root='posteriors')
def main(): results = _read_results() speeds = _get_speeds(results) pmf = _04_Pmf._make_pmf_from_list(speeds, 'speeds') _05_myplot._pmf(pmf) _05_myplot._show(title='PMF of running speed', xlabel='speed (mph)', ylabel='probability')
def main(): suite = _make_uniform_suite(0.0, 1.0, 1001) evidence = 140, 110 _update(suite, evidence) suite.name = 'posterior' # plot the posterior distributions _05_myplot._pmf(suite) _05_myplot._show(title='Biased coin', xlabel='P(heads)', ylabel='Posterior probability')
def main(): upper_bound = 200 prior = _make_uniform_suite(1, upper_bound, upper_bound) prior.name = 'prior' evidence = 60 posterior = prior._copy() _update(posterior, evidence) posterior.name = 'posterior' print(_credible_interval(posterior, 90)) # plot the posterior distribution pyplot.subplots_adjust(wspace=0.4, left=0.15) plot_options = dict(linewidth=2) _05_myplot._pmf(posterior, **plot_options) _05_myplot._save(root='locomotive', title='Locomotive problem', xlabel='Number of trains', ylabel='Posterior probability')