scipy.special.nbdtrin#

scipy.special.nbdtrin(k, y, p, out=None) = <ufunc 'nbdtrin'>#

Inverse of nbdtr vs n.

Returns the inverse with respect to the parameter n of y = nbdtr(k, n, p), the negative binomial cumulative distribution function.

Parameters:
karray_like

The maximum number of allowed failures (nonnegative int).

yarray_like

The probability of k or fewer failures before n successes (float).

parray_like

Probability of success in a single event (float).

outndarray, optional

Optional output array for the function results

Returns:
nscalar or ndarray

The number of successes n such that nbdtr(k, n, p) = y.

See also

nbdtr

Cumulative distribution function of the negative binomial.

nbdtri

Inverse with respect to p of nbdtr(k, n, p).

nbdtrik

Inverse with respect to k of nbdtr(k, n, p).

Notes

Wrapper for the CDFLIB [1] Fortran routine cdfnbn.

Formula 26.5.26 of [2],

\[\sum_{j=k + 1}^\infty {{n + j - 1} \choose{j}} p^n (1 - p)^j = I_{1 - p}(k + 1, n),\]

is used to reduce calculation of the cumulative distribution function to that of a regularized incomplete beta \(I\).

Computation of n involves a search for a value that produces the desired value of y. The search relies on the monotonicity of y with n.

References

[1]

Barry Brown, James Lovato, and Kathy Russell, CDFLIB: Library of Fortran Routines for Cumulative Distribution Functions, Inverses, and Other Parameters.

[2]

Milton Abramowitz and Irene A. Stegun, eds. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. New York: Dover, 1972.

Examples

Compute the negative binomial cumulative distribution function for an exemplary parameter set.

>>> from scipy.special import nbdtr, nbdtrin
>>> k, n, p = 5, 2, 0.5
>>> cdf_value = nbdtr(k, n, p)
>>> cdf_value
0.9375

Verify that nbdtrin recovers the original value for n up to floating point accuracy.

>>> nbdtrin(k, cdf_value, p)
1.999999999998137