GammaDist {stats} | R Documentation

## The Gamma Distribution

### Description

Density, distribution function, quantile function and random generation for the Gamma distribution with parameters `shape` and `scale`.

### Usage

    dgamma(x, shape, rate = 1, scale = 1/rate, log = FALSE)
    pgamma(q, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,
           log.p = FALSE)
    qgamma(p, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,
           log.p = FALSE)
    rgamma(n, shape, rate = 1, scale = 1/rate)

### Arguments

`x, q` | vector of quantiles.
`p` | vector of probabilities.
`n` | number of observations. If `length(n) > 1`, the length is taken to be the number required.
`rate` | an alternative way to specify the scale.
`shape, scale` | shape and scale parameters. Must be strictly positive.
`log, log.p` | logical; if `TRUE`, probabilities/densities p are returned as log(p).
`lower.tail` | logical; if TRUE (default), probabilities are P[X <= x], otherwise, P[X > x].

### Details

If `scale` is omitted, it assumes the default value of `1`.

The Gamma distribution with parameters `shape` = a and `scale` = s has density

f(x)= 1/(s^a Gamma(a)) x^(a-1) e^-(x/s)

for x > 0, a > 0 and s > 0. (Here Gamma(a) is the function implemented by R's `gamma()` and defined in its help.)

The mean and variance are E(X) = a*s and Var(X) = a*s^2.

The cumulative hazard H(t) = - log(1 - F(t)) is `-pgamma(t, ..., lower = FALSE, log = TRUE)`.

### Value

`dgamma` gives the density, `pgamma` gives the distribution function, `qgamma` gives the quantile function, and `rgamma` generates random deviates.
Invalid arguments will result in return value `NaN`, with a warning.

### Note

The S parametrization is via `shape` and `rate`: S has no `scale` parameter.

`pgamma` is closely related to the incomplete gamma function. As defined by Abramowitz and Stegun 6.5.1

P(a,x) = 1/Gamma(a) integral_0^x t^(a-1) exp(-t) dt

P(a, x) is `pgamma(x, a)`. Other authors (for example Karl Pearson in his 1922 tables) omit the normalizing factor, defining the incomplete gamma function as `pgamma(x, a) * gamma(a)`.

### Source

`dgamma` is computed via the Poisson density, using code contributed by Catherine Loader (see `dbinom`).

Prior to R 2.1.0 `pgamma` used AS239 (Shea, 1988). It currently uses an unpublished (and not otherwise documented) algorithm `mainly by Morten Welinder'.

`qgamma` is based on a C translation of

Best, D. J. and D. E. Roberts (1975). Algorithm AS91. Percentage points of the chi-squared distribution. Applied Statistics, 24, 385–388.

plus a final Newton step to improve the approximation.

`rgamma` for `shape >= 1` uses

Ahrens, J. H. and Dieter, U. (1982). Generating gamma variates by a modified rejection technique. Communications of the ACM, 25, 47–54,

and for `0 < shape < 1` uses

Ahrens, J. H. and Dieter, U. (1974). Computer methods for sampling from gamma, beta, Poisson and binomial distributions. Computing, 12, 223–246.

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Shea, B. L. (1988) Algorithm AS 239, Chi-squared and incomplete Gamma integral, Applied Statistics (JRSS C) 37, 466–473.

Abramowitz, M. and Stegun, I. A. (1972) Handbook of Mathematical Functions. New York: Dover. Chapter 6: Gamma and Related Functions.

### See Also

`gamma` for the gamma function, `dbeta` for the Beta distribution and `dchisq` for the chi-squared distribution which is a special case of the Gamma distribution.

### Examples

    -log(dgamma(1:4, shape=1))
    p <- (1:9)/10
    pgamma(qgamma(p,shape=2), shape=2)
    1 - 1/exp(qgamma(p, shape=1))

[Package stats version 2.3.1 Index]