# GammaDist {stats}

### 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 positive,
`scale`

strictly. - 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. Note that a = 0 corresponds to the trivial distribution with all mass at point 0.)

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)

Note that for smallish values of `shape`

(and moderate `scale`

) a large parts of the mass of the Gamma distribution is on values of x so near zero that they will be represented as zero in computer arithmetic. So `rgamma`

may well return values which will be represented as zero. (This will also happen for very large values of `scale`

since the actual generation is done for `scale = 1`

.)

### Values

`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. The length of the result is determined by `n`

for `rgamma`

, and is the maximum of the lengths of the numerical parameters for the other functions. The numerical parameters other than `n`

are recycled to the length of the result. Only the first elements of the logical parameters are used.

### 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.

NIST Digital Library of Mathematical Functions. http://dlmf.nist.gov/, section 8.2.

### Note

The S (Becker *et al* (1988) parametrization was via `shape`

and `rate`

: S had no `scale`

parameter. In R 2.x.y `scale`

took precedence over `rate`

, but now it is an error to supply both.

`pgamma`

is closely related to the incomplete gamma function. As defined by Abramowitz and Stegun 6.5.1 (and by ‘Numerical Recipes’) this is 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 γ(a,x) as i.e., `pgamma(x, a) * gamma(a)`

. Yet other use the ‘upper’ incomplete gamma function, Gamma(a,x) = integral_x^Inf t^(a-1) exp(-t) dt, which can be computed by `pgamma(x, a, lower = FALSE) * gamma(a)`

.

Note however that `pgamma(x, a, ..)`

currently requires a > 0, whereas the incomplete gamma function is also defined for negative a. In that case, you can use `gamma_inc(a,x)`

(for Γ(a,x)) from package gsl.

See also http://en.wikipedia.org/wiki/Incomplete_gamma_function, or http://dlmf.nist.gov/8.2#i.

### See Also

`gamma`

for the gamma function.

Distributions for other standard distributions, including `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)) # even for shape = 0.001 about half the mass is on numbers # that cannot be represented accurately (and most of those as zero) pgamma(.Machine$double.xmin, 0.001) pgamma(5e-324, 0.001) # on most machines 5e-324 is the smallest # representable non-zero number table(rgamma(1e4, 0.001) == 0)/1e4

Documentation reproduced from R 3.0.2. License: GPL-2.