# PLI¶

class PLI(*args)

PLI base class.

Notes

The Perturbation Law Indices are based upon the modification of the probability density function (pdf) of the random inputs, when the quantity of interest is a failure probability. An input is considered influential if the input pdf modification leads to a broad change in the failure probability. These sensitivity indices can be computed using the sole set of simulations that has already been used to estimate the failure probability, thus limiting the number of calls to the numerical model. In this implementation, the sample must come from a Monte Carlo simulation.

The input perturbation is defined to obtain the perturbed density function as the closest to the original one, in the sense of the Kullback-Leibler divergence. The implemented perturbation includes a mean shift and a variance shift, accessible through the derived class. The current implementation only allows to modifiy Normal and Uniform density functions.

In order to compare equivalently the indices when the input distributions are not the same, it is possible to plot the indices with respect to the Hellinger distance.

These indices have been developed by Paul Lemaitre:
• Paul Lemaître, Ekatarina Sergienko, Aurélie Arnaud, Nicolas Bousquet, Fabrice Gamboa, et al.. Density modification based reliability sensitivity analysis. 2012.

• Paul Lemaitre. Analyse de sensibilité en fiabilité des structures. Mécanique des structures [physics.class-ph]. Université de Bordeaux, 2014. Français.

Methods

 computeConfidenceInterval(self[, …]) Accessor to the confidence interval of the indices. drawIndices(self[, confidenceLevel, label, …]) Draw all indices drawMarginal1DPDF(self, marginal, idelta[, …]) Draw the probability density function of a margin. getDeltaSample(self) Accessor to applied delta values. Accessor to the Gauss Kronrod algorithm used to compute integrals getIndices(self) Accessor to the Pertubation Law Indices. getOriginalDelta(self, marginal) Accessor to the original delta value Accessor to the perturbed probability of failure run(self) Run the analysis: - get the failure sample - evaluate the probabilities with the perturbed distributions - define the estimator distributions setGaussKronrod(self, algo) Accessor to the Gauss Kronrod algorithm used to compute integrals
computeConfidenceInterval(self, confidenceLevel=0.95)

Accessor to the confidence interval of the indices.

Parameters
confidenceLevel0 < float < 1

The wanted confidence level to compute the interval.

Returns
cilist of 2d sequence of float

A list of arrays for each marginal containing the lower and upper bound of the confidence interval for each delta values.

drawIndices(self, confidenceLevel=0.95, label=None, hellinger=False, name=None)

Draw all indices

Parameters
confidenceLevel0 < float < 1 or None

The wanted confidence level to compute the interval. If set to ‘None’ only the indices are plotted.

labellist of string

The labels of each parameters.

hellingerbool

If True, the indices are plotted with respect to the hellinger distance between the original PDF and the perturbed PDF.

Returns
figmatplotlib.figure

Matplotlib figure object.

axmatplotlib.axes

Matplotlib axes object.

drawMarginal1DPDF(self, marginal, idelta, showOriginal=True, label=None, xMin=None, xMax=None, pointNumber=None, name=None)

Draw the probability density function of a margin.

Parameters
marginalint

The index of the margin of interest.

ideltaint

The index in the delta array.

showOriginalbool

Display on the same figure the original pdf or not.

x_minfloat

The starting value that is used for meshing the x-axis. Defaults uses the quantile associated to the probability level 0.05.

x_maxfloat, $$x_{max} > x_{min}$$

The ending value that is used for meshing the x-axis. Defaults uses the quantile associated to the probability level 0.95.

n_pointsint

The number of points that is used for meshing the x-axis. Defaults uses DistributionImplementation-DefaultPointNumber from the openturns.ResourceMap.

Returns
figmatplotlib.figure

Matplotlib figure object.

axmatplotlib.axes

Matplotlib axes object.

getDeltaSample(self)

Accessor to applied delta values.

Returns
deltaSample2d sequence of float

The delta values.

getGaussKronrod(self)

Accessor to the Gauss Kronrod algorithm used to compute integrals

getIndices(self)

Accessor to the Pertubation Law Indices.

Returns
pli2d sequence of float

The indices for all marginals and all given delta values.

getOriginalDelta(self, marginal)

Accessor to the original delta value

Parameters
marginalint

The indice of the perturbed marginal.

getPerturbedProbabilityEstimate(self)

Accessor to the perturbed probability of failure

Returns
pfdeltafloat

The probability of failure computed with the perturbed density function.

run(self)

Run the analysis: - get the failure sample - evaluate the probabilities with the perturbed distributions - define the estimator distributions

setGaussKronrod(self, algo)

Accessor to the Gauss Kronrod algorithm used to compute integrals

Parameters
algoopenturns.GaussKronrod

The algorithm