def trunc_logLik(data, mu, alpha):
log_1_plus_a_mu = np.log(1 + alpha*mu)
log_1_minus_prob_zero = np.log(1.0 - np.exp(-np.log(1.0+alpha*mu)/alpha))
alpha_inv = 1.0/alpha
lim = int(np.max(data.keys()))
holding_val=0.0
log_L=0.0
for i in range(1, lim+1):
holding_val += np.log(1+alpha*(i-1))
log_L += data[i]* (holding_val - special.gammaln(i) + i*np.log(mu)-(i+alpha_inv)*log_1_plus_a_mu - log_1_minus_prob_zero)
return log_L
评论列表
文章目录