.. 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. :author: Michel Bierlaire, EPFL :date: Wed Apr 12 21:03:52 2023 .. GENERATED FROM PYTHON SOURCE LINES 12-20 .. code-block:: default import sys from biogeme import models import biogeme.biogeme as bio import biogeme.exceptions as excep import biogeme.results as res from optima_data import database, normalized_weight from scenarios import scenario .. GENERATED FROM PYTHON SOURCE LINES 21-22 Obtain the specification for the default scenario .. GENERATED FROM PYTHON SOURCE LINES 22-24 .. code-block:: default V, nests, _, _ = scenario() .. GENERATED FROM PYTHON SOURCE LINES 25-26 Obtain the expression for the choice probability of each alternative. .. GENERATED FROM PYTHON SOURCE LINES 26-30 .. code-block:: default prob_PT = models.nested(V, None, nests, 0) prob_CAR = models.nested(V, None, nests, 1) prob_SM = models.nested(V, None, nests, 2) .. GENERATED FROM PYTHON SOURCE LINES 31-32 Read the estimation results from the file .. GENERATED FROM PYTHON SOURCE LINES 32-41 .. code-block:: default try: results = res.bioResults(pickleFile='saved_results/b02estimation.pickle') except excep.BiogemeError: sys.exit( 'Run first the script b02simulation.py ' 'in order to generate the ' 'file b02estimation.pickle.' ) .. GENERATED FROM PYTHON SOURCE LINES 42-43 We now simulate the choice probabilities and the weight .. GENERATED FROM PYTHON SOURCE LINES 43-53 .. code-block:: default simulate = { 'weight': normalized_weight, 'Prob. PT': prob_PT, 'Prob. car': prob_CAR, 'Prob. SM': prob_SM, } the_biogeme = bio.BIOGEME(database, simulate) simulated_values = the_biogeme.simulate(results.getBetaValues()) .. GENERATED FROM PYTHON SOURCE LINES 54-55 We also calculate confidence intervals for the calculated quantities, .. GENERATED FROM PYTHON SOURCE LINES 55-59 .. code-block:: default betas = the_biogeme.free_beta_names() b = results.getBetasForSensitivityAnalysis(betas) left, right = the_biogeme.confidenceIntervals(b, 0.9) .. GENERATED FROM PYTHON SOURCE LINES 60-62 Market shares are calculated using the weighted mean of the individual probabilities. .. GENERATED FROM PYTHON SOURCE LINES 64-65 Alternative car .. GENERATED FROM PYTHON SOURCE LINES 65-75 .. code-block:: default 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'] marketShare_car = simulated_values['Weighted prob. car'].mean() marketShare_car_left = left['Weighted prob. car'].mean() marketShare_car_right = right['Weighted prob. car'].mean() .. GENERATED FROM PYTHON SOURCE LINES 76-77 Alternative public transportation .. GENERATED FROM PYTHON SOURCE LINES 77-87 .. code-block:: default 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'] marketShare_PT = simulated_values['Weighted prob. PT'].mean() marketShare_PT_left = left['Weighted prob. PT'].mean() marketShare_PT_right = right['Weighted prob. PT'].mean() .. GENERATED FROM PYTHON SOURCE LINES 88-89 Alternative slow modes .. GENERATED FROM PYTHON SOURCE LINES 89-99 .. code-block:: default 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'] marketShare_SM = simulated_values['Weighted prob. SM'].mean() marketShare_SM_left = left['Weighted prob. SM'].mean() marketShare_SM_right = right['Weighted prob. SM'].mean() .. GENERATED FROM PYTHON SOURCE LINES 100-101 Reporting. .. GENERATED FROM PYTHON SOURCE LINES 103-104 Car. .. GENERATED FROM PYTHON SOURCE LINES 104-110 .. code-block:: default print( f'Market share for car: {100*marketShare_car:.1f}% ' f'[{100*marketShare_car_left:.1f}%, ' f'{100*marketShare_car_right:.1f}%]' ) .. rst-class:: sphx-glr-script-out .. code-block:: none Market share for car: 65.3% [61.1%, 69.3%] .. GENERATED FROM PYTHON SOURCE LINES 111-112 Public transportation. .. GENERATED FROM PYTHON SOURCE LINES 112-118 .. code-block:: default print( f'Market share for PT: {100*marketShare_PT:.1f}% ' f'[{100*marketShare_PT_left:.1f}%, ' f'{100*marketShare_PT_right:.1f}%]' ) .. rst-class:: sphx-glr-script-out .. code-block:: none Market share for PT: 28.1% [23.8%, 32.4%] .. GENERATED FROM PYTHON SOURCE LINES 119-120 Slow modes. .. GENERATED FROM PYTHON SOURCE LINES 120-125 .. code-block:: default print( f'Market share for SM: {100*marketShare_SM:.1f}% ' f'[{100*marketShare_SM_left:.1f}%, ' f'{100*marketShare_SM_right:.1f}%]' ) .. rst-class:: sphx-glr-script-out .. code-block:: none Market share for SM: 6.6% [3.9%, 9.6%] .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 20.458 seconds) .. _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-python :download:`Download Python source code: plot_b04market_shares.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_b04market_shares.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_