betaint {actuar} | R Documentation |
The “Beta Integral”
Description
The “beta integral” which is just a multiple of the non regularized incomplete beta function. This function merely provides an R interface to the C level routine. It is not exported by the package.
Usage
betaint(x, a, b)
Arguments
x |
vector of quantiles. |
a , b |
parameters. See Details for admissible values. |
Details
Function betaint
computes the “beta integral”
B(a, b; x) = \Gamma(a + b) \int_0^x t^{a-1} (1-t)^{b-1} dt
for a > 0
, b \neq -1, -2, \ldots
and
0 < x < 1
.
(Here \Gamma(\alpha)
is the function implemented
by R's gamma()
and defined in its help.)
When b > 0
,
B(a, b; x) = \Gamma(a) \Gamma(b) I_x(a, b),
where I_x(a, b)
is pbeta(x, a, b)
. When b < 0
,
b \neq -1, -2, \ldots
, and a > 1 +
[-b]
,
%
\begin{array}{rcl}
B(a, b; x)
&=& \displaystyle
-\Gamma(a + b) \left[ \frac{x^{a-1} (1-x)^b}{b}
+ \frac{(a-1) x^{a-2} (1-x)^{b+1}}{b (b+1)} \right. \\
& & \displaystyle\left.
+ \cdots + \frac{(a-1) \cdots (a-r) x^{a-r-1}
(1-x)^{b+r}}{b (b+1) \cdots (b+r)} \right] \\
& & \displaystyle
+ \frac{(a-1) \cdots (a-r-1)}{b (b+1) \cdots (b+r)}
\Gamma(a-r-1) \\
& & \times \Gamma(b+r+1) I_x(a-r-1, b+r+1),
\end{array}
where r = [-b]
.
This function is used (at the C level) to compute the
limited expected value for distributions of the transformed beta
family; see, for example, levtrbeta
.
Value
The value of the integral.
Invalid arguments will result in return value NaN
, with a warning.
Note
The need for this function in the package is well explained in the introduction of Appendix A of Klugman et al. (2012). See also chapter 6 and 15 of Abramowitz and Stegun (1972) for definitions and relations to the hypergeometric series.
Author(s)
Vincent Goulet vincent.goulet@act.ulaval.ca
References
Abramowitz, M. and Stegun, I. A. (1972), Handbook of Mathematical Functions, Dover.
Klugman, S. A., Panjer, H. H. and Willmot, G. E. (2012), Loss Models, From Data to Decisions, Fourth Edition, Wiley.
Examples
x <- 0.3
a <- 7
## case with b > 0
b <- 2
actuar:::betaint(x, a, b)
gamma(a) * gamma(b) * pbeta(x, a, b) # same
## case with b < 0
b <- -2.2
r <- floor(-b) # r = 2
actuar:::betaint(x, a, b)
## "manual" calculation
s <- (x^(a-1) * (1-x)^b)/b +
((a-1) * x^(a-2) * (1-x)^(b+1))/(b * (b+1)) +
((a-1) * (a-2) * x^(a-3) * (1-x)^(b+2))/(b * (b+1) * (b+2))
-gamma(a+b) * s +
(a-1)*(a-2)*(a-3) * gamma(a-r-1)/(b*(b+1)*(b+2)) *
gamma(b+r+1)*pbeta(x, a-r-1, b+r+1)