scipy.stats.Mixture.

iccdf#

Mixture.iccdf(p, /, *, method=None)[source]#

Inverse complementary cumulative distribution function.

The inverse complementary cumulative distribution function (“inverse CCDF”), denoted G1(p), is the argument x for which the complementary cumulative distribution function G(x) evaluates to p.

G1(p)=xs.t.G(x)=p

iccdf accepts p for p[0,1].

Parameters:
parray_like

The argument of the inverse CCDF.

method{None, ‘formula’, ‘complement’, ‘inversion’}

The strategy used to evaluate the inverse CCDF. By default (None), the infrastructure chooses between the following options, listed in order of precedence.

  • 'formula': use a formula for the inverse CCDF itself

  • 'complement': evaluate the inverse CDF at the complement of p

  • 'inversion': solve numerically for the argument at which the CCDF is equal to p

Not all method options are available for all distributions. If the selected method is not available, a NotImplementedError will be raised.

Returns:
outarray

The inverse CCDF evaluated at the provided argument.

See also

icdf
ilogccdf

Notes

Suppose a continuous probability distribution has support [l,r]. The inverse CCDF returns its minimum value of l at p=1 and its maximum value of r at p=0. Because the CCDF has range [0,1], the inverse CCDF is only defined on the domain [0,1]; for p<0 and p>1, iccdf returns nan.

Examples

Instantiate a distribution with the desired parameters:

>>> import numpy as np
>>> from scipy import stats
>>> X = stats.Uniform(a=-0.5, b=0.5)

Evaluate the inverse CCDF at the desired argument:

>>> X.iccdf(0.25)
0.25
>>> np.allclose(X.iccdf(0.25), X.icdf(1-0.25))
True

This function returns NaN when the argument is outside the domain.

>>> X.iccdf([-0.1, 0, 1, 1.1])
array([ nan,  0.5, -0.5,  nan])