pmd | R Documentation |
Predict age-specific mortality rates using the Pattern of mortality decline (PMD) method (Andreev et al. 2013).
pmd( e0, mx0, sex = c("male", "female"), nx = 5, interp.rho = FALSE, kranges = c(0, 25), keep.lt = FALSE, keep.rho = FALSE, ... ) modpmd( e0, mx0, sex = c("male", "female"), nx = 5, interp.rho = FALSE, kranges = c(0, 25), ax.index = NULL, ax.smooth = FALSE, ax.smooth.df = NULL, keep.lt = FALSE, keep.rho = FALSE, ... ) copmd( e0m, e0f, mxm0, mxf0, nx = 5, interp.rho = FALSE, keep.rho = FALSE, use.modpmd = FALSE, ... )
e0 |
A vector of target life expectancy, one element for each predicted time point. |
mx0 |
A vector with starting age-specific mortality rates. In case of |
sex |
Either "male" or "female". |
nx |
Size of age groups. Should be either 5 or 1. |
interp.rho |
Logical controlling if the ρ coefficients should be interpolated
( |
kranges |
A vector of size two, giving the min and max of the k parameter which is
estimated to match the target |
keep.lt |
Logical. If |
keep.rho |
Logical. If |
... |
Additional arguments passed to the underlying functions. For |
ax.index |
A vector of column indices of |
ax.smooth |
Logical allowing to smooth the a_x over ages. |
ax.smooth.df |
Degree of freedom for smoothing if |
e0m |
A time series of target male life expectancy. |
e0f |
A time series of target female life expectancy. |
mxm0, mxf0 |
A vector with starting age-specific male/female mortality rates. If |
use.modpmd |
Logical determining if the modified version of PMD ( |
These functions implements the PMD method introduced in Andreev et al. (2013) and its modifications. It assumes that the future decline in age-specific mortality will follow a certain pattern with the increase in life expectancy at birth (e0):
log[mx(t)] = log[mx(t-1)] - k(t) ρ_x(t)
Here, ρ_x(t) is the age-specific pattern of mortality decline between t-1
and t. Such patterns for each sex and various levels of e0
are stored in the dataset PMDrho
. The pmd
function can be instructed
to interpolate between neighboring levels of e0 by setting the argument interp.rho
to TRUE
. The k parameter is estimated to match the e0 level using the bisection
method.
Function pmd
evaluates the method for a single sex, while copmd
does it
coherently for both sexes. In the latter case, the same ρ_x
(namely the average over sex-specific ρ_x) is used
for both, male and female.
Function modpmd
implements a modified version of pmd
where the initial log[mx(t_0)]
is replaced by an a_x estimated as in leecarter.estimate
, i.e. using possibly
multiple years of historical mx
and optionally smoothed. Arguments ax.index
, ax.smooth
and
ax.smooth.df
determine the estimation years and parameters of the smoothing.
Function pmd
and modpmd
return a list with the following elements: a matrix mx
with the predicted mortality rates. If keep.lt
is TRUE
, it also
contains matrices sr
(survival rates), and life table quantities Lx
and lx
.
If keep.rho
is TRUE
, it contains a matrix rho
where columns correpond
to the values in the e0
vector and rows correspond to age groups.
Function copmd
returns a list with one element for each sex
(male
and female
) where each of them is a list as described above.
In addition if keep.rho
is TRUE
, element rho.sex
gives the sex-dependent (i.e. not averaged) ρ_x coefficient.
Andreev, K., Gu, D., Gerland, P. (2013). Age Patterns of Mortality Improvement by Level of Life Expectancy at Birth with Applications to Mortality Projections. Paper presented at the Annual Meeting of the Population Association of America, New Orleans, LA. https://paa2013.princeton.edu/papers/132554.
Gu, D., Pelletier, F., Sawyer, C. (2017). Projecting Age-sex-specific Mortality: A Comparison of the Modified Lee-Carter and Pattern of Mortality Decline Methods, UN Population Division, Technical Paper No. 6. New York: United Nations. https://population.un.org/wpp/Publications/Files/WPP2017_TechnicalPaperNo6.pdf
mortcast
, mortcast.blend
, PMDrho
data(mxF, e0Fproj, package = "wpp2017") country <- "Hungary" # get initial mortality for the current year mxf <- subset(mxF, name == country)[,"2010-2015"] names(mxf) <- c(0,1, seq(5, 100, by=5)) # get target e0 e0f <- subset(e0Fproj, name == country)[-(1:2)] # project into future pred <- pmd(e0f, mxf, sex = "female") # plot first projection in black and the remaining ones in grey plot(pred$mx[,1], type = "l", log = "y", ylim = range(pred$mx), ylab = "female mx", xlab = "Age", main = country) for(i in 2:ncol(pred$mx)) lines(pred$mx[,i], col = "grey")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.