.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/mdcev_no_outside_good/plot_non_monotonic_estimation.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_mdcev_no_outside_good_plot_non_monotonic_estimation.py: File non_monotonic_estimation.py Michel Bierlaire, EPFL Fri Jul 25 2025, 17:14:53 Estimation of a MDCEV model with the "non monotonic utility" specification. .. GENERATED FROM PYTHON SOURCE LINES 8-27 .. code-block:: Python from IPython.core.display_functions import display import biogeme.biogeme_logging as blog from biogeme.results_processing import get_pandas_estimated_parameters from non_monotonic_specification import the_non_monotonic from process_data import database, number_chosen from specification import consumed_quantities logger = blog.get_screen_logger(level=blog.INFO) logger.info('Example: non monotonic utility') results = the_non_monotonic.estimate_parameters( database=database, number_of_chosen_alternatives=number_chosen, consumed_quantities=consumed_quantities, tolerance=0.0004, ) .. rst-class:: sphx-glr-script-out .. code-block:: none Example: non monotonic utility Biogeme parameters read from biogeme.toml. *** Initial values of the parameters are obtained from the file __non_monotonic.iter Cannot read file __non_monotonic.iter. Statement is ignored. Starting values for the algorithm: {} As the model is not too complex, we activate the calculation of second derivatives. To change this behavior, modify the algorithm to "simple_bounds" in the TOML file. Optimization algorithm: hybrid Newton/BFGS with simple bounds [simple_bounds] ** Optimization: Newton with trust region for simple bounds Iter. Function Relgrad Radius Rho 0 2.4e+04 0.22 0.5 0 - 1 2.4e+04 0.22 0.25 -8.1 - 2 2.4e+04 0.22 0.12 -0.13 - 3 2.1e+04 0.14 0.12 0.88 + 4 2e+04 0.14 1.2 1 ++ 5 2e+04 0.14 0.28 -0.0013 - 6 2e+04 0.54 0.28 0.5 + 7 1.9e+04 0.31 0.28 0.62 + 8 1.8e+04 0.088 2.8 1 ++ 9 1.8e+04 0.031 28 0.98 ++ 10 1.8e+04 0.031 1.9 -6.3 - 11 1.8e+04 0.031 0.93 -0.45 - 12 1.8e+04 0.14 0.93 0.51 + 13 1.8e+04 0.072 0.93 0.64 + 14 1.7e+04 0.039 9.3 1 ++ 15 1.7e+04 0.095 9.3 0.76 + 16 1.7e+04 0.054 93 0.98 ++ 17 1.7e+04 0.054 0.97 -0.67 - 18 1.7e+04 0.054 0.49 -0.36 - 19 1.7e+04 0.083 0.49 0.5 + 20 1.7e+04 0.013 4.9 1.1 ++ 21 1.7e+04 0.054 49 1 ++ 22 1.7e+04 0.0045 4.9e+02 1 ++ 23 1.7e+04 0.0056 4.9e+03 0.93 ++ 24 1.7e+04 0.0034 4.9e+04 1 ++ 25 1.7e+04 0.0025 4.9e+05 0.99 ++ 26 1.7e+04 0.0015 4.9e+06 1 ++ 27 1.7e+04 0.00076 4.9e+07 0.98 ++ 28 1.7e+04 0.0028 4.9e+08 1.1 ++ 29 1.7e+04 0.00067 4.9e+09 0.99 ++ 30 1.7e+04 0.00068 1e+10 0.99 ++ 31 1.7e+04 0.00065 1e+10 1 ++ 32 1.7e+04 0.0023 1e+10 1 ++ 33 1.7e+04 0.0016 1e+10 1 ++ 34 1.7e+04 0.001 1e+10 1 ++ 35 1.7e+04 0.0019 1e+10 1.1 ++ 36 1.7e+04 0.0019 1e+10 1 ++ 37 1.7e+04 0.00076 1e+10 1 ++ 38 1.7e+04 0.0008 1e+10 1 ++ 39 1.7e+04 0.00045 1e+10 1 ++ 40 1.7e+04 0.00045 1e+10 1 ++ 41 1.7e+04 0.00044 1e+10 1 ++ 42 1.7e+04 0.00044 1e+10 1 ++ 43 1.7e+04 0.00043 1e+10 1 ++ 44 1.7e+04 0.00087 1e+10 1 ++ 45 1.7e+04 0.00043 1e+10 1 ++ 46 1.7e+04 0.00055 1e+10 1 ++ 47 1.7e+04 0.00042 1e+10 1 ++ 48 1.7e+04 0.00043 1e+10 1 ++ 49 1.7e+04 0.00042 1e+10 1 ++ 50 1.7e+04 0.00051 1e+10 1 ++ 51 1.7e+04 0.00041 1e+10 1 ++ 52 1.7e+04 0.00046 1e+10 1 ++ 53 1.7e+04 0.00041 1e+10 1 ++ 54 1.7e+04 0.00059 1e+10 1 ++ 55 1.7e+04 0.0004 1e+10 1 ++ 56 1.7e+04 0.00041 1e+10 1 ++ 57 1.7e+04 0.0004 1e+10 1 ++ Optimization algorithm has converged. Relative gradient: 0.0003984151665361689 Cause of termination: Relative gradient = 0.0004 <= 0.0004 Number of function evaluations: 159 Number of gradient evaluations: 101 Number of hessian evaluations: 50 Algorithm: Newton with trust region for simple bound constraints Number of iterations: 58 Proportion of Hessian calculation: 50/50 = 100.0% Optimization time: 0:00:04.017928 Calculate second derivatives and BHHH File non_monotonic.html has been generated. File non_monotonic.yaml has been generated. .. GENERATED FROM PYTHON SOURCE LINES 28-30 .. code-block:: Python print(results.short_summary()) .. rst-class:: sphx-glr-script-out .. code-block:: none Results for model non_monotonic Nbr of parameters: 34 Sample size: 4413 Excluded data: 0 Final log likelihood: -16943.87 Akaike Information Criterion: 33955.75 Bayesian Information Criterion: 34173.08 .. GENERATED FROM PYTHON SOURCE LINES 31-32 Get the results in a pandas table .. GENERATED FROM PYTHON SOURCE LINES 32-36 .. code-block:: Python pandas_results = get_pandas_estimated_parameters( estimation_results=results, ) display(pandas_results) .. rst-class:: sphx-glr-script-out .. code-block:: none {'Estimated parameters': Name Value ... Robust p-value Active bound 0 scale 10.808323 ... 1.554312e-15 False 1 holiday_shopping_mu -0.058864 ... 5.737346e-02 False 2 cte_shopping -0.301558 ... 3.096610e-10 False 3 metropolitan_shopping 0.022829 ... 6.234687e-02 False 4 male_shopping -0.087285 ... 6.186671e-03 False 5 age_15_40_shopping 0.040385 ... 5.358876e-04 False 6 spouse_shopping 0.031314 ... 1.123032e-03 False 7 employed_shopping 0.021882 ... 1.323267e-02 False 8 gamma_shopping 3.727725 ... 2.633315e-04 False 9 alpha_shopping 0.461766 ... 1.356044e-02 False 10 metro_social_mu -0.012176 ... 7.573101e-02 False 11 cte_socializing -0.185308 ... 1.059450e-10 False 12 number_members_socializing 0.007671 ... 2.097490e-04 False 13 male_socializing -0.071066 ... 1.825352e-02 False 14 age_41_60_socializing -0.031596 ... 1.083248e-03 False 15 bachelor_socializing -0.017955 ... 4.561434e-03 False 16 sunday_socializing 0.045686 ... 2.917506e-06 False 17 gamma_socializing 3.861608 ... 2.304137e-09 False 18 alpha_socializing 0.790979 ... 0.000000e+00 False 19 holiday_recreation_mu -0.045269 ... 1.812634e-01 False 20 cte_recreation -0.353281 ... 6.411227e-11 False 21 number_members_recreation 0.009276 ... 1.758783e-03 False 22 male_recreation -0.032044 ... 3.565549e-01 False 23 age_15_40_recreation 0.062378 ... 1.986767e-05 False 24 spouse_recreation -0.031490 ... 9.120338e-04 False 25 gamma_recreation 9.465438 ... 0.000000e+00 False 26 alpha_recreation 0.655938 ... 0.000000e+00 False 27 male_personal_mu -0.100569 ... 9.814445e-06 False 28 age_41_60_personal -0.025118 ... 4.900676e-03 False 29 bachelor_personal -0.017000 ... 1.013348e-02 False 30 white_personal -0.036868 ... 1.106918e-05 False 31 sunday_personal 0.040796 ... 1.069668e-05 False 32 gamma_personal 4.568080 ... 7.969181e-13 False 33 alpha_personal 0.000100 ... 9.996755e-01 True [34 rows x 6 columns]} .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 8.143 seconds) .. _sphx_glr_download_auto_examples_mdcev_no_outside_good_plot_non_monotonic_estimation.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_non_monotonic_estimation.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_non_monotonic_estimation.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_non_monotonic_estimation.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_