VGAM (version 1.0-4)

makeham: Makeham Distribution Family Function


Maximum likelihood estimation of the 3-parameter Makeham distribution.


makeham(lscale = "loge", lshape = "loge", lepsilon = "loge",
        iscale = NULL,   ishape = NULL,   iepsilon = NULL,
        gscale = exp(-5:5),gshape = exp(-5:5), gepsilon = exp(-4:1),
        nsimEIM = 500, oim.mean = TRUE, zero = NULL, nowarning = FALSE)



Logical. Suppress a warning? Ignored for VGAM 0.9-7 and higher.

lshape, lscale, lepsilon

Parameter link functions applied to the shape parameter shape, scale parameter scale, and other parameter epsilon. All parameters are treated as positive here (cf. dmakeham allows epsilon = 0, etc.). See Links for more choices.

ishape, iscale, iepsilon

Optional initial values. A NULL means a value is computed internally. A value must be given for iepsilon currently, and this is a sensitive parameter!

gshape, gscale, gepsilon
nsimEIM, zero

See CommonVGAMffArguments. Argument probs.y is used only when imethod = 2.


To be currently ignored.


An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm, and vgam.


A lot of care is needed because this is a rather difficult distribution for parameter estimation, especially when the shape parameter is large relative to the scale parameter. If the self-starting initial values fail then try experimenting with the initial value arguments, especially iepsilon. Successful convergence depends on having very good initial values. More improvements could be made here. Also, monitor convergence by setting trace = TRUE.

A trick is to fit a gompertz distribution and use it for initial values; see below. However, this family function is currently numerically fraught.


The Makeham distribution, which adds another parameter to the Gompertz distribution, has cumulative distribution function $$F(y; \alpha, \beta, \varepsilon) = 1 - \exp \left\{ -y \varepsilon + \frac {\alpha}{\beta} \left[ 1 - e^{\beta y} \right] \right\} $$ which leads to a probability density function $$f(y; \alpha, \beta, \varepsilon) = \left[ \varepsilon + \alpha e^{\beta y} \right] \; \exp \left\{ -y \varepsilon + \frac {\alpha}{\beta} \left[ 1 - e^{\beta y} \right] \right\}, $$ for \(\alpha > 0\), \(\beta > 0\), \(\varepsilon \geq 0\), \(y > 0\). Here, \(\beta\) is called the scale parameter scale, and \(\alpha\) is called a shape parameter. The moments for this distribution do not appear to be available in closed form.

Simulated Fisher scoring is used and multiple responses are handled.

See Also

dmakeham, gompertz, simulate.vlm.


Run this code
mdata <- data.frame(x2 = runif(nn <- 1000))
mdata <- transform(mdata, eta1  = -1,
                          ceta1 =  1,
                          eeta1 = -2)
mdata <- transform(mdata, shape1 = exp(eta1),
                          scale1 = exp(ceta1),
                          epsil1 = exp(eeta1))
mdata <- transform(mdata,
         y1 = rmakeham(nn, shape = shape1, scale = scale1, eps = epsil1))

# A trick is to fit a Gompertz distribution first
fit0 <- vglm(y1 ~ 1, gompertz, data = mdata, trace = TRUE)
fit1 <- vglm(y1 ~ 1, makeham, data = mdata,
             etastart = cbind(predict(fit0), log(0.1)), trace = TRUE)

coef(fit1, matrix = TRUE)
# }

Run the code above in your browser using DataCamp Workspace