Identification issue

13 views
Skip to first unread message

Dali Hajilari

unread,
Feb 8, 2025, 8:10:28 AM2/8/25
to bio...@googlegroups.com
Dear Prof. Bierlaire,

As presented below, I developed a random parameter ordinal logit model, but I receive the identification issue. How can I address this issue?

Best,
Dali

Code:

sigma_s1 = Beta('sigma_s1', 1, None, None, 1)
B_ADT = \
     ASC_ADT \
   + b_Weather_Con_4 * Weather_Con_4 \
   + sigma_s1 * bioDraws('EC', 'NORMAL_MLHS')
######################################################################## 
sigma_s2 = Beta('sigma_s2', 1, None, None, 1)
B_Collision_Type_2 = \
      ASC_Collision_Type_2 \
    + b_Accident_Cause_9 * Accident_Cause_9 \
    + sigma_s2 * bioDraws('FC', 'NORMAL_MLHS')
######################################################################## 
tau1 = Beta('tau1', -1, None, 0, 0)
delta1 = Beta('delta1', 2, 0, None, 0)
tau2 = tau1 + delta1
########################################################################
U =   ASC_Severity + \
      B_Collision_Type_2 * Collision_Type_2 + \
      b_ADT * ADT + \
      b_Accident_Type_3 * Accident_Type_3 + \
      b_Accident_Type_4 * Accident_Type_4 + \
      b_Collision_Type_3 * Collision_Type_3 + \
      b_Collision_Type_5 * Collision_Type_5 + \
      b_Collision_Type_6 * Collision_Type_6 + \
      b_Collision_Type_8 * Collision_Type_8 + \
      b_Accident_Cause_8 * Accident_Cause_8 + \
      b_Road_Section_3 * Road_Section_3 + \
      b_Road_Section_7 * Road_Section_7 + \
      b_Season_03 * Season_03 + \
      b_Season_04 * Season_04 + \
      b_Involved_Veh01_Type_2 * Involved_Veh01_Type_2 + \
      b_Involved_Veh01_Type_3 * Involved_Veh01_Type_3 + \
      b_Involved_Veh_Type_3 * Involved_Veh_Type_3 + \
      b_Holiday * Holiday + \
      b_Hour_catogery_1 * Hour_catogery_1
########################################################################
the_proba = ordered_logit(continuous_value = U, list_of_discrete_values = [1, 2, 3], tau_parameter = tau1)
the_chosen_proba = Elem(the_proba, Severity)
loglike = log(MonteCarlo(the_chosen_proba))
the_biogeme = bio.BIOGEME(database, loglike, numberOfDraws = 250)

Michel Bierlaire

unread,
Feb 9, 2025, 4:56:54 AM2/9/25
to hajila...@gmail.com, Michel Bierlaire, bio...@googlegroups.com
My guess is that you are trying to estimate both the constant and the thresholds. One of them must be normalized to set the zero.

In any case, try first to estimate the ordered logit with fixed parameters before investigating the random version.
> --
> 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 visit https://groups.google.com/d/msgid/biogeme/CANAWg2MnxoWx4ira23%2BK6qmNWRi7RDfbcEpm6fSHgS%3Dye9kWpA%40mail.gmail.com.

Michel Bierlaire
Transport and Mobility Laboratory
School of Architecture, Civil and Environmental Engineering
EPFL - Ecole Polytechnique Fédérale de Lausanne
http://transp-or.epfl.ch
http://people.epfl.ch/michel.bierlaire

Reply all
Reply to author
Forward
0 new messages