The UN a(x) formula uses Coale-Demeny for ages 0, and 1-4, values of 2.5 for ages 5-9 and 10-14, and the Greville formula thereafter. In the original sources these are referred to as separation factors.

lt_id_morq_a_greville(
  nMx,
  nqx,
  lx,
  Age,
  AgeInt = age2int(Age, OAvalue = 5),
  a0rule = "ak",
  IMR = NA,
  Sex = "m",
  region = "w",
  mod = TRUE,
  SRB = 1.05,
  closeout = TRUE,
  extrapLaw = "kannisto",
  extrapFrom = max(Age),
  extrapFit = Age[Age >= 60],
  ...
)

Arguments

nMx

numeric. Event exposure mortality rates.

nqx

numeric. Vector of age specific death probabilities in standard abridged age groups.

lx

numeric. Vector of lifetable survivorship in standard abridged age groups.

Age

integer. Vector of lower bounds of abridged age groups.

AgeInt

integer. Vector of age group intervals.

a0rule

character. Either "ak" (default) or "cd".

IMR

numeric. Optional. q0, the death probability in first year of life, in case available separately.

Sex

character. "m", "f" or "b" for male, female, or both.

region

character. "n", "e", "s" or "w" for North, East, South, or West.

mod

logical. Whether or not to use Gerland's modification for ages 5-14. Default TRUE.

SRB

numeric. The sex ratio at birth (boys/girls), default 1.05.

closeout

logical. Whether or not to estimate open age a(x) via extrapolation. Default TRUE.

extrapLaw

character. The following options are available:

  • "kannisto" -- The Kannisto model;

  • "kannisto_makeham" -- The Kannisto-Makeham model;

  • "gompertz" -- The Gompertz model;

  • "ggompertz" -- The Gamma-Gompertz model;

  • "makeham" -- The Makeham model;

  • "beard" -- The Beard model;

  • "beard_makeham" -- The Beard-Makeham model;

  • "quadratic" -- The Quadratic model.

extrapFrom

integer. Age from which to impute extrapolated mortality.

extrapFit

integer vector. Ages to include in model fitting. Defaults to all ages > =60.

...

Other arguments to be passed on to the MortalityLaw function.

Value

nax average contribution to exposure of those dying in the interval.

Details

\(a(x)\) for age 0 and age group 1-4 are based on Coale-Demeny q0-based lookup tables. An approximation to get from M(0) to q0 for the sake of generating a(0) and 4a1 is used. The final a(x) value is closed out using the lt_a_closeout() method (reciprocal and Mortpak methods are deprecated). Age groups must be standard abridged. No check on age groups is done.

There are different vectors one can specify for this method: ultimately it's either nMx or nqx, and the nax, but nax results should be reasonably close. For full convergence implying transitivity, instead use lt_a_un()

References

Greville TN (1977). “Short methods of constructing abridged life tables.” In Mathematical Demography, 53--60. Springer. United Nations (1982). Model Life Tables for Developing Countries. United Nations Department of International Economic and Social Affairs. Arriaga EE, Johnson PD, Jamison E (1994). Population analysis with microcomputers, volume 1. Bureau of the Census. United Nations (1988). Mortpak- The United Nations Software Package for Mortality Measurement. United Nations Department of International Economic and Social Affairs.

See also

Examples

#Example witn Mexican data from UN nMx <- c(0.11621,0.02268,0.00409,0.00212,0.00295,0.00418,0.00509,0.00609, 0.00714,0.00808,0.00971,0.0125,0.0175,0.02551,0.03809,0.05595,0.08098, 0.15353,0.2557) nqx <- c(0.10793,0.08554,0.02025,0.01053,0.01463,0.02071,0.02515,0.02999, 0.03507, 0.03958,0.04742,0.0606,0.08381,0.11992,0.17391,0.2454,0.33672, 0.54723,NA) lx <- c(100000,89207,81577,79924,79083,77925,76312,74393,72162,69631,66875, 63704,59843,54828,48253,39861,30079,19951,9033) Age <- c(0,1,seq(5,85,by = 5)) AgeInt <- age2int(Age, OAvalue = 5) # two quite different results depending whether you start with mx or qx lt_id_morq_a_greville(nMx = nMx, Age = Age, AgeInt = AgeInt, Sex = 'f', region = 'w')
#> [1] 0.314110 1.361000 1.971728 2.427513 2.635291 2.604932 2.567799 2.557820 #> [9] 2.544030 2.547217 2.570674 2.596676 2.612155 2.608886 2.584268 2.540573 #> [17] 2.541591 2.419688 3.537193
lt_id_morq_a_greville(nqx = nqx, Age = Age, AgeInt = AgeInt, Sex = 'f', region = 'w')
#> [1] 0.314100 1.361000 1.998436 2.410337 2.610435 2.569726 2.524739 2.506789 #> [9] 2.484742 2.480395 2.489952 2.492398 2.467590 2.402247 2.286868 2.126399 #> [17] 1.829551 1.480824 1.560036
# same, qx comes from lx (Except OAG, because qx closed above w NA) lt_id_morq_a_greville(lx = lx, Age = Age, AgeInt = AgeInt, Sex = 'f', region = 'w')
#> [1] 0.314100 1.361000 1.998275 2.410401 2.610450 2.569538 2.524848 2.506840 #> [9] 2.484738 2.480358 2.489988 2.492376 2.467577 2.402272 2.286855 2.126381 #> [17] 1.829564 1.480808 1.384313
# both qx and lx given, but lx not used for anything = same as qx lt_id_morq_a_greville(nqx = nqx, lx = lx, Age = Age, AgeInt = AgeInt, Sex = 'f', region = 'w')
#> [1] 0.314100 1.361000 1.998436 2.410337 2.610435 2.569726 2.524739 2.506789 #> [9] 2.484742 2.480395 2.489952 2.492398 2.467590 2.402247 2.286868 2.126399 #> [17] 1.829551 1.480824 1.560036
#' # nMx taken over lx. lt_id_morq_a_greville(nMx = nMx, lx = lx, Sex = 'f', Age = Age, AgeInt = AgeInt, region = 'w')
#> [1] 0.314110 1.361000 1.971728 2.427513 2.635291 2.604932 2.567799 2.557820 #> [9] 2.544030 2.547217 2.570674 2.596676 2.612155 2.608886 2.584268 2.540573 #> [17] 2.541591 2.419688 3.537193
# example of transitivity. UN ax method is iterative # and used greville on the inside nMx <- c(0.11621,0.02268,0.00409,0.00212,0.00295, 0.00418,0.00509,0.00609,0.00714,0.00808, 0.00971,0.0125,0.0175,0.02551,0.03809, 0.05595,0.0809,0.15353,0.2557) AgeInt <- inferAgeIntAbr(vec = nMx) Age <- int2age(AgeInt) nAx1 <- lt_a_un(nMx, Age = Age, AgeInt = AgeInt, a0rule = "ak", mod = TRUE, closeout = TRUE) nqx <- lt_id_ma_q(nMx = nMx, nax = nAx1, AgeInt = AgeInt, closeout = FALSE) nAx2 <- lt_a_un(nqx = nqx, Age = Age, AgeInt = AgeInt, a0rule = "ak", mod= TRUE, closeout = TRUE) stopifnot(all(abs(nAx1[Age<75] - nAx2[Age<75]) < 1e-7))