Source code for chaospy.descriptives.quantity_of_interest

"""Constructs distributions for the quantity of interests."""
from __future__ import division
import numpy
import chaospy


[docs]def QoI_Dist(poly, dist, sample=10000, **kws): """ Constructs distributions for the quantity of interests. The function constructs a kernel density estimator (KDE) for each polynomial (poly) by sampling it. With the KDEs, distributions (Dists) are constructed. The Dists can be used for e.g. plotting probability density functions (PDF), or to make a second uncertainty quantification simulation with that newly generated Dists. Args: poly (numpoly.ndpoly): Polynomial of interest. dist (Distribution): Defines the space where the samples for the KDE is taken from the poly. sample (int): Number of samples used in estimation to construct the KDE. Returns: (Distribution): The constructed quantity of interest (QoI) distributions, where ``qoi_dists.shape==poly.shape``. Examples: >>> dist = chaospy.Normal(0, 1) >>> x = chaospy.variable(1) >>> poly = chaospy.polynomial([x]) >>> qoi_dist = chaospy.QoI_Dist(poly, dist) >>> values = qoi_dist.pdf([-0.75, 0., 0.75]) >>> values.round(8) array([0.29143989, 0.39939823, 0.29531414]) """ poly = chaospy.aspolynomial(poly).ravel() samples = numpy.atleast_2d(dist.sample(sample, **kws)) qoi_dist = chaospy.GaussianKDE(poly(*samples)) return qoi_dist