Create a conditional distributionΒΆ

In this example we are going to build the distribution of the random vector X conditioned by the random variable Theta

\underline{X}|\underline{\Theta}

with Theta obtained with the random variable Y through a function f

\underline{\Theta}=f(\underline{Y})

from __future__ import print_function
import openturns as ot
import openturns.viewer as viewer
from matplotlib import pylab as plt

create the Y distribution

YDist = ot.Uniform(-1.0, 1.0)

create Theta=f(y)

f = ot.SymbolicFunction(['y'], ['y', '1+y^2'])

create the X|Theta distribution

XgivenThetaDist = ot.Uniform()

create the distribution

XDist = ot.ConditionalDistribution(XgivenThetaDist, YDist, f)
XDist.setDescription(['X|Theta=f(y)'])
XDist

ConditionalDistribution(X with X|Theta~Uniform(Theta), Theta=f(Y), f=[y]->[y,1+y^2], Y~Uniform(a = -1, b = 1))



Get a sample

XDist.getSample(5)
X|Theta=f(y)
00.635176
10.4034392
20.3888339
30.9779865
40.4113054


draw PDF

graph = XDist.drawPDF()
view = viewer.View(graph)
plt.show()
plot conditional distribution

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

Gallery generated by Sphinx-Gallery