6.9 Beta and incomplete beta function

Beta function

\[ B(a, b) = \frac{\Gamma(a) \Gamma(b)}{\Gamma(a+b)} \]

Beta function can be calculated using the definition, but seldom used.

BetaFx = function(z, w) exp(lgamma(z) + lgamma(w) - lgamma(z + w))

Incomplete beta function

\[ I(a, b, x) = \frac{1}{B(a,b)} \int_0^x t^{a-1} (1-t)^{b-1} dt \; (a,b>0) \]

betai
## function (a, b, x) 
## {
##     if (a <= 0 | b <= 0) {
##         warning("Bad a or b in routine betai")
##         return(NULL)
##     }
##     if (x < 0 | x > 1) {
##         warning("Bad x in routine betai")
##         return(NULL)
##     }
##     if (x == 0 | x == 1) 
##         return(x)
##     SWITCH = 3000
##     if (a > SWITCH & b > SWITCH) 
##         return(betaiapprox(a, b, x))
##     bt = exp(gammln(a + b) - gammln(a) - gammln(b) + a * log(x) + 
##         b * log(1 - x))
##     if (x < (a + 1)/(a + b + 2)) 
##         return(bt * betacf(a, b, x)/a)
##     else return(1 - bt * betacf(b, a, 1 - x)/b)
## }
## <bytecode: 0x000001e2ac5c26f0>
## <environment: namespace:math>