Note
Go to the end to download the full example code.
Mixtures of logit with Monte-Carlo 2000 antithetic MLHS drawsΒΆ
Estimation of a mixtures of logit models where the integral is approximated using MonteCarlo integration with antithetic MLHS draws.
Michel Bierlaire, EPFL Sun Jun 29 2025, 02:12:06
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_specification_mlhs_anti_500.py')
Example b07estimation_specification_mlhs_anti_500.py
R = 500
the_draws = Draws('b_time_rnd', 'NORMAL_MLHS_ANTI')
the_biogeme = get_biogeme(the_draws=the_draws, number_of_draws=R)
the_biogeme.model_name = 'b07estimation_monte_carlo_mlhs_anti_500'
results_file = f'saved_results/{the_biogeme.model_name}.yaml'
Biogeme parameters read from biogeme.toml.
The number of draws (500) is low. The results may not be meaningful.
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_mlhs_anti_500
Nbr of parameters: 5
Sample size: 10719
Excluded data: 9
Final log likelihood: -8572.255
Akaike Information Criterion: 17154.51
Bayesian Information Criterion: 17190.91
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.467866 0.048022 -9.742735 0.000000e+00
1 b_time -1.861711 0.075532 -24.647839 0.000000e+00
2 b_time_s 1.207829 0.082474 14.645053 0.000000e+00
3 b_cost -0.845145 0.057626 -14.666004 0.000000e+00
4 asc_car 0.179738 0.035184 5.108470 3.247787e-07
Total running time of the script: (0 minutes 1.318 seconds)