.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/indicators/plot_b04market_shares.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_indicators_plot_b04market_shares.py: Calculation of market shares ============================ We use an estimated model to calculate market shares. Michel Bierlaire, EPFL Sat Jun 28 2025, 18:06:27 .. GENERATED FROM PYTHON SOURCE LINES 11-21 .. code-block:: Python import sys from biogeme.biogeme import BIOGEME from biogeme.data.optima import normalized_weight, read_data from biogeme.models import nested from biogeme.results_processing import EstimationResults from scenarios import scenario .. GENERATED FROM PYTHON SOURCE LINES 22-23 Obtain the specification for the default scenario .. GENERATED FROM PYTHON SOURCE LINES 23-25 .. code-block:: Python v, nests, _, _ = scenario() .. GENERATED FROM PYTHON SOURCE LINES 26-27 Obtain the expression for the choice probability of each alternative. .. GENERATED FROM PYTHON SOURCE LINES 27-31 .. code-block:: Python prob_pt = nested(v, None, nests, 0) prob_car = nested(v, None, nests, 1) prob_sm = nested(v, None, nests, 2) .. GENERATED FROM PYTHON SOURCE LINES 32-33 Read the estimation results from the file .. GENERATED FROM PYTHON SOURCE LINES 33-44 .. code-block:: Python try: results = EstimationResults.from_yaml_file( filename='saved_results/b02estimation.yaml' ) except FileNotFoundError: sys.exit( 'Run first the script b02simulation.py ' 'in order to generate the ' 'file b02estimation.yaml.' ) .. GENERATED FROM PYTHON SOURCE LINES 45-46 Read the database .. GENERATED FROM PYTHON SOURCE LINES 46-48 .. code-block:: Python database = read_data() .. GENERATED FROM PYTHON SOURCE LINES 49-50 We now simulate the choice probabilities and the weight .. GENERATED FROM PYTHON SOURCE LINES 50-60 .. code-block:: Python simulate = { 'weight': normalized_weight, 'Prob. PT': prob_pt, 'Prob. car': prob_car, 'Prob. SM': prob_sm, } the_biogeme = BIOGEME(database, simulate) simulated_values = the_biogeme.simulate(results.get_beta_values()) .. GENERATED FROM PYTHON SOURCE LINES 61-62 We also calculate confidence intervals for the calculated quantities, .. GENERATED FROM PYTHON SOURCE LINES 62-65 .. code-block:: Python b = results.get_betas_for_sensitivity_analysis() left, right = the_biogeme.confidence_intervals(b, 0.9) .. GENERATED FROM PYTHON SOURCE LINES 66-68 Market shares are calculated using the weighted mean of the individual probabilities. .. GENERATED FROM PYTHON SOURCE LINES 70-71 Alternative car .. GENERATED FROM PYTHON SOURCE LINES 71-81 .. code-block:: Python simulated_values['Weighted prob. car'] = ( simulated_values['weight'] * simulated_values['Prob. car'] ) left['Weighted prob. car'] = left['weight'] * left['Prob. car'] right['Weighted prob. car'] = right['weight'] * right['Prob. car'] market_share_car = simulated_values['Weighted prob. car'].mean() market_share_car_left = left['Weighted prob. car'].mean() market_share_car_right = right['Weighted prob. car'].mean() .. GENERATED FROM PYTHON SOURCE LINES 82-83 Alternative public transportation .. GENERATED FROM PYTHON SOURCE LINES 83-93 .. code-block:: Python simulated_values['Weighted prob. PT'] = ( simulated_values['weight'] * simulated_values['Prob. PT'] ) left['Weighted prob. PT'] = left['weight'] * left['Prob. PT'] right['Weighted prob. PT'] = right['weight'] * right['Prob. PT'] market_share_pt = simulated_values['Weighted prob. PT'].mean() market_share_pt_left = left['Weighted prob. PT'].mean() market_share_pt_right = right['Weighted prob. PT'].mean() .. GENERATED FROM PYTHON SOURCE LINES 94-95 Alternative slow modes .. GENERATED FROM PYTHON SOURCE LINES 95-105 .. code-block:: Python simulated_values['Weighted prob. SM'] = ( simulated_values['weight'] * simulated_values['Prob. SM'] ) left['Weighted prob. SM'] = left['weight'] * left['Prob. SM'] right['Weighted prob. SM'] = right['weight'] * right['Prob. SM'] market_share_sm = simulated_values['Weighted prob. SM'].mean() market_share_sm_left = left['Weighted prob. SM'].mean() market_share_sm_right = right['Weighted prob. SM'].mean() .. GENERATED FROM PYTHON SOURCE LINES 106-107 Reporting. .. GENERATED FROM PYTHON SOURCE LINES 109-110 Car. .. GENERATED FROM PYTHON SOURCE LINES 110-116 .. code-block:: Python print( f'Market share for car: {100 * market_share_car:.1f}% ' f'[{100 * market_share_car_left:.1f}%, ' f'{100 * market_share_car_right:.1f}%]' ) .. GENERATED FROM PYTHON SOURCE LINES 117-118 Public transportation. .. GENERATED FROM PYTHON SOURCE LINES 118-124 .. code-block:: Python print( f'Market share for PT: {100 * market_share_pt:.1f}% ' f'[{100 * market_share_pt_left:.1f}%, ' f'{100 * market_share_pt_right:.1f}%]' ) .. GENERATED FROM PYTHON SOURCE LINES 125-126 Slow modes. .. GENERATED FROM PYTHON SOURCE LINES 126-131 .. code-block:: Python print( f'Market share for SM: {100 * market_share_sm:.1f}% ' f'[{100 * market_share_sm_left:.1f}%, ' f'{100 * market_share_sm_right:.1f}%]' ) .. _sphx_glr_download_auto_examples_indicators_plot_b04market_shares.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_b04market_shares.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_b04market_shares.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_b04market_shares.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_