def logp(self, value): r""" Calculate log-probability of ZeroInflatedNegativeBinomial distribution at specified value. Parameters ---------- value: numeric Value(s) for which log-probability is calculated. If the log probabilities for multiple values are desired the values must be provided in a numpy array or theano tensor Returns ------- TensorVariable """ alpha = self.alpha mu = self.mu psi = self.psi logp_other = tt.log(psi) + self.nb.logp(value) logp_0 = logaddexp( tt.log1p(-psi), tt.log(psi) + alpha * (tt.log(alpha) - tt.log(alpha + mu))) logp_val = tt.switch(tt.gt(value, 0), logp_other, logp_0) return bound(logp_val, 0 <= value, 0 <= psi, psi <= 1, mu > 0, alpha > 0)
def logp(self, value): r""" Calculate log-probability of ZeroInflatedBinomial distribution at specified value. Parameters ---------- value: numeric Value(s) for which log-probability is calculated. If the log probabilities for multiple values are desired the values must be provided in a numpy array or theano tensor Returns ------- TensorVariable """ psi = self.psi p = self.p n = self.n logp_val = tt.switch( tt.gt(value, 0), tt.log(psi) + self.bin.logp(value), logaddexp(tt.log1p(-psi), tt.log(psi) + n * tt.log1p(-p)), ) return bound(logp_val, 0 <= value, value <= n, 0 <= psi, psi <= 1, 0 <= p, p <= 1)
def logp(self, value): psi = self.psi theta = self.theta logp_val = tt.switch(tt.gt(value, 0), tt.log(psi) + self.pois.logp(value), logaddexp(tt.log1p(-psi), tt.log(psi) - theta)) return bound(logp_val, 0 <= value, 0 <= psi, psi <= 1, 0 <= theta)
def logp(self, value): psi = self.psi p = self.p n = self.n logp_val = tt.switch( tt.gt(value, 0), tt.log(psi) + self.bin.logp(value), logaddexp(tt.log1p(-psi), tt.log(psi) + n * tt.log1p(-p))) return bound(logp_val, 0 <= value, value <= n, 0 <= psi, psi <= 1, 0 <= p, p <= 1)
def logp(self, value): alpha = self.alpha mu = self.mu psi = self.psi logp_other = tt.log(psi) + self.nb.logp(value) logp_0 = logaddexp( tt.log1p(-psi), tt.log(psi) + alpha * (tt.log(alpha) - tt.log(alpha + mu))) logp_val = tt.switch(tt.gt(value, 0), logp_other, logp_0) return bound(logp_val, 0 <= value, 0 <= psi, psi <= 1, mu > 0, alpha > 0)
def logp(self, value): psi = self.psi theta = self.theta logp_val = tt.switch( tt.gt(value, 0), tt.log(psi) + self.pois.logp(value), logaddexp(tt.log1p(-psi), tt.log(psi) - theta)) return bound( logp_val, 0 <= value, 0 <= psi, psi <= 1, 0 <= theta)
def logp(self, value): psi = self.psi p = self.p n = self.n logp_val = tt.switch( tt.gt(value, 0), tt.log(psi) + self.bin.logp(value), logaddexp(tt.log1p(-psi), tt.log(psi) + n * tt.log1p(-p))) return bound( logp_val, 0 <= value, value <= n, 0 <= psi, psi <= 1, 0 <= p, p <= 1)
def logp(self, value): alpha = self.alpha mu = self.mu psi = self.psi logp_other = tt.log(psi) + self.nb.logp(value) logp_0 = logaddexp( tt.log1p(-psi), tt.log(psi) + alpha * (tt.log(alpha) - tt.log(alpha + mu))) logp_val = tt.switch( tt.gt(value, 0), logp_other, logp_0) return bound( logp_val, 0 <= value, 0 <= psi, psi <= 1, mu > 0, alpha > 0)