ex_to_lifetab_brass {poputils} | R Documentation |
Derive Life Tables that Match Life Expectancies, using a Brass Logit Model
Description
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.
Usage
ex_to_lifetab_brass(
target,
standard,
infant = c("constant", "linear", "CD", "AK"),
child = c("constant", "linear", "CD"),
closed = c("constant", "linear"),
open = "constant",
radix = 1e+05,
suffix = NULL
)
Arguments
target |
A data frame containing a variable called
|
standard |
A data frame containing variables
called |
infant , child , closed , open |
Methods used to
calculate life expectancy. See |
radix |
Initial population for the
|
suffix |
Optional suffix added to life table columns. |
Value
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,
\text{logit}(l_x^{\text{B}}) \approx \alpha + \beta \text{logit}(l_x^{\text{A}})
where l_x
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 l_x^{\text{A}}
),
(referred to as a "standard"), and
(iii) a value for \beta
,
ex_to_lifetab_brass()
finds
a value for \alpha
that yields a set of
l_x^{\text{B}}
) 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 intarget
.A variable called
"beta"
with values forbeta
can be included intarget
. This variable can be an rvec. If no"beta"
variable is included intarget
, thenex_to_lifetab_brass()
assumes thatbeta \equiv 1
.A variable called
"sex"
. If theinfant
argument toex_to_lifetab_brass()
is is"CD"
or"AK"
, or if thechild
argument is"CD"
,target
must include a"sex" variable, and the labels for this variable must be interpretable by 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 l_x
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,
_na_x
. Values in standard
are age-specific.
A variable called
"age"
, with labels that can be parsed byreformat_age()
.A variable called
"lx"
. Internally each set ofl_x
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 intarget
.
Internally, standard
is merged with
target
using a left join from target
,
on any variables that target
and standard
have in common.
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
Examples
## create new life tables based on level-1
## 'West' model life tables, but with lower
## life expectancy
library(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")