Derive Life Tables that Match Life Expectancies, using a Brass Logit Model
Derive Life Tables that Match Life Expectancies, using a Brass Logit Model
Turn life expectancies at birth into full life tables, using the Brass logit model. The method is simple and is designed for simulations or for settings with little or no data on age-specific mortality rates. In settings where data on age-specific mortality is available, other methods might be more appropriate.
target: A data frame containing a variable called "ex", and possibly others. See Details.
standard: A data frame containing variables called age and lx, and possibly others. See details.
infant, child, closed, open: Methods used to calculate life expectancy. See lifetab() for details.
radix: Initial population for the lx column in the derived life table(s). Default is 100000.
suffix: Optional suffix added to life table columns.
Returns
A data frame containing one or more life tables.
Method
The method implemented by ex_to_lifetab_brass() is based on the observation that, if populations A and B are demographically similar, then, in many cases,
logit(lxB)≈α+βlogit(lxA)
where lx is the "survivorship probability" quantity from a life table. When populations are similar, beta is often close to 1.
Given (i) target life expectancy, (ii) a set of lxA), (referred to as a "standard"), and (iii) a value for β, ex_to_lifetab_brass() finds a value for α that yields a set of lxB) with the required life expectancy.
target argument
target is a data frame specifying life expectancies for each population being modelled, and, possibly, inputs to the calculations, and index variables. Values in target are not age-specific.
A variable called "ex", with life expectancy at birth must be included in target.
A variable called "beta" with values for beta can be included in target. This variable can be an rvec . If no "beta" variable is included in target, then ex_to_lifetab_brass() assumes that beta≡1.
A variable called "sex". If the infant
argument to ex_to_lifetab_brass() is is "CD" or "AK", or if the child argument is "CD", target must include a "sex" variable, and the labels for this variable must be interpretableby function [format_sex()]. Otherwise, the"sex"` variable is optional, and there is no restriction on labels.
Other variables used to distinguish between life expectancies, such as time, region, or model variant.
standard argument
standard is a data frame specifying the lx to be used with each life expectancy in ex, and, optionally, values the average age person-years lived by people who die in each group, nax. Values in standard are age-specific.
A variable called "age", with labels that can be parsed by reformat_age().
A variable called "lx". Internally each set of lx is are standardized so that the value for age 0 equals 1. Within each set, values must be non-increasing. Cannot be an rvec.
Additional variables used to match rows in standard
to rows in target.
Internally, standard is merged with target using a left join from target, on any variables that target
and standard have in common.
Examples
## create new life tables based on level-1## 'West' model life tables, but with lower## life expectancylibrary(dplyr, warn.conflicts =FALSE)target <- data.frame(sex = c("Female","Male"), ex = c(17.5,15.6))standard <- west_lifetab |> filter(level ==1)|> select(sex, age, lx)ex_to_lifetab_brass(target = target, standard = standard, infant ="CD", child ="CD")
References
Brass W, Coale AJ. 1968. “Methods of analysis and estimation,” in Brass, W, Coale AJ, Demeny P, Heisel DF, et al. (eds). The Demography of Tropical Africa. Princeton NJ: Princeton University Press, pp. 88–139.
Moultrie TA, Timæus IM. 2013. Introduction to Model Life Tables. In Moultrie T, Dorrington R, Hill A, Hill K, Timæus I, Zaba B. (eds). Tools for Demographic Estimation. Paris: International Union for the Scientific Study of Population. online version.
See Also
logit(), invlogit() Logit function
lifeexp() Calculate life expectancy from detailed inputs