ray, optional Optional output array for the function values Returns ------- scalar or ndarray Value of the regularized incomplete beta function See Also -------- beta : beta function betaincinv : inverse of the regularized incomplete beta function betaincc : complement of the regularized incomplete beta function scipy.stats.beta : beta distribution Notes ----- The term *regularized* in the name of this function refers to the scaling of the function by the gamma function terms shown in the formula. When not qualified as *regularized*, the name *incomplete beta function* often refers to just the integral expression, without the gamma terms. One can use the function `beta` from `scipy.special` to get this "nonregularized" incomplete beta function by multiplying the result of ``betainc(a, b, x)`` by ``beta(a, b)``. This function wraps the ``ibeta`` routine from the Boost Math C++ library [2]_. References ---------- .. [1] NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/8.17 .. [2] The Boost Developers. "Boost C++ Libraries". https://www.boost.org/. Examples -------- Let :math:`B(a, b)` be the `beta` function. >>> import scipy.special as sc The coefficient in terms of `gamma` is equal to :math:`1/B(a, b)`. Also, when :math:`x=1` the integral is equal to :math:`B(a, b)`. Therefore, :math:`I_{x=1}(a, b) = 1` for any :math:`a, b`. >>> sc.betainc(0.2, 3.5, 1.0) 1.0 It satisfies :math:`I_x(a, b) = x^a F(a, 1-b, a+1, x)/ (aB(a, b))`, where :math:`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 :math:`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 Úbetaincca™