Mixtures of logit with Monte-Carlo 500 drawsΒΆ

Estimation of a mixtures of logit models where the integral is approximated using MonteCarlo integration.

Michel Bierlaire, EPFL Sun Jun 29 2025, 03:47:53

from b07estimation_specification import get_biogeme
from IPython.core.display_functions import display

import biogeme.biogeme_logging as blog
from biogeme.expressions import Draws
from biogeme.results_processing import (
    EstimationResults,
    get_pandas_estimated_parameters,
)
logger = blog.get_screen_logger(level=blog.INFO)
logger.info('Example b07estimation_monte_carlo_500.py')
Example b07estimation_monte_carlo_500.py
R = 500
the_draws = Draws('b_time_rnd', 'NORMAL')
the_biogeme = get_biogeme(the_draws=the_draws, number_of_draws=R)
the_biogeme.model_name = 'b07estimation_monte_carlo_500'
results_file = f'saved_results/{the_biogeme.model_name}.yaml'
Biogeme parameters read from biogeme.toml.
try:
    results = EstimationResults.from_yaml_file(filename=results_file)
except FileNotFoundError:
    results = the_biogeme.estimate()
print(results.short_summary())
Results for model b07estimation_monte_carlo_500
Nbr of parameters:              5
Sample size:                    10719
Excluded data:                  9
Final log likelihood:           -8575.894
Akaike Information Criterion:   17161.79
Bayesian Information Criterion: 17198.19

Get the results in a pandas table

pandas_results = get_pandas_estimated_parameters(
    estimation_results=results,
)
display(pandas_results)
        Name     Value  Robust std err.  Robust t-stat.  Robust p-value
0  asc_train -0.471849         0.047959       -9.838629    0.000000e+00
1     b_time -1.844287         0.075651      -24.378989    0.000000e+00
2   b_time_s  1.185231         0.088825       13.343403    0.000000e+00
3     b_cost -0.844821         0.057509      -14.690137    0.000000e+00
4    asc_car  0.175623         0.035151        4.996252    5.845527e-07

Total running time of the script: (0 minutes 0.255 seconds)

Gallery generated by Sphinx-Gallery