mortcast {MortCast} | R Documentation |
Coherent Rotated Lee-Carter Prediction
Description
Predict age-specific mortality rates using the coherent rotated Lee-Carter method.
Usage
mortcast(
e0m,
e0f,
lc.pars,
rotate = TRUE,
keep.lt = FALSE,
constrain.all.ages = FALSE,
...
)
Arguments
e0m |
A time series of future male life expectancy. |
e0f |
A time series of future female life expectancy. |
lc.pars |
A list of coherent Lee-Carter parameters with elements |
rotate |
If |
keep.lt |
Logical. If |
constrain.all.ages |
By default the method constrains the male mortality to be above female
mortality for old ages if the male life expectancy is below the female life expectancy. Setting
this argument to |
... |
Additional life table arguments. |
Details
This function implements Steps 6-9 of Algorithm 2 in Sevcikova et al. (2016). It uses the abridged or unabridged life table function to find the level of mortality that coresponds to the given life expectancy. Thus, it can be used for both, mortality for 5- or 1-year age groups.
Value
List with elements female
and male
, each of which contains 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
.
References
Li, N., Lee, R. D. and Gerland, P. (2013). Extending the Lee-Carter method to model the rotation of age patterns of mortality decline for long-term projections. Demography, 50, 2037-2051.
Sevcikova H., Li N., Kantorova V., Gerland P., Raftery A.E. (2016). Age-Specific Mortality and Fertility Rates for Probabilistic Population Projections. In: Schoen R. (eds) Dynamic Demographic Analysis. The Springer Series on Demographic Methods and Population Analysis, vol 39. Springer, Cham
See Also
rotate.leecarter
, leecarter.estimate
, lileecarter.estimate
,
mortcast.blend
Examples
# estimate parameters from historical mortality data (5-year age groups)
data(mxM, mxF, e0Fproj, e0Mproj, package = "wpp2017")
country <- "Brazil"
mxm <- subset(mxM, name == country)[,4:16]
mxf <- subset(mxF, name == country)[,4:16]
rownames(mxm) <- rownames(mxf) <- c(0,1, seq(5, 100, by=5))
lc <- lileecarter.estimate(mxm, mxf)
# project into future for given levels of life expectancy
e0f <- as.numeric(subset(e0Fproj, name == country)[-(1:2)])
e0m <- as.numeric(subset(e0Mproj, name == country)[-(1:2)])
pred <- mortcast(e0m, e0f, lc)
# plot first projection in black and the remaining ones in grey
plot(lc$ages, pred$female$mx[,1], type="b", log="y", ylim=range(pred$female$mx),
ylab="female mx", xlab="Age", main=paste(country, "(5-year age groups)"), cex=0.5)
for(i in 2:ncol(pred$female$mx)) lines(lc$ages, pred$female$mx[,i], col="grey")
# similarly for 1-year age groups
# derive toy 1-year mx using model life tables at given level of e0
mxm1y <- mlt(seq(65, 71, length = 4), sex = "male", nx = 1)
mxf1y <- mlt(seq(73, 78, length = 4), sex = "female", nx = 1)
# estimate parameters
lc1y <- lileecarter.estimate(mxm1y, mxf1y, nx = 1)
# project into the future
pred1y <- mortcast(e0m, e0f, lc1y)
# plot first projection in black and the remaining ones in grey
plot(lc1y$ages, pred1y$female$mx[,1], type="b", log="y", ylim=range(pred1y$female$mx),
ylab="female mx", xlab="Age", main="1-year age groups", cex=0.5)
for(i in 2:ncol(pred1y$female$mx)) lines(lc1y$ages, pred1y$female$mx[,i], col="grey")