Density, distribution function, quantile function and random generation for the Gamma distribution with parameters
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)
- x, q
- vector of quantiles.
- vector of probabilities.
- number of observations. If
length(n) > 1, the length is taken to be the number required.
- an alternative way to specify the scale.
- shape, scale
- shape and scale parameters. Must be positive,
- log, log.p
- logical; if
TRUE, probabilities/densities p are returned as log(p).
- logical; if TRUE (default), probabilities are P[X ≤ x], otherwise, P[X > x].
scale is omitted, it assumes the default value of
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.)
Invalid arguments will result in return value
NaN, with a warning. The length of the result is determined by
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.
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.
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.
gamma for the gamma function.
-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.