.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/programmers/plot_segmentation.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_programmers_plot_segmentation.py: biogeme.segmentation ==================== Examples of use of several functions. This is designed for programmers who need examples of use of the functions of the module. The examples are designed to illustrate the syntax. They do not correspond to any meaningful model. :author: Michel Bierlaire :date: Thu Dec 7 15:18:45 2023 .. GENERATED FROM PYTHON SOURCE LINES 15-20 .. code-block:: Python from biogeme.version import get_text import biogeme.segmentation as seg from biogeme.expressions import Variable, Beta .. GENERATED FROM PYTHON SOURCE LINES 21-22 Version of Biogeme. .. GENERATED FROM PYTHON SOURCE LINES 22-24 .. code-block:: Python print(get_text()) .. rst-class:: sphx-glr-script-out .. code-block:: none biogeme 3.2.14 [2024-08-05] Home page: http://biogeme.epfl.ch Submit questions to https://groups.google.com/d/forum/biogeme Michel Bierlaire, Transport and Mobility Laboratory, Ecole Polytechnique Fédérale de Lausanne (EPFL) .. GENERATED FROM PYTHON SOURCE LINES 25-27 .. code-block:: Python socio_eco_1 = Variable('socio_eco_1') .. GENERATED FROM PYTHON SOURCE LINES 28-37 .. code-block:: Python segmentation_1 = seg.DiscreteSegmentationTuple( variable=socio_eco_1, mapping={ 1: 'high', 2: 'medium', 3: 'low', }, ) .. GENERATED FROM PYTHON SOURCE LINES 38-40 .. code-block:: Python socio_eco_2 = Variable('socio_eco_2') .. GENERATED FROM PYTHON SOURCE LINES 41-51 .. code-block:: Python segmentation_2 = seg.DiscreteSegmentationTuple( variable=socio_eco_2, mapping={ 1: 'level_1', 2: 'level_2', 3: 'level_3', 4: 'level_4', }, ) .. GENERATED FROM PYTHON SOURCE LINES 52-54 .. code-block:: Python beta_x = Beta('beta_x', 0, None, None, 0) .. GENERATED FROM PYTHON SOURCE LINES 55-57 .. code-block:: Python segmented_parameter = seg.Segmentation(beta_x, (segmentation_1,)) .. GENERATED FROM PYTHON SOURCE LINES 58-59 The expressions for the segmented parameter is obtained as follows: .. GENERATED FROM PYTHON SOURCE LINES 59-61 .. code-block:: Python segmented_parameter.segmented_beta() .. rst-class:: sphx-glr-script-out .. code-block:: none bioMultSum(Beta('beta_x', 0, None, None, 0), (Beta('beta_x_medium', 0, None, None, 0) * (socio_eco_1 == `2.0`)), (Beta('beta_x_low', 0, None, None, 0) * (socio_eco_1 == `3.0`))) .. GENERATED FROM PYTHON SOURCE LINES 62-63 The corresponding Python code can be obtained as follows. .. GENERATED FROM PYTHON SOURCE LINES 63-65 .. code-block:: Python print(segmented_parameter.segmented_code()) .. rst-class:: sphx-glr-script-out .. code-block:: none beta_x_medium = Beta('beta_x_medium', 0, None, None, 0) beta_x_low = Beta('beta_x_low', 0, None, None, 0) segmented_beta_x = bioMultSum([Beta('beta_x', 0, None, None, 0), beta_x_medium * (Variable('socio_eco_1') == 2), beta_x_low * (Variable('socio_eco_1') == 3)]) .. GENERATED FROM PYTHON SOURCE LINES 66-67 The code of the original Beta is also available: .. GENERATED FROM PYTHON SOURCE LINES 67-69 .. code-block:: Python print(segmented_parameter.beta_code()) .. rst-class:: sphx-glr-script-out .. code-block:: none Beta('beta_x', 0, None, None, 0) .. GENERATED FROM PYTHON SOURCE LINES 70-71 Same with the second segmentation .. GENERATED FROM PYTHON SOURCE LINES 71-73 .. code-block:: Python segmented_parameter = seg.Segmentation(beta_x, (segmentation_2,)) .. GENERATED FROM PYTHON SOURCE LINES 74-76 .. code-block:: Python segmented_parameter.segmented_beta() .. rst-class:: sphx-glr-script-out .. code-block:: none bioMultSum(Beta('beta_x', 0, None, None, 0), (Beta('beta_x_level_2', 0, None, None, 0) * (socio_eco_2 == `2.0`)), (Beta('beta_x_level_3', 0, None, None, 0) * (socio_eco_2 == `3.0`)), (Beta('beta_x_level_4', 0, None, None, 0) * (socio_eco_2 == `4.0`))) .. GENERATED FROM PYTHON SOURCE LINES 77-79 .. code-block:: Python print(segmented_parameter.segmented_code()) .. rst-class:: sphx-glr-script-out .. code-block:: none beta_x_level_2 = Beta('beta_x_level_2', 0, None, None, 0) beta_x_level_3 = Beta('beta_x_level_3', 0, None, None, 0) beta_x_level_4 = Beta('beta_x_level_4', 0, None, None, 0) segmented_beta_x = bioMultSum([Beta('beta_x', 0, None, None, 0), beta_x_level_2 * (Variable('socio_eco_2') == 2), beta_x_level_3 * (Variable('socio_eco_2') == 3), beta_x_level_4 * (Variable('socio_eco_2') == 4)]) .. GENERATED FROM PYTHON SOURCE LINES 80-81 The two segmentations can be combined. .. GENERATED FROM PYTHON SOURCE LINES 81-89 .. code-block:: Python segmented_parameter = seg.Segmentation( beta_x, ( segmentation_1, segmentation_2, ), ) .. GENERATED FROM PYTHON SOURCE LINES 90-92 .. code-block:: Python segmented_parameter.segmented_beta() .. rst-class:: sphx-glr-script-out .. code-block:: none bioMultSum(Beta('beta_x', 0, None, None, 0), (Beta('beta_x_medium', 0, None, None, 0) * (socio_eco_1 == `2.0`)), (Beta('beta_x_low', 0, None, None, 0) * (socio_eco_1 == `3.0`)), (Beta('beta_x_level_2', 0, None, None, 0) * (socio_eco_2 == `2.0`)), (Beta('beta_x_level_3', 0, None, None, 0) * (socio_eco_2 == `3.0`)), (Beta('beta_x_level_4', 0, None, None, 0) * (socio_eco_2 == `4.0`))) .. GENERATED FROM PYTHON SOURCE LINES 93-94 .. code-block:: Python print(segmented_parameter.segmented_code()) .. rst-class:: sphx-glr-script-out .. code-block:: none beta_x_medium = Beta('beta_x_medium', 0, None, None, 0) beta_x_low = Beta('beta_x_low', 0, None, None, 0) beta_x_level_2 = Beta('beta_x_level_2', 0, None, None, 0) beta_x_level_3 = Beta('beta_x_level_3', 0, None, None, 0) beta_x_level_4 = Beta('beta_x_level_4', 0, None, None, 0) segmented_beta_x = bioMultSum([Beta('beta_x', 0, None, None, 0), beta_x_medium * (Variable('socio_eco_1') == 2), beta_x_low * (Variable('socio_eco_1') == 3), beta_x_level_2 * (Variable('socio_eco_2') == 2), beta_x_level_3 * (Variable('socio_eco_2') == 3), beta_x_level_4 * (Variable('socio_eco_2') == 4)]) .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.002 seconds) .. _sphx_glr_download_auto_examples_programmers_plot_segmentation.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_segmentation.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_segmentation.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_segmentation.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_