Skip to content

Commit

Permalink
weibull: math in log domain
Browse files Browse the repository at this point in the history
  • Loading branch information
erikbern committed Jan 21, 2018
1 parent c4ef644 commit 17e9620
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions convoys/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,10 +228,10 @@ def fit(self, C, N, B):
def f(x):
c, lambd, k = x
# PDF of Weibull: k * lambda * (x * lambda)^(k-1) * exp(-(t * lambda)^k)
likelihood_observed = c * k * lambd * (C * lambd)**(k-1) * exp(-(C*lambd)**k)
log_likelihood_observed = log(c) + log(k) + log(lambd) + (k-1)*(log(C) + log(lambd)) - (C*lambd)**k
# CDF of Weibull: 1 - exp(-(t * lambda)^k)
likelihood_censored = (1 - c) + c * exp(-(N*lambd)**k)
neg_LL = -sum(log(B * likelihood_observed + (1 - B) * likelihood_censored + LOG_EPS))
neg_LL = -sum(B * log_likelihood_observed + (1 - B) * log(likelihood_censored))
return neg_LL

c_initial = numpy.mean(B)
Expand Down

0 comments on commit 17e9620

Please sign in to comment.