Note
Go to the end to download the full example code.
Model specification
Script containing the model specification.
- author:
Michel Bierlaire
- date:
Wed Nov 1 17:37:33 2023
from biogeme.expressions import Beta, Variable, log
from biogeme.sampling_of_alternatives import CrossVariableTuple
Variable combining attributes of the alternatives and characteristics of the decision-maker
combined_variables = [
CrossVariableTuple(
'log_dist',
log(
(
(Variable('user_lat') - Variable('rest_lat')) ** 2
+ (Variable('user_lon') - Variable('rest_lon')) ** 2
)
** 0.5
),
)
]
Parameters to estimate.
beta_rating = Beta('beta_rating', 0, None, None, 0)
beta_price = Beta('beta_price', 0, None, None, 0)
beta_chinese = Beta('beta_chinese', 0, None, None, 0)
beta_japanese = Beta('beta_japanese', 0, None, None, 0)
beta_korean = Beta('beta_korean', 0, None, None, 0)
beta_indian = Beta('beta_indian', 0, None, None, 0)
beta_french = Beta('beta_french', 0, None, None, 0)
beta_mexican = Beta('beta_mexican', 0, None, None, 0)
beta_lebanese = Beta('beta_lebanese', 0, None, None, 0)
beta_ethiopian = Beta('beta_ethiopian', 0, None, None, 0)
beta_log_dist = Beta('beta_log_dist', 0, None, None, 0)
Utility function.
V = (
beta_rating * Variable('rating')
+ beta_price * Variable('price')
+ beta_chinese * Variable('category_Chinese')
+ beta_japanese * Variable('category_Japanese')
+ beta_korean * Variable('category_Korean')
+ beta_indian * Variable('category_Indian')
+ beta_french * Variable('category_French')
+ beta_mexican * Variable('category_Mexican')
+ beta_lebanese * Variable('category_Lebanese')
+ beta_ethiopian * Variable('category_Ethiopian')
+ beta_log_dist * Variable('log_dist')
)