Example #1
0
 def _kld(self, data, weights=None, normalize=False):
     assert((data >= 0).all() and (data <= self.n).all())
     alphas,betas = self._get_abs(data, weights)
     result = -dist_fit.log_beta_binomial( data, self.n, alphas, betas )
     if normalize:
         # evs = self.n*alphas/(alphas + betas)
         raise NotImplementedError('not sure how to normalize likelihood for discrete distribution')
     return result
Example #2
0
 def kld(self, succ, att):
     if att == 0: return 0.
     if succ > att: att = succ
     return -dist_fit.log_beta_binomial(succ, att, *self.ab)
Example #3
0
 def chi_sq(self, succ, att):
     # if att == 0: return 0.
     norm = dist_fit.log_beta_binomial(self.ev(att), att, *self.ab)
     return 2. * (self.kld(succ, att) + norm)