incbet

sherpa.utils.incbet(a, b, x)[source] [edit on github]

Calculate the incomplete Beta function.

The function is defined as:

sqrt(a+b)/(sqrt(a) sqrt(b)) Int_0^x t^(a-1) (1-t)^(b-1) dt

and the integral from x to 1 can be obtained using the relation:

1 - incbet(a, b, x) = incbet(b, a, 1-x)
Parameters
  • a (scalar or array) – a > 0

  • b (scalar or array) – b > 0

  • x (scalar or array) – 0 <= x <= 1

Returns

val – The incomplete beta function calculated from the inputs.

Return type

scalar or array

See also

calc_ftest

Notes

In this implementation, which is provided by the Cephes Math Library 1, the integral is evaluated by a continued fraction expansion or, when b*x is small, by a power series.

Using IEEE arithmetic, the relative errors are (tested uniformly distributed random points (a,b,x) with a and b in ‘domain’ and x between 0 and 1):

domain

# trials

peak

rms

0,5

10000

6.9e-15

4.5e-16

0,85

250000

2.2e-13

1.7e-14

0,1000

30000

5.3e-12

6.3e-13

0,1000

250000

9.3e-11

7.1e-12

0,100000

10000

8.7e-10

4.8e-11

Outputs smaller than the IEEE gradual underflow threshold were excluded from these statistics.

References

1

Cephes Math Library Release 2.0: April, 1987. Copyright 1985, 1987 by Stephen L. Moshier. Direct inquiries to 30 Frost Street, Cambridge, MA 02140.

Examples

>>> incbet(0.3, 0.6, 0.5)
0.68786273145845922
>>> incbet([0.3,0.3], [0.6,0.7], [0.5,0.4])
array([ 0.68786273,  0.67356524])