.. 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_probabilistic_modeling_distributions_plot_mixture_distribution.py:
Create a mixture of PDFs
========================
In this example we are going to build a distribution whose PDF is defined by a linear combination of probability density functions:
.. math::
f(x) = \sum_{i=1}^N \alpha_i p_i(x), \quad \alpha_i \geq 0, \quad \sum_i \alpha_i = 1
The weigths are automatically normalized.
It is also possible to create a mixture of copulas.
.. 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)
create a collection of distribution and the associated weights
.. code-block:: default
distributions = [ot.Triangular(1.0, 2.0, 4.0), ot.Normal(-1.0, 1.0), ot.Uniform(5.0, 6.0)]
weights = [0.4, 1.0, 0.2]
create the mixture
.. code-block:: default
distribution = ot.Mixture(distributions, weights)
print(distribution)
.. rst-class:: sphx-glr-script-out
Out:
.. code-block:: none
Mixture((w = 0.25, d = Triangular(a = 1, m = 2, b = 4)), (w = 0.625, d = Normal(mu = -1, sigma = 1)), (w = 0.125, d = Uniform(a = 5, b = 6)))
draw PDF
.. code-block:: default
graph = distribution.drawPDF()
view = viewer.View(graph)
.. image:: /auto_probabilistic_modeling/distributions/images/sphx_glr_plot_mixture_distribution_001.png
:alt: plot mixture distribution
:class: sphx-glr-single-img
define a list of copulas and the associated weights
.. code-block:: default
copulas = [ot.GumbelCopula(4.5), ot.ClaytonCopula(2.3)]
weights = [0.2, 0.8]
create a mixture of copulas
.. code-block:: default
distribution = ot.Mixture(copulas, weights)
print(distribution)
.. rst-class:: sphx-glr-script-out
Out:
.. code-block:: none
Mixture((w = 0.2, d = GumbelCopula(theta = 4.5)), (w = 0.8, d = ClaytonCopula(theta = 2.3)))
draw PDF
.. code-block:: default
graph = distribution.drawPDF()
view = viewer.View(graph)
plt.show()
.. image:: /auto_probabilistic_modeling/distributions/images/sphx_glr_plot_mixture_distribution_002.png
:alt: [X0,X1] iso-PDF
:class: sphx-glr-single-img
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 0.201 seconds)
.. _sphx_glr_download_auto_probabilistic_modeling_distributions_plot_mixture_distribution.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_mixture_distribution.py `
.. container:: sphx-glr-download sphx-glr-download-jupyter
:download:`Download Jupyter notebook: plot_mixture_distribution.ipynb `
.. only:: html
.. rst-class:: sphx-glr-signature
`Gallery generated by Sphinx-Gallery `_