def testParameterEstimation(self): alpha = 0.1 beta = 0.1 data = numpy.random.gamma(alpha, 1. / beta, 10000) pdf = Gamma(1, 1) pdf.estimate(data) self.assertAlmostEqual(pdf.alpha, alpha, places=2) self.assertAlmostEqual(pdf.beta, beta, places=1)
def calculate_KL((posterior_distances, prior_distances, bins)): from csb.statistics.pdf import Gamma from csb.numeric import log g = Gamma() g.estimate(prior_distances) posterior_hist = np.histogram(posterior_distances, bins=bins, normed=True)[0] return np.trapz(posterior_hist * log(posterior_hist / g(bins[:-1])), bins[:-1])