scipy.special.bdtri#
- scipy.special.bdtri(k, n, y, out=None) = <ufunc 'bdtri'>#
Inverse function to
bdtrwith respect to p.Finds the event probability p such that the sum of the terms 0 through k of the binomial probability density is equal to the given cumulative probability y.
- Parameters:
- karray_like
Number of successes (float), rounded down to the nearest integer.
- narray_like
Number of events (float)
- yarray_like
Cumulative probability (probability of k or fewer successes in n events).
- outndarray, optional
Optional output array for the function values
- Returns:
- pscalar or ndarray
The event probability such that bdtr(lfloor k rfloor, n, p) = y.
See also
Notes
The computation is carried out using the inverse beta integral function and the relation,:
1 - p = betaincinv(n - k, k + 1, y).
Wrapper for the Cephes [1] routine
bdtri.Array API Standard Support
bdtrihas experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variableSCIPY_ARRAY_API=1and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.Library
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
✅
PyTorch
✅
⛔
JAX
✅
⛔
Dask
✅
n/a
See Support for the array API standard for more information.
References
[1]Cephes Mathematical Functions Library, https://netlib.org/cephes/
Examples
An “unfair” coin is to be created that has probability p of showing heads when flipped. What is the value of p that will ensure that the probability of getting heads at most once in 4 tosses is 0.5?
Let X be the number of heads. We want to find p such that the probability that X <= k is y, where k is 1, the total number of flips n is 4, and the cumulative probability y is 0.5. This is what
bdtri(k, n, y)computes:>>> from scipy.special import bdtri, bdtr
>>> p = bdtri(1, 4, 0.5) >>> p np.float64(0.3857275681323896)
Verify the result:
>>> bdtr(1, 4, p) # Should be 0.5. np.float64(0.5)