Skip to content

Commit 13b0c4b

Browse files
committed
Fix bug in ML negative_binomial_estimation
1 parent e43ba90 commit 13b0c4b

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

src/cpp/stat_tool/reestimation.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,7 +1325,7 @@ double Reestimation<Type>::negative_binomial_estimation(DiscreteParametric *dist
13251325
int i, j;
13261326
int max_inf_bound , inf_bound, swap;
13271327
double diff , shift_mean , parameter , probability , likelihood , max_likelihood = D_INF;
1328-
double max_param; double min_param = DOUBLE_ERROR;
1328+
double max_param; double min_param = DOUBLE_ERROR, cparam;
13291329
double dmin_param, dmax_param, left_l, right_l;
13301330
DiscreteParametric *dist_cpl = NULL, *dist_cpr = NULL;
13311331
bool moment_estimation_failure = false;
@@ -1422,12 +1422,13 @@ double Reestimation<Type>::negative_binomial_estimation(DiscreteParametric *dist
14221422
left_l = this->likelihood_computation(*dist_cpl);
14231423
right_l = this->likelihood_computation(*dist_cpr);
14241424
for (j=0; j < BISECTION_NB_ITER; j++) {
1425+
cparam = (dist_cpl->parameter + dist_cpr->parameter) / 2; // current candidate
14251426
if (left_l < right_l) {
1426-
dist_cpl->parameter = (dist_cpl->parameter + dist->parameter) / 2;
1427+
dist_cpl->parameter = cparam;
14271428
dist_cpl->computation();
14281429
left_l = this->likelihood_computation(*dist_cpl);
14291430
} else {
1430-
dist_cpr->parameter = (dist_cpl->parameter + dist_cpr->parameter) / 2;
1431+
dist_cpr->parameter = cparam;
14311432
dist_cpr->computation();
14321433
right_l = this->likelihood_computation(*dist_cpr);
14331434
}

0 commit comments

Comments
 (0)