.. note::
    :class: sphx-glr-download-link-note

    Click :ref:`here <sphx_glr_download_examples_documentation_confidence_advanced.py>` to download the full example code
.. rst-class:: sphx-glr-example-title

.. _sphx_glr_examples_documentation_confidence_advanced.py:


doc_confidence_advanced.py
==========================



.. rst-class:: sphx-glr-horizontal


    *

      .. image:: /examples/documentation/images/sphx_glr_confidence_advanced_001.png
            :class: sphx-glr-multi-img

    *

      .. image:: /examples/documentation/images/sphx_glr_confidence_advanced_002.png
            :class: sphx-glr-multi-img

    *

      .. image:: /examples/documentation/images/sphx_glr_confidence_advanced_003.png
            :class: sphx-glr-multi-img


.. rst-class:: sphx-glr-script-out

 Out:

 .. code-block:: none

    [[Variables]]
        a1:  2.98622145 +/- 0.14867385 (4.98%) (init = 2.986237)
        a2: -4.33526302 +/- 0.11527360 (2.66%) (init = -4.335256)
        t1:  1.30994201 +/- 0.13121135 (10.02%) (init = 1.309932)
        t2:  11.8240360 +/- 0.46316315 (3.92%) (init = 11.80991)
    [[Correlations]] (unreported correlations are < 0.500)
        C(a2, t2) =  0.987
        C(a2, t1) = -0.925
        C(t1, t2) = -0.881
        C(a1, t1) = -0.599
           95.45%    68.27%    _BEST_    68.27%    95.45%
     a1:  -0.27286  -0.14165   2.98622  +0.16353  +0.36343
     a2:  -0.30444  -0.13219  -4.33526  +0.10687  +0.19683
     t1:  -0.23391  -0.12494   1.30994  +0.14660  +0.32369
     t2:  -1.01943  -0.48820  11.82404  +0.46041  +0.90441





|


.. code-block:: default

    ##
    import warnings
    warnings.filterwarnings("ignore")
    ##
    # <examples/doc_confidence_advanced.py>
    import matplotlib.pyplot as plt
    import numpy as np

    import lmfit

    x = np.linspace(1, 10, 250)
    np.random.seed(0)
    y = 3.0*np.exp(-x/2) - 5.0*np.exp(-(x-0.1)/10.) + 0.1*np.random.randn(x.size)

    p = lmfit.Parameters()
    p.add_many(('a1', 4.), ('a2', 4.), ('t1', 3.), ('t2', 3.))


    def residual(p):
        return p['a1']*np.exp(-x/p['t1']) + p['a2']*np.exp(-(x-0.1)/p['t2']) - y


    # create Minimizer
    mini = lmfit.Minimizer(residual, p, nan_policy='propagate')

    # first solve with Nelder-Mead algorithm
    out1 = mini.minimize(method='Nelder')

    # then solve with Levenberg-Marquardt using the
    # Nelder-Mead solution as a starting point
    out2 = mini.minimize(method='leastsq', params=out1.params)

    lmfit.report_fit(out2.params, min_correl=0.5)

    ci, trace = lmfit.conf_interval(mini, out2, sigmas=[1, 2], trace=True)
    lmfit.printfuncs.report_ci(ci)

    # plot data and best fit
    plt.figure()
    plt.plot(x, y, 'b')
    plt.plot(x, residual(out2.params) + y, 'r-')

    # plot confidence intervals (a1 vs t2 and a2 vs t2)
    fig, axes = plt.subplots(1, 2, figsize=(12.8, 4.8))
    cx, cy, grid = lmfit.conf_interval2d(mini, out2, 'a1', 't2', 30, 30)
    ctp = axes[0].contourf(cx, cy, grid, np.linspace(0, 1, 11))
    fig.colorbar(ctp, ax=axes[0])
    axes[0].set_xlabel('a1')
    axes[0].set_ylabel('t2')

    cx, cy, grid = lmfit.conf_interval2d(mini, out2, 'a2', 't2', 30, 30)
    ctp = axes[1].contourf(cx, cy, grid, np.linspace(0, 1, 11))
    fig.colorbar(ctp, ax=axes[1])
    axes[1].set_xlabel('a2')
    axes[1].set_ylabel('t2')

    # plot dependence between two parameters
    fig, axes = plt.subplots(1, 2, figsize=(12.8, 4.8))
    cx1, cy1, prob = trace['a1']['a1'], trace['a1']['t2'], trace['a1']['prob']
    cx2, cy2, prob2 = trace['t2']['t2'], trace['t2']['a1'], trace['t2']['prob']

    axes[0].scatter(cx1, cy1, c=prob, s=30)
    axes[0].set_xlabel('a1')
    axes[0].set_ylabel('t2')

    axes[1].scatter(cx2, cy2, c=prob2, s=30)
    axes[1].set_xlabel('t2')
    axes[1].set_ylabel('a1')

    plt.show()
    # <end examples/doc_confidence_advanced.py>


.. rst-class:: sphx-glr-timing

   **Total running time of the script:** ( 0 minutes  9.712 seconds)


.. _sphx_glr_download_examples_documentation_confidence_advanced.py:


.. only :: html

 .. container:: sphx-glr-footer
    :class: sphx-glr-footer-example



  .. container:: sphx-glr-download

     :download:`Download Python source code: confidence_advanced.py <confidence_advanced.py>`



  .. container:: sphx-glr-download

     :download:`Download Jupyter notebook: confidence_advanced.ipynb <confidence_advanced.ipynb>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
