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 |
sex |
Either "male" or "female". |
nx |
Size of age groups. Should be either 5 or 1. |
interp.rho |
Logical controlling if the |
kranges |
A vector of size two, giving the min and max of the |
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 |
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 ( |
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")