jax.scipy.special.betainc

jax.scipy.special.betainc(a, b, x)[source]

Incomplete beta function.

LAX-backend implementation of betainc(). Original docstring below.

betainc(x1, x2, x3, /, out=None, *, where=True, casting=’same_kind’, order=’K’, dtype=None, subok=True[, signature, extobj])

betainc(a, b, x, out=None)

Computes the incomplete beta function, defined as 1:

\[I_x(a, b) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \int_0^x t^{a-1}(1-t)^{b-1}dt,\]

for \(0 \leq x \leq 1\).

Parameters
  • b (a,) – Positive, real-valued parameters

  • x (array-like) – Real-valued such that \(0 \leq x \leq 1\), the upper limit of integration

Returns

Value of the incomplete beta function

Return type

array-like

See also

beta()

beta function

betaincinv()

inverse of the incomplete beta function

Notes

The incomplete beta function is also sometimes defined without the gamma terms, in which case the above definition is the so-called regularized incomplete beta function. Under this definition, you can get the incomplete beta function by multiplying the result of the SciPy function by beta.

References

1

NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/8.17

Examples

Let \(B(a, b)\) be the beta function.

>>> import scipy.special as sc

The coefficient in terms of gamma is equal to \(1/B(a, b)\). Also, when \(x=1\) the integral is equal to \(B(a, b)\). Therefore, \(I_{x=1}(a, b) = 1\) for any \(a, b\).

>>> sc.betainc(0.2, 3.5, 1.0)
1.0

It satisfies \(I_x(a, b) = x^a F(a, 1-b, a+1, x)/ (aB(a, b))\), where \(F\) is the hypergeometric function hyp2f1:

>>> a, b, x = 1.4, 3.1, 0.5
>>> x**a * sc.hyp2f1(a, 1 - b, a + 1, x)/(a * sc.beta(a, b))
0.8148904036225295
>>> sc.betainc(a, b, x)
0.8148904036225296

This functions satisfies the relationship \(I_x(a, b) = 1 - I_{1-x}(b, a)\):

>>> sc.betainc(2.2, 3.1, 0.4)
0.49339638807619446
>>> 1 - sc.betainc(3.1, 2.2, 1 - 0.4)
0.49339638807619446