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

Accessor to the confidence interval of the indices.

Parameters: confidenceLevel : 0 < float < 1 The wanted confidence level to compute the interval. ci : list 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(confidenceLevel=0.95, label=None, hellinger=False, name=None)

Draw all indices

Parameters: confidenceLevel : 0 < float < 1 or None The wanted confidence level to compute the interval. If set to ‘None’ only the indices are plotted. label : list of string The labels of each parameters. hellinger : bool If True, the indices are plotted with respect to the hellinger distance between the original PDF and the perturbed PDF. Matplotlib figure object. Matplotlib axes object.
drawMarginal1DPDF(marginal, idelta, showOriginal=True, label=None, xMin=None, xMax=None, pointNumber=None, name=None)

Draw the probability density function of a margin.

Parameters: marginal : int The index of the margin of interest. idelta : int The index in the delta array. showOriginal : bool Display on the same figure the original pdf or not. x_min : float The starting value that is used for meshing the x-axis. Defaults uses the quantile associated to the probability level 0.05. x_max : float, $$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_points : int The number of points that is used for meshing the x-axis. Defaults uses DistributionImplementation-DefaultPointNumber from the openturns.ResourceMap. Matplotlib figure object. Matplotlib axes object.
getDeltaSample()

Accessor to applied delta values.

getGaussKronrod()

Accessor to the Gauss Kronrod algorithm used to compute integrals

getIndices()

Accessor to the Pertubation Law Indices.

getOriginalDelta(marginal)

Accessor to the original delta value

Parameters: marginal : int The indice of the perturbed marginal.
getPerturbedProbabilityEstimate()

Accessor to the perturbed probability of failure

Returns: pfdelta : float The probability of failure computed with the perturbed density function.
run()

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

setGaussKronrod(algo)

Accessor to the Gauss Kronrod algorithm used to compute integrals

Parameters: The algorithm