SaltelliSensitivityAlgorithm

(Source code, png, hires.png, pdf)

../../_images/SaltelliSensitivityAlgorithm.png
class SaltelliSensitivityAlgorithm(*args)

Sensitivity analysis using Saltelli method.

Available constructors:

SaltelliSensitivityAlgorithm(inputDesign, outputDesign, N, computeSecondOrder)

SaltelliSensitivityAlgorithm(distribution, N, model, computeSecondOrder)

SaltelliSensitivityAlgorithm(experiment, model, computeSecondOrder)

Parameters:

inputDesign : Sample

Design for the evaluation of sensitivity indices, obtained thanks to the SobolIndicesAlgorithmImplementation.Generate method

outputDesign : Sample

Design for the evaluation of sensitivity indices, obtained as the evaluation of a Function (model) on the previous inputDesign

distribution : Distribution

Input probabilistic model. Should have independent copula

experiment : WeightedExperiment

Experiment for the generation of two independent samples.

N : int

Size of samples to generate

computeSecondOrder : bool

If True, design that will be generated contains elements for the evaluation of second order indices.

Notes

This class is concerned with analyzing the influence the random vector \vect{X} = \left( X^1, \ldots, X^{n_X} \right) has on a random variable Y^k which is being studied for uncertainty, by using the [Saltelli2002] method for the evaluation of both first and total order indices.

These last ones are respectively given as follows:

\begin{array}{ccc}
\hat{V_i} & = & \frac{1}{n}\sum_{k=1}^{n} G(B_k)  G(E_k) - G_0^2 \\
\hat{V_{-i}} & = & \frac{1}{n}\sum_{k=1}^{n} G(A_k)  G(E_k) - G_0^2
\end{array}

Examples

>>> import openturns as ot
>>> ot.RandomGenerator.SetSeed(0)
>>> formula = ['sin(_pi*X1)+7*sin(_pi*X2)*sin(_pi*X2)+' + \
...    '0.1*((_pi*X3)*(_pi*X3)*(_pi*X3)*(_pi*X3))*sin(_pi*X1)']
>>> model = ot.SymbolicFunction(['X1', 'X2', 'X3'], formula)
>>> distribution = ot.ComposedDistribution([ot.Uniform(-1.0, 1.0)] * 3, \
...                                         ot.IndependentCopula(3))
>>> # Define designs to pre-compute
>>> size = 100
>>> inputDesign = ot.SobolIndicesExperiment(distribution, size, True).generate()
>>> outputDesign = model(inputDesign)
>>> # sensitivity analysis algorithm
>>> sensitivityAnalysis = ot.SaltelliSensitivityAlgorithm(inputDesign, outputDesign, size)
>>> print(sensitivityAnalysis.getFirstOrderIndices())
[0.182857,0.357745,-0.128457]

Methods

DrawImportanceFactors() Draw the importance factors.
draw(*args) Draw sensitivity indices.
getAggregatedFirstOrderIndices() Get the evaluation of merged first order Sobol indices.
getAggregatedTotalOrderIndices() Get the evaluation of merged total order Sobol indices.
getBootstrapConfidenceLevel() Get the confidence interval level for bootstrap sampling.
getBootstrapSize() Get the number of bootstrap sampling size.
getClassName() Accessor to the object’s name.
getFirstOrderIndices([marginalIndex]) Get first order Sobol indices.
getFirstOrderIndicesInterval() Get interval for the merged first order Sobol indices.
getId() Accessor to the object’s id.
getName() Accessor to the object’s name.
getSecondOrderIndices([marginalIndex]) Get second order Sobol indices.
getShadowedId() Accessor to the object’s shadowed id.
getTotalOrderIndices([marginalIndex]) Get total order Sobol indices.
getTotalOrderIndicesInterval() Get interval for the merged total order Sobol indices.
getVisibility() Accessor to the object’s visibility state.
hasName() Test if the object is named.
hasVisibleName() Test if the object has a distinguishable name.
setBootstrapConfidenceLevel(confidenceLevel) Set the confidence interval level for bootstrap sampling.
setBootstrapSize(bootstrapSize) Set the number of bootstrap sampling size.
setName(name) Accessor to the object’s name.
setShadowedId(id) Accessor to the object’s shadowed id.
setVisibility(visible) Accessor to the object’s visibility state.
__init__(*args)

x.__init__(…) initializes x; see help(type(x)) for signature

DrawImportanceFactors()

Draw the importance factors.

Available usages:
 

DrawImportanceFactors(importanceFactors, title=’Importance Factors’)

DrawImportanceFactors(values, names, title=’Importance Factors’)

Parameters:

importanceFactors : PointWithDescription

Sequence containing the importance factors with a description for each component. The descriptions are used to build labels for the created Pie. If they are not mentioned, default labels will be used.

values : sequence of float

Importance factors.

names : sequence of str

Variables’ names used to build labels for the created Pie.

title : str

Title of the graph.

Returns:

Graph : Graph

A graph containing a Pie of the importance factors of the variables.

draw(*args)

Draw sensitivity indices.

Usage:

draw()

draw(marginalIndex)

With the first usage, draw the aggregated first and total order indices. With the second usage, draw the first and total order indices of a specific marginal in case of vectorial output

Parameters:

marginalIndex: int

marginal of interest (case of second usage)

Returns:

Graph : Graph

A graph containing the aggregated first and total order indices.

Notes

If number of bootstrap sampling is not 0, and confidence level associated > 0, the graph includes confidence interval plots in the first usage.

getAggregatedFirstOrderIndices()

Get the evaluation of merged first order Sobol indices.

Returns:

indices : Point

Sequence containing merged first order Sobol indices.

getAggregatedTotalOrderIndices()

Get the evaluation of merged total order Sobol indices.

Returns:

indices : Point

Sequence containing merged total order Sobol indices.

getBootstrapConfidenceLevel()

Get the confidence interval level for bootstrap sampling.

Returns:

confidenceLevel : float

Confidence level for boostrap sampling

getBootstrapSize()

Get the number of bootstrap sampling size.

Returns:

bootstrapSize : int

Number of bootsrap sampling

getClassName()

Accessor to the object’s name.

Returns:

class_name : str

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

getFirstOrderIndices(marginalIndex=0)

Get first order Sobol indices.

Parameters:

i : int, optional

Index of the marginal of the function, equals to 0 by default.

Returns:

indices : Point

Sequence containing first order Sobol indices.

getFirstOrderIndicesInterval()

Get interval for the merged first order Sobol indices.

Returns:

interval : Interval

Interval for first order Sobol indices for each component.

getId()

Accessor to the object’s id.

Returns:

id : int

Internal unique identifier.

getName()

Accessor to the object’s name.

Returns:

name : str

The name of the object.

getSecondOrderIndices(marginalIndex=0)

Get second order Sobol indices.

Parameters:

i : int, optional

Index of the marginal of the function, equals to 0 by default.

Returns:

indices : SymmetricMatrix

Tensor containing second order Sobol indices.

getShadowedId()

Accessor to the object’s shadowed id.

Returns:

id : int

Internal unique identifier.

getTotalOrderIndices(marginalIndex=0)

Get total order Sobol indices.

Parameters:

i : int, optional

Index of the marginal of the function, equals to 0 by default.

Returns:

indices : Point

Sequence containing total order Sobol indices.

getTotalOrderIndicesInterval()

Get interval for the merged total order Sobol indices.

Returns:

interval : Interval

Interval for total order Sobol indices for each component.

getVisibility()

Accessor to the object’s visibility state.

Returns:

visible : bool

Visibility flag.

hasName()

Test if the object is named.

Returns:

hasName : bool

True if the name is not empty.

hasVisibleName()

Test if the object has a distinguishable name.

Returns:

hasVisibleName : bool

True if the name is not empty and not the default one.

setBootstrapConfidenceLevel(confidenceLevel)

Set the confidence interval level for bootstrap sampling.

Parameters:

confidenceLevel : float

Confidence level for boostrap sampling

setBootstrapSize(bootstrapSize)

Set the number of bootstrap sampling size.

Default value is 0.

Parameters:

bootstrapSize : int

Number of bootsrap sampling

setName(name)

Accessor to the object’s name.

Parameters:

name : str

The name of the object.

setShadowedId(id)

Accessor to the object’s shadowed id.

Parameters:

id : int

Internal unique identifier.

setVisibility(visible)

Accessor to the object’s visibility state.

Parameters:

visible : bool

Visibility flag.