# Gompertz: The Gompertz distribution In flexsurv: Flexible Parametric Survival and Multi-State Models

## Description

Density, distribution function, hazards, quantile function and random generation for the Gompertz distribution with unrestricted shape.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```dgompertz(x, shape, rate = 1, log = FALSE) pgompertz(q, shape, rate = 1, lower.tail = TRUE, log.p = FALSE) qgompertz(p, shape, rate = 1, lower.tail = TRUE, log.p = FALSE) rgompertz(n, shape = 1, rate = 1) hgompertz(x, shape, rate = 1, log = FALSE) Hgompertz(x, shape, rate = 1, log = FALSE) ```

## Arguments

 `x, q` vector of quantiles. `shape, rate` vector of shape and rate parameters. `log, log.p` logical; if TRUE, probabilities p are given as log(p). `lower.tail` logical; if TRUE (default), probabilities are P(X <= x), otherwise, P(X > x). `p` vector of probabilities. `n` number of observations. If `length(n) > 1`, the length is taken to be the number required.

## Details

The Gompertz distribution with `shape` parameter a and `rate` parameter b has probability density function

f(x | a, b) = b exp(ax) exp(-b/a (exp(ax) - 1))

and hazard

h(x | a, b) = b exp(ax)

The hazard is increasing for shape a>0 and decreasing for a<0. For a=0 the Gompertz is equivalent to the exponential distribution with constant hazard and rate b.

The probability distribution function is

F(x | a, b) = 1 - exp(-b/a (exp(ax) - 1))

Thus if a is negative, letting x tend to infinity shows that there is a non-zero probability exp(b/a) of living forever. On these occasions `qgompertz` and `rgompertz` will return `Inf`.

## Value

`dgompertz` gives the density, `pgompertz` gives the distribution function, `qgompertz` gives the quantile function, `hgompertz` gives the hazard function, `Hgompertz` gives the cumulative hazard function, and `rgompertz` generates random deviates.

## Note

Some implementations of the Gompertz restrict a to be strictly positive, which ensures that the probability of survival decreases to zero as x increases to infinity. The more flexible implementation given here is consistent with `streg` in Stata.

The functions `eha::dgompertz` and similar available in the package eha label the parameters the other way round, so that what is called the `shape` there is called the `rate` here, and what is called `1 / scale` there is called the `shape` here. The terminology here is consistent with the exponential `dexp` and Weibull `dweibull` distributions in R.

## Author(s)

Christopher Jackson <chris.jackson@mrc-bsu.cam.ac.uk>

## References

Stata Press (2007) Stata release 10 manual: Survival analysis and epidemiological tables.

`dexp`