| cdfgam {lmomco} | R Documentation |
Cumulative Distribution Function of the Gamma Distribution
Description
This function computes the cumulative probability or nonexceedance probability of the Gamma distribution given parameters (\alpha and \beta) computed by pargam. The cumulative distribution function has no explicit form but is expressed as an integral:
F(x) = \frac{\beta^{-\alpha}}{\Gamma(\alpha)}\int_0^x t^{\alpha - 1}
\exp(-t/\beta)\; \mbox{d}t \mbox{,}
where F(x) is the nonexceedance probability for the quantile x, \alpha is a shape parameter, and \beta is a scale parameter.
Alternatively, a three-parameter version is available following the parameterization of the Generalized Gamma distribution used in the gamlss.dist package and is
F(x) =\frac{\theta^\theta\, |\nu|}{\Gamma(\theta)}\int_0^x \frac{z^\theta}{x}\,\mathrm{exp}(-z\theta)\; \mbox{d}x \mbox{,}
where z =(x/\mu)^\nu, \theta = 1/(\sigma^2\,|\nu|^2) for x > 0, location parameter \mu > 0, scale parameter \sigma > 0, and shape parameter -\infty < \nu < \infty. The three parameter version is automatically triggered if the length of the para element is three and not two.
Usage
cdfgam(x, para)
Arguments
x |
A real value vector. |
para |
Value
Nonexceedance probability (F) for x.
Author(s)
W.H. Asquith
References
Hosking, J.R.M., 1990, L-moments—Analysis and estimation of distributions using linear combinations of order statistics: Journal of the Royal Statistical Society, Series B, v. 52, pp. 105–124.
Hosking, J.R.M., and Wallis, J.R., 1997, Regional frequency analysis—An approach based on L-moments: Cambridge University Press.
See Also
pdfgam, quagam, lmomgam, pargam
Examples
lmr <- lmoms(c(123,34,4,654,37,78))
cdfgam(50,pargam(lmr))
# A manual demonstration of a gamma parent
G <- vec2par(c(0.6333,1.579),type='gam') # the parent
F1 <- 0.25 # nonexceedance probability
x <- quagam(F1,G) # the lower quartile (F=0.25)
a <- 0.6333 # gamma parameter
b <- 1.579 # gamma parameter
# compute the integral
xf <- function(t,A,B) { t^(A-1)*exp(-t/B) }
Q <- integrate(xf,0,x,A=a,B=b)
# finish the math
F2 <- Q$val*b^(-a)/gamma(a)
# check the result
if(abs(F1-F2) < 1e-8) print("yes")
## Not run:
# 3-p Generalized Gamma Distribution and gamlss.dist package parameterization
gg <- vec2par(c(7.4, 0.2, 14), type="gam"); X <- seq(0.04,9, by=.01)
GGa <- gamlss.dist::pGG(X, mu=7.4, sigma=0.2, nu=14)
GGb <- cdfgam(X, gg) # lets compare the two cumulative probabilities
plot( X, GGa, type="l", xlab="X", ylab="PROBABILITY", col=3, lwd=6)
lines(X, GGb, col=2, lwd=2) #
## End(Not run)
## Not run:
# 3-p Generalized Gamma Distribution and gamlss.dist package parameterization
gg <- vec2par(c(4, 1.5, -.6), type="gam"); X <- seq(0,1000, by=1)
GGa <- 1-gamlss.dist::pGG(X, mu=4, sigma=1.5, nu=-.6) # Note 1-... (pGG bug?)
GGb <- cdfgam(X, gg) # lets compare the two cumulative probabilities
plot( X, GGa, type="l", xlab="X", ylab="PROBABILITY", col=3, lwd=6)
lines(X, GGb, col=2, lwd=2) #
## End(Not run)