.. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_data_analysis_distribution_fitting_plot_estimate_normal.py: Fit a parametric distribution ============================= In this example we estimate the parameters of a distribution from a given sample. Once we are settled on a good candidate, we use the corresponding factory to fit the distribution. Each distribution factory has one or several estimators available. They are all derived from either the Maximum Likelihood method or from the method of moments (see :ref:`parametric_estimation`). .. code-block:: default from __future__ import print_function import openturns as ot import openturns.viewer as viewer from matplotlib import pylab as plt ot.Log.Show(ot.Log.NONE) The Normal distribution ----------------------- The parameters are estimated by the method of moments. We consider a sample, here created from a standard normal distribution : .. code-block:: default sample = ot.Normal().getSample(1000) We can estimate a normal distribution with `ǸormalFactory` : .. code-block:: default distribution = ot.NormalFactory().build(sample) We take a look at the estimated parameters with the `getParameter` method : .. code-block:: default print(distribution.getParameter()) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [0.00320214,1.02733] We draw the fitted distribution .. code-block:: default graph = distribution.drawPDF() graph.setTitle("Fitted Normal distribution") view = viewer.View(graph) .. image:: /auto_data_analysis/distribution_fitting/images/sphx_glr_plot_estimate_normal_001.png :alt: Fitted Normal distribution :class: sphx-glr-single-img The Student distribution ------------------------ The parameters of the Student law are estimated by a mixed method of moments and reduces MLE. We generate a sample from a Student distribution with parameters :math:`\nu=5.0`, :math:`\mu = -0.5` and a scale parameter :math:`\sigma=2.0`. .. code-block:: default sample = ot.Student(5.0, -0.5, 2.0).getSample(1000) We use the factory to build an estimated distribution : .. code-block:: default distribution = ot.StudentFactory().build(sample) We can obtain the estimated parameters with the `getParameter` method : .. code-block:: default print(distribution.getParameter()) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [3.65576,-0.515215,1.84614] Draw fitted distribution .. code-block:: default graph = distribution.drawPDF() graph.setTitle("Fitted Student distribution") view = viewer.View(graph) .. image:: /auto_data_analysis/distribution_fitting/images/sphx_glr_plot_estimate_normal_002.png :alt: Fitted Student distribution :class: sphx-glr-single-img The Pareto distribution ----------------------- By default the parameters of the Pareto distribution are estimated by least squares. We use a sample from a Pareto distribution with a scale parameter :math:`\beta=1.0`, a shape parameter :math:`\alpha > 1.0` and a location parameter :math:`\gamma = 0.0`. .. code-block:: default sample = ot.Pareto(1.0, 1.0, 0.0).getSample(1000) Draw fitted distribution .. code-block:: default distribution = ot.ParetoFactory().build(sample) print(distribution.getParameter()) graph = distribution.drawPDF() graph.setTitle("Fitted Pareto distribution") view = viewer.View(graph) plt.show() .. image:: /auto_data_analysis/distribution_fitting/images/sphx_glr_plot_estimate_normal_003.png :alt: Fitted Pareto distribution :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [0.787856,0.944192,0.246677] .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.328 seconds) .. _sphx_glr_download_auto_data_analysis_distribution_fitting_plot_estimate_normal.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_estimate_normal.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_estimate_normal.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_