# MortalityTables
## Author: Reinhold Kainhofer, reinhold@kainhofer.com
R package implementing actuarial mortality tables (period and cohort life tables)
## About the package
The MortalityTables package provides the `mortalityTable` base class and
some derived classes to handle different types of mortality tables (also
called life tables), mainly
used for life insurance. Additionally it provides a plot function to compare
multiple life tables either directly using the absolute mortalities in
log-linear plots or using relative mortalities as percentages of a given
reference table.
### Types of Life Tables
Provided types of mortality tables are:
* Base class
: Class `mortalityTable`
* Period life table
: Class `mortalityTable.period (ages, deathProbs, ..., baseYear=2000)`
: Death probabilities observed / predicted for one observation year;
No dependency on the bith year is assumed.
* Cohort life table using age-specific trends
: Class `mortalityTable.trendProjection`
: Death probabilities of a given base year are projected into the future
using age-specific trends $\lambda_x$. The death probability of an $x$-year old in year
`baseYear + n` is calculated as:
$$q_x^{(baseYear+n)} = q_x^{(baseYear)} \cdot e^{-n\cdot\lambda_x}$$
: Consequently, the death probabilities for a person born in year `YOB` can be calculated as
$$q_x^{YOB} = q_x^{(base)} \cdot e^{-(YOB+x-baseYear)\cdot \lambda_x}$$
* Cohort life table approximation using age shift
: Class `mortalityTable.ageShift`
: Death probabilities for cohort $YOB$ are obtained by using death probabilities
for cohort $X$ and modifying the technical age with a birth-year dependent shift:
$$q_x^{YOB} = q_{x+shift(YOB)}^{(base)}$$
* Mixed life table
: Class `mortalityTable.mixed`
: Arithmetic mean of two life tables with given weights. This approach is
often used to generate unisex life tables by mixing male and female
mortalities with given weights (e.g. 70:30 or 40:60)
* Cohort life table using age-specific improvement factors
: Class `mortalityTable.improvementFactors`
: Project base life table using age-specific improvement factors.
* Pension table
: Class `pensionTable`
: Four states: active, early retirement / invalidity, old-age pension, death (with optional widow)
: All slots describe the corresponding transition probabilities by a
: `mortalityTable`-derived object.
## Loading the MortalityTables package
```
library("MortalityTables")
```
## Provided Data Sets
The package provides several real-life life tables published by census bureaus
and actuarial associations around the world. You can use the function
`mortalityTables.list` to list all available datasets (if no argument is given)
or all datasets that match the given pattern (wildcard character is *). You can
then use `mortalityTables.load` to load either one single data set or all
datasets that match the pattern.
```
# list all available data sets
mortalityTables.list()
# list all datasets for Austria
mortalityTables.list("Austria_*")
# Load the German annuity table DAV 2004-R
mortalityTables.load("Germany_Annuities_DAV2004R")
# Load all Austrian data sets
mortalityTables.load("Austria_*")
```
## Further information
For further information on how to use the package, see the "Using the MortalityTables Package" vignette.