R package implementing actuarial mortality tables (period and cohort life tables)

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.

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.

`library("MortalityTables")`

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_*")
```

For further information on how to use the package, see the “Using the MortalityTables Package” vignette.

- Version 1.0 (30.3.2018): Initial Submission to CRAN
- Version 2.0 (27.8.2020):
- Add various convenience functions to derive tables from data, implement dimensional information

- Version 2.0.1 (4.9.2020):
- Fix performance issues with mortalityTables.list and mortalityTables.load

- Version 2.0.2 (12.12.2020):
- Add/fix some sample tables
- gracefully handle missing suggested packages
- First version of vignette about international tables