WeightedExperiment

class WeightedExperiment(*args)

Weighted experiment.

Available constructor:

WeightedExperiment(distribution=ot.Uniform(), size=100)

Parameters:
distributionDistribution

Distribution \mu used to generate the set of input data.

sizepositive int

Number \sampleSize of points that will be generated in the experiment.

Methods

generate()

Generate points according to the type of the experiment.

generateWithWeights()

Generate points and their associated weight according to the type of the experiment.

getClassName()

Accessor to the object's name.

getDistribution()

Accessor to the distribution.

getId()

Accessor to the object's id.

getImplementation()

Accessor to the underlying implementation.

getName()

Accessor to the object's name.

getSize()

Accessor to the size of the generated sample.

hasUniformWeights()

Ask whether the experiment has uniform weights.

isRandom()

Accessor to the randomness of quadrature.

setDistribution(distribution)

Accessor to the distribution.

setName(name)

Accessor to the object's name.

setSize(size)

Accessor to the size of the generated sample.

Notes

This class is used to generate nodes and their associated weights to approximate the weighted integral of a physical model with respect to a distribution (see [sullivan2015] chapter 9 page 165).

Let \model : \physicalInputSpace \rightarrow \physicalOutputSpace be a function where \physicalInputSpace \subseteq \Rset^{\inputDim} is the input space and \physicalOutputSpace \subseteq \Rset^{\outputDim} is the output space. Let \inputRV be a random vector with dimension \outputDim. We are interested in the expected value of the physical model:

\Expect{ \model(\inputRV)}
= \int_{\physicalInputSpace} \model(\inputReal) 
d\inputMeasure(\inputReal)

where \inputMeasure is the distribution of the input random vector. If the input has a probability density function, then:

\Expect{ \model(\inputRV)}
= \int_{\physicalInputSpace} \model(\inputReal) 
\inputProbabilityDensityFunction(\inputReal) d\inputReal

where \inputProbabilityDensityFunction is the probability density function of the input random vector.

The class computes the weights \{w_i \in \Rset\}_{i = 1, ..., \sampleSize} and the nodes \{\inputReal_i \in \Rset^{\inputDim}\}_{i = 1, ..., \sampleSize} such that

\Expect{ \model(\inputRV)}
\approx \sum_{i = 1}^\sampleSize w_i \model\left(\inputReal_i\right)

By default, all the weights are equal to w_i = \frac{1}{\sampleSize}. Some quadrature rules e.g. the tensorised Gauss product rule guarantee that all nodes are non negative, but not all rules have that property.

A WeightedExperiment object can be created only through its derived classes which are in three groups:

  1. The random patterns, where the set of input data is generated from the joint distribution of the input random vector, e.g. Monte Carlo. In this case, the value returned by isRandom() is True.

  2. The low discrepancy sequences e.g. SobolSequence. In this case, the value returned by isRandom() is False.

  3. The deterministic patterns or quadrature rules e.g. Gauss product. In this case, the value returned by isRandom() is False.

In order to estimate the expectation of the model using the nodes and weights, we suggest to use the ExperimentIntegration class.

__init__(*args)
generate()

Generate points according to the type of the experiment.

Returns:
sampleSample

Points (\inputReal_i)_{i = 1, ..., \sampleSize} of the design of experiments. The sampling method is defined by the type of the weighted experiment.

Examples

>>> import openturns as ot
>>> ot.RandomGenerator.SetSeed(0)
>>> myExperiment = ot.MonteCarloExperiment(ot.Normal(2), 5)
>>> sample = myExperiment.generate()
>>> print(sample)
    [ X0        X1        ]
0 : [  0.608202 -1.26617  ]
1 : [ -0.438266  1.20548  ]
2 : [ -2.18139   0.350042 ]
3 : [ -0.355007  1.43725  ]
4 : [  0.810668  0.793156 ]
generateWithWeights()

Generate points and their associated weight according to the type of the experiment.

Returns:
sampleSample

The points of the design of experiments. The sampling method is defined by the nature of the experiment.

weightsPoint of size \sampleSize

Weights (w_i)_{i = 1, ..., \sampleSize} associated with the points. By default, all the weights are equal to \frac{1}{\sampleSize}.

Examples

>>> import openturns as ot
>>> ot.RandomGenerator.SetSeed(0)
>>> myExperiment = ot.MonteCarloExperiment(ot.Normal(2), 5)
>>> sample, weights = myExperiment.generateWithWeights()
>>> print(sample)
    [ X0        X1        ]
0 : [  0.608202 -1.26617  ]
1 : [ -0.438266  1.20548  ]
2 : [ -2.18139   0.350042 ]
3 : [ -0.355007  1.43725  ]
4 : [  0.810668  0.793156 ]
>>> print(weights)
[0.2,0.2,0.2,0.2,0.2]
getClassName()

Accessor to the object’s name.

Returns:
class_namestr

The object class name (object.__class__.__name__).

getDistribution()

Accessor to the distribution.

Returns:
distributionDistribution

Distribution of the input random vector.

getId()

Accessor to the object’s id.

Returns:
idint

Internal unique identifier.

getImplementation()

Accessor to the underlying implementation.

Returns:
implImplementation

A copy of the underlying implementation object.

getName()

Accessor to the object’s name.

Returns:
namestr

The name of the object.

getSize()

Accessor to the size of the generated sample.

Returns:
sizepositive int

Number \sampleSize of points constituting the design of experiments.

hasUniformWeights()

Ask whether the experiment has uniform weights.

Returns:
hasUniformWeightsbool

Whether the experiment has uniform weights.

isRandom()

Accessor to the randomness of quadrature.

Parameters:
isRandombool

Is true if the design of experiments is random. Otherwise, the design of experiment is assumed to be deterministic.

setDistribution(distribution)

Accessor to the distribution.

Parameters:
distributionDistribution

Distribution of the input random vector.

setName(name)

Accessor to the object’s name.

Parameters:
namestr

The name of the object.

setSize(size)

Accessor to the size of the generated sample.

Parameters:
sizepositive int

Number \sampleSize of points constituting the design of experiments.