Note
Go to the end to download the full example code.
Using the estimated modelΒΆ
Once the model has been estimated, it can be applied to calculate the choice probability under several
Michel Bierlaire, EPFL Sun Jun 15 2025, 08:30:48
import pandas as pd
from IPython.core.display_functions import display
from biogeme.biogeme import BIOGEME
from biogeme.database import Database
from biogeme.models import logit
from biogeme.results_processing import EstimationResults
from tutorial_model import utilities
Read the estimation results from a file
filename = 'saved_results/first_model.yaml'
estimation_results = EstimationResults.from_yaml_file(filename=filename)
scenarios = {
'ID': pd.Series([1, 2]),
'auto_time': pd.Series(
[
10.0,
12.0,
]
),
'transit_time': pd.Series(
[
4.4,
13.0,
]
),
}
pandas_dataframe = pd.DataFrame(scenarios)
display(pandas_dataframe)
ID auto_time transit_time
0 1 10.0 4.4
1 2 12.0 13.0
car_id = 0
transit_id = 1
proba_car = logit(utilities, None, car_id)
proba_transit = logit(utilities, None, transit_id)
simulate = {
'Utility car': utilities[car_id],
'Utility transit': utilities[transit_id],
'Proba. car': proba_car,
'Proba. transit': proba_transit,
}
The data frame is used to initialize the Biogeme database.
scenarios_database = Database('ben_akiva_lerman_scenarios', pandas_dataframe)
Now we can perform simulation
biogeme_object = BIOGEME(scenarios_database, simulate)
results = biogeme_object.simulate(the_beta_values=estimation_results.get_beta_values())
The results are stored in a Pamdas dataframe, one row for each scenario in the original database.
display(results)
Utility car Utility transit Proba. car Proba. transit
0 -0.768671 -0.233683 0.369354 0.630646
1 -0.874891 -0.690428 0.454015 0.545985
Total running time of the script: (0 minutes 0.373 seconds)