Learn R Programming

VGAM (version 0.9-6)

Makeham: The Makeham Distribution

Description

Density, cumulative distribution function, quantile function and random generation for the Makeham distribution.

Usage

dmakeham(x, scale = 1, shape, epsilon = 0, log = FALSE)
pmakeham(q, scale = 1, shape, epsilon = 0)
qmakeham(p, scale = 1, shape, epsilon = 0)
rmakeham(n, scale = 1, shape, epsilon = 0)

Arguments

x, q
vector of quantiles.
p
vector of probabilities.
n
number of observations. Same as in runif.
log
Logical. If log = TRUE then the logarithm of the density is returned.
scale, shape
positive scale and shape parameters.
epsilon
another parameter. Must be non-negative. See below.

Value

  • dmakeham gives the density, pmakeham gives the cumulative distribution function, qmakeham gives the quantile function, and rmakeham generates random deviates.

Details

See makeham for details. The default value of epsilon = 0 corresponds to the Gompertz distribution. The function pmakeham uses lambertW.

References

Jodra, P. (2009) A closed-form expression for the quantile function of the Gompertz-Makeham distribution. Mathematics and Computers in Simulation, 79, 3069--3075.

See Also

makeham, lambertW.

Examples

Run this code
probs <- seq(0.01, 0.99, by = 0.01)
Shape <- exp(-1); Scale <- exp(1); eps = Epsilon <- exp(-1)
max(abs(pmakeham(qmakeham(p = probs, sca = Scale, Shape, eps = Epsilon),
                 sca = Scale, Shape, eps = Epsilon) - probs))  # Should be 0

x <- seq(-0.1, 2.0, by = 0.01);
plot(x, dmakeham(x, sca = Scale, Shape, eps = Epsilon), type = "l",
     main = "Blue is density, orange is cumulative distribution function",
     sub = "Purple lines are the 10,20,...,90 percentiles",
     col = "blue", las = 1, ylab = "")
abline(h = 0, col = "blue", lty = 2)
lines(x, pmakeham(x, sca = Scale, Shape, eps = Epsilon), col = "orange")
probs <- seq(0.1, 0.9, by = 0.1)
Q <- qmakeham(probs, sca = Scale, Shape, eps = Epsilon)
lines(Q, dmakeham(Q, sca = Scale, Shape, eps = Epsilon),
      col = "purple", lty = 3, type = "h")
pmakeham(Q, sca = Scale, Shape, eps = Epsilon) - probs # Should be all zero
abline(h = probs, col = "purple", lty = 3)

Run the code above in your browser using DataLab