# mortcast: Coherent Rotated Lee-Carter Prediction In PPgp/MortCast: Estimation and Projection of Age-Specific Mortality Rates

## Description

Predict age-specific mortality rates using the coherent rotated Lee-Carter method.

## Usage

 ```1 2 3 4 5 6 7 8 9``` ```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 `bx`, `ultimate.bx`, `ages`, `nx`, `female` and `male` as returned by `lileecarter.estimate`. The `female` and `male` objects are again lists that should contain a vector `ax` and optionally a matrix `axt` if the a_x parameter needs to be defined as time dependent. In such a case, rows are age groups and columns are time periods corresponding to the length of the `e0f` and `e0m` vectors. `rotate` If `TRUE` the rotation method of b_x is used as described in Li et al. (2013). `keep.lt` Logical. If `TRUE` additional life table columns are kept in the resulting object. `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 `TRUE` causes this constraint to be applied to all ages. `...` 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

`rotate.leecarter`, `leecarter.estimate`, `lileecarter.estimate`, `mortcast.blend`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33``` ```# 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") ```