Learn R Programming

VGAM (version 0.9-2)

makeham: Makeham Distribution Family Function

Description

Maximum likelihood estimation of the 3-parameter Makeham distribution.

Usage

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

Arguments

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. dma
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.
oim.mean
To be currently ignored.

Value

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

Warning

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.

Details

The Makeham distribution, which adds another parameter to the Gompertz distribution, has cumulative distribution function $$F(x; \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(x; \alpha, \beta, \varepsilon) = \left[ \varepsilon + \alpha e^{\beta x} \right] \; \exp \left{ -x \varepsilon + \frac {\alpha}{\beta} \left[ 1 - e^{\beta x} \right] \right},$$ for $\alpha > 0$, $\beta > 0$, $\varepsilon \geq 0$, $x > 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.

Examples

Run this code
set.seed(123)
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)
summary(fit1)

Run the code above in your browser using DataLab