Note
Go to the end to download the full example code.
Create a compound distributionΒΆ
In this example we are going to build the distribution of the random vector
defined by the conditional distribution of:
where is the output of the random variable
through the link
function
:
This example creates a CompoundDistribution which offers all the methods
attached to the distributions.
We consider the case where is of dimension 1 and follows a uniform distribution defined
by:
Variable |
Distribution |
Parameter |
|---|---|---|
|
||
|
import openturns as ot
import openturns.viewer as otv
Create the distribution.
YDist = ot.Uniform(-1.0, 1.0)
Create the link function .
f = ot.SymbolicFunction(["y"], ["y", "1+y^2"])
Create the conditional distribution of : as the parameters have no
importance, we use the default distribution.
XgivenThetaDist = ot.Uniform()
In this example, the range of depends on its parameters which are random. Thus, the model is not regular.
We advice to change the discretization method that performs the integration.
By default, this method is the quadrature method GaussProduct. We prefer to use the QMC.
We use the
ResourceMap.
ot.ResourceMap.SetAsString('CompoundDistribution-ContinuousDiscretizationMethod', 'QMC')
Create the compound distribution of .
XDist = ot.CompoundDistribution(XgivenThetaDist, YDist, f)
XDist.setDescription([r"$X|\mathbf{\boldsymbol{\Theta}} = f(Y)$"])
XDist
Get a sample:
XDist.getSample(5)
Draw the PDF.
graph = XDist.drawPDF()
view = otv.View(graph)
view.ShowAll()
OpenTURNS