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)