LifeTable function

Compute Life Tables from Mortality Data

Compute Life Tables from Mortality Data

Construct either a full or abridged life table with various input choices like: death counts and mid-interval population estimates (Dx, Ex) or age-specific death rates (mx) or death probabilities (qx)

or survivorship curve (lx) or a distribution of deaths (dx). If one of these options is specified, the other can be ignored. The input data can be an object of class: numerical vector, matrix or data.frame.

LifeTable(x, Dx = NULL, Ex = NULL, mx = NULL, qx = NULL, lx = NULL, dx = NULL, sex = NULL, lx0 = 1e5, ax = NULL)

Arguments

  • x: Vector of ages at the beginning of the age interval.
  • Dx: Object containing death counts. An element of the Dx object represents the number of deaths during the year to persons aged x to x+n.
  • Ex: Exposure in the period. Ex can be approximated by the mid-year population aged x to x+n.
  • mx: Life table death rate in age interval [x, x+n).
  • qx: Probability of dying in age interval [x, x+n).
  • lx: Probability of survival up until exact age x (if l(0) = 1), or the number of survivors at exact age x, assuming l(0) > 1.
  • dx: Deaths by life-table population in the age interval [x, x+n).
  • sex: Sex of the population considered here. Default: NULL. This argument affects the first two values in the life table ax column. If sex is specified the values are computed based on the Coale-Demeny method and are slightly different for males than for females. Options: NULL, male, female, total.
  • lx0: Radix. Default: 100 000.
  • ax: Numeric scalar. Subject-time alive in age-interval for those who die in the same interval. If NULL this will be estimated. A common assumption is ax = 0.5, i.e. the deaths occur in the middle of the interval. Default: NULL.

Returns

The output is of the "LifeTable" class with the components: - lt: Computed life table;

  • call: Call in which all of the specified arguments are specified by their full names;

  • process_date: Time stamp.

Details

The "life table" is also called "mortality table" or "actuarial table". This shows, for each age, what the probability is that a person of that age will die before his or her next birthday, the expectation of life across different age ranges or the survivorship of people from a certain population.

Examples

# Example 1 --- Full life tables with different inputs --- y <- 1900 x <- as.numeric(rownames(ahmd$mx)) Dx <- ahmd$Dx[, paste(y)] Ex <- ahmd$Ex[, paste(y)] LT1 <- LifeTable(x, Dx = Dx, Ex = Ex) LT2 <- LifeTable(x, mx = LT1$lt$mx) LT3 <- LifeTable(x, qx = LT1$lt$qx) LT4 <- LifeTable(x, lx = LT1$lt$lx) LT5 <- LifeTable(x, dx = LT1$lt$dx) LT1 LT5 ls(LT5) # Example 2 --- Compute multiple life tables at once --- LTs = LifeTable(x, mx = ahmd$mx) LTs # A warning is printed if the input contains missing values. # Some of the missing values can be handled by the function. # Example 3 --- Abridged life table ------------ x <- c(0, 1, seq(5, 110, by = 5)) mx <- c(.053, .005, .001, .0012, .0018, .002, .003, .004, .004, .005, .006, .0093, .0129, .019, .031, .049, .084, .129, .180, .2354, .3085, .390, .478, .551) LT6 <- LifeTable(x, mx = mx, sex = "female") LT6 # Example 4 --- Abridged life table w using my own 'ax' ------------ # In this examples we are using the ages (x) and death rates (mx) from # example 3. Note that 'ax' must have the same length as the 'x' vector # otherwise an error message will be returned. my_ax <- c(0.1, 1.5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1) LT7 <- LifeTable(x = x, mx = mx, ax = my_ax)

See Also

LawTable

convertFx

Author(s)

Marius D. Pascariu

  • Maintainer: Marius D. Pascariu
  • License: MIT + file LICENSE
  • Last published: 2025-04-16