Density, cumulative distribution function, quantile function and random generation for the Makeham distribution.
dmakeham(x, scale = 1, shape, epsilon = 0, log = FALSE)
pmakeham(q, scale = 1, shape, epsilon = 0, lower.tail = TRUE,
log.p = FALSE)
qmakeham(p, scale = 1, shape, epsilon = 0, lower.tail = TRUE,
log.p = FALSE)
rmakeham(n, scale = 1, shape, epsilon = 0)
dmakeham
gives the density,
pmakeham
gives the cumulative distribution function,
qmakeham
gives the quantile function, and
rmakeham
generates random deviates.
vector of quantiles.
vector of probabilities.
number of observations.
Same as in runif
.
Logical.
If log = TRUE
then the logarithm of the density is
returned.
positive scale and shape parameters.
another parameter. Must be non-negative. See below.
T. W. Yee and Kai Huang
See makeham
for details.
The default value of epsilon = 0
corresponds
to the Gompertz distribution.
The function pmakeham
uses lambertW
.
Jodra, P. (2009). A closed-form expression for the quantile function of the Gompertz-Makeham distribution. Mathematics and Computers in Simulation, 79, 3069--3075.
makeham
,
lambertW
.
probs <- seq(0.01, 0.99, by = 0.01)
Shape <- exp(-1); Scale <- exp(1); eps = Epsilon <- exp(-1)
max(abs(pmakeham(qmakeham(probs, sca = Scale, Shape, eps = Epsilon),
sca = Scale, Shape, eps = Epsilon) - probs)) # Should be 0
if (FALSE) 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 the CDF",
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 0
abline(h = probs, col = "purple", lty = 3)
Run the code above in your browser using DataLab