A Framework for Various Types of Mortality / Life Tables

Classes to implement and plot cohort life tables for actuarial calculations. In particular, birth-year dependent mortality tables using a yearly trend to extrapolate from a base year are implemented, as well as period life table, cohort life tables using an age shift, and merged life tables.

Author: Reinhold Kainhofer, [email protected]

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


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

# list all datasets for Austria

# Load the German annuity table DAV 2004-R

# Load all Austrian data sets

Further information

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


Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.0 by Reinhold Kainhofer, 2 years ago


Browse source code at https://github.com/cran/MortalityTables

Authors: Reinhold Kainhofer [aut, cre]

Documentation:   PDF Manual  

GPL (>= 2) license

Depends on ggplot2, methods, scales, utils

Suggests lifecontingencies, knitr, rmarkdown

See at CRAN