pmd {MortCast}R Documentation

Pattern of Mortality Decline Prediction

Description

Predict age-specific mortality rates using the Pattern of mortality decline (PMD) method (Andreev et al. 2013).

Usage

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,
  ...
)

Arguments

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 modpmd it can be a matrix where rows correspond to age groups and columns correspond to time periods. Rownames define the starting ages of the age groups.

sex

Either "male" or "female".

nx

Size of age groups. Should be either 5 or 1.

interp.rho

Logical controlling if the \rho coefficients should be interpolated (TRUE) or if the raw (binned) version should be used (FALSE), as stored in the dataset PMDrho.

kranges

A vector of size two, giving the min and max of the k parameter which is estimated to match the target e0 using the bisection method.

keep.lt

Logical. If TRUE additional life table columns are kept in the resulting object.

keep.rho

Logical. If TRUE the \rho coefficients are included in the resulting object.

...

Additional arguments passed to the underlying functions. For copmd, in addition to kranges and keep.lt, it can be sexratio.adjust which is a logical controlling if a sex-ratio adjustment should be applied to prevent crossovers between male and female mx. In such a case it uses coefficients from the PMDadjcoef dataset. However, if the argument adjust.with.mxf is set to TRUE (in addition to sexratio.adjust), the adjustment is done using the female mortality rates as the lower constraint for male mortality rates. If the argument adjust.sr.if.needed is set to TRUE, a sex-ratio adjustment is performed dynamically, using the sex ratio in the previous time point. In such a case, an adjustment in time t is applied only if there was a drop of sex ratio below one at time t-1. Other arguments passed here in copmd can be ax.index, ax.smooth and ax.smooth.df which control the estimation of the initial mx if use.modpmd is TRUE.

ax.index

A vector of column indices of mx to be used to estimate the a_x = E[log(mx(t_0))] parameter. By default it is estimated as the average over all observed time periods, but this argument can restrict the time periods to use.

ax.smooth

Logical allowing to smooth the a_x over ages.

ax.smooth.df

Degree of freedom for smoothing if ax.smooth is TRUE. Default is half the length of a_x.

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 is TRUE, this can be a matrix of historical mx (age x time) from which the starting values are estimated.

use.modpmd

Logical determining if the modified version of PMD (modpmd) should be used. In such a case the starting values of mortality rates are estimated similarly to a_x in leecarter.estimate, possibly from more than one time periods. In addition, a smoothing can be applied.

Details

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) \rho_x(t)

Here, \rho_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 \rho_x (namely the average over sex-specific \rho_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.

Value

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) \rho_x coefficient.

References

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

See Also

mortcast, mortcast.blend, PMDrho

Examples

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")


[Package MortCast version 2.7-0 Index]