18 views

Skip to first unread message

Sep 6, 2022, 1:40:03 AMSep 6

to Biogeme

Dear Biogeme users,

I'm a little bit confused with the following behaviour. Let's start with a very simple set of utility function such as:

*V1 = INTERCEPT1 + B_COST * log(cost1) + B_DURATION1 * log(duration1)*

*V2 = INTERCEPT2 + B_COST * log(cost2) + B_DURATION2 * log(duration2)*

*V3 = INTERCEPT3 + B_COST * log(cost3) + B_DURATION3 * log(duration3)*

Obviously, a cost increase or a longer transit time is expected to reduce the probability to choose the impacted mode. Hence, B_COST and B_DURATIONx should be negative.

The strange thing is that if B_COST is defined as:

*B_COST = Beta('b_cost', 0, None, None, 0) *

the estimator has the expected negative sign, but if I define it with a constraint on the upper value:

*B_COST = Beta('b_cost', 0, None, 0, 0)*

it sometimes happens that I obtain an "active bound" in the solution, with b_cost = 0

Did I miss something ?

Bart

Sep 6, 2022, 2:54:25 AMSep 6

to bart.j...@gmail.com, Bierlaire Michel, Biogeme

The optimization algorithm is stopping as soon as a local optimum is found. Adding constraints may increase the number of local optima.

In principle, if you start the estimation from the value of the unconstrained estimates, the specification with constraints should find the same results.

--

You received this message because you are subscribed to the Google Groups "Biogeme" group.

To unsubscribe from this group and stop receiving emails from it, send an email to biogeme+u...@googlegroups.com.

To view this discussion on the web visit https://groups.google.com/d/msgid/biogeme/387da990-1997-415e-ad04-953f571e19e4n%40googlegroups.com.

Sep 6, 2022, 11:25:44 AMSep 6

to Bierlaire Michel, Biogeme

Thank you for your answer Michel.

The unconstrained estimate of B_COST for my model is -0.020030

However, if I define B_COST = Beta('b_cost', **-0.020030**, None, 0, 0), the estimated b_cost = 0, with an active bound...

This is even true if I start with B_COST = Beta('b_cost', **-1**, None, 0, 0)

Amazingly, with B_COST = Beta('b_cost', **-0.020030**, None, **None**, 0), the estimated value for b_cost is -0.003315...

Note that, for all these cases, the t-test of b_cost is always poor. Could this be (part of) the explanation? Indeed, the problem I describe here is not observed with most of my datasets (I have 10 sets, corresponding to categories of commodities)

Sep 6, 2022, 11:27:11 AMSep 6

to bart.j...@gmail.com, Bierlaire Michel, Biogeme

Are the values of the log-likelihood comparable? If so, it means that the likelihood function is almost flat, and you are dealing with numerical issues.

Reply all

Reply to author

Forward

0 new messages

Search

Clear search

Close search

Google apps

Main menu