cdfgam: Cumulative Distribution Function of the Gamma Distribution

Description Usage Arguments Value Author(s) References See Also Examples

Description

This function computes the cumulative probability or nonexceedance probability of the Gamma distribution given parameters (α and β) computed by pargam. The cumulative distribution function has no explicit form but is expressed as an integral:

F(x) = \frac{β^{-α}}{Γ(α)}\int_0^x t^{α - 1} \exp(-t/β)\; \mbox{d}t \mbox{,}

where F(x) is the nonexceedance probability for the quantile x, α is a shape parameter, and β 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{θ^θ\, |ν|}{Γ(θ)}\int_0^x \frac{z^θ}{x}\,\mathrm{exp}(-zθ)\; \mbox{d}x \mbox{,}

where z =(x/μ)^ν, θ = 1/(σ^2\,|ν|^2) for x > 0, location parameter μ > 0, scale parameter σ > 0, and shape parameter -∞ < ν < ∞. The three parameter version is automatically triggered if the length of the para element is three and not two.

Usage

1
cdfgam(x, para)

Arguments

x

A real value vector.

para

The parameters from pargam or vec2par.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  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)

Example output

[1] 0.5816328
[1] "yes"

lmomco documentation built on March 14, 2020, 5:06 p.m.