library(tidyverse, quietly = TRUE)
#> ── Attaching packages ───────────────────────────────────────────────────────────────────────────────── tidyverse 1.3.0 ──
#> ✓ ggplot2 3.3.2 ✓ purrr 0.3.4
#> ✓ tibble 3.0.3 ✓ dplyr 1.0.2
#> ✓ tidyr 1.1.2 ✓ stringr 1.4.0
#> ✓ readr 1.3.1 ✓ forcats 0.5.0
#> ── Conflicts ──────────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
#> x dplyr::filter() masks stats::filter()
#> x dplyr::lag() masks stats::lag()
library(MortalityTables)
mortalityTables.load("Austria_Census")
Annuity tables in Austria are traditionally published by the Actuarial Association of Austria (AVÖ).
[TODO: Get actual table data and publication]
EROM/F 85: gender-specific period tables, projected to year 2020 to account for mortality improvement
EROM/F G 1950: gender-specific cohort tables, base cohort 1950 with age-shifting to account for mortality improvement
Derived from population mortalities 1980/82 (improvements from population mortalities 1949/51 and 1980/82), with annuitants’ selection factors applied
First-order table without explicit security loadings
Usage: Individual Annuity pricing and reserving
Publisher: Aktuarvereinigung Österreichs (AVÖ), https://avoe.at/
Target collective: Individual annuitants
Usage with the MortalityTables
package:
mortalityTables.load("Austria_Annuities_EROMF")
EROM85.male
EROF85.female
EROM.G1950.male
EROM.G1950.male.av
EROF.G1950.female
EROF.G1950.female.av
gender-specific cohort tables with age-specific trend to account for mortality improvement (approximation via age-shifting given alternatively)
Derived from population mortalities 1990/92 with annuitants’ selection factors applied
First-order table without explicit security loadings
Usage: Individual and Group Annuity pricing and reserving; Minimum required by Austrian Financial Authority until publication of successor table AVÖ 2005R
Publisher: Aktuarvereinigung Österreichs (AVÖ), https://avoe.at/
Target collective: Individual and group annuitants
Usage with the MortalityTables
package:
mortalityTables.load("Austria_Annuities_AVOe1996R")
AVOe1996R
AVOe1996R.male
AVOe1996R.male.av325
AVOe1996R.male.group
AVOe1996R.female
AVOe1996R.female.av325
AVOe1996R.female.group
gender-specific cohort tables with age-specific trend to account for mortality improvement (approximation via age-shifting given alternatively)
Derived from population mortalities 2000/02 with annuitants’ selection factors applied
First-order table with explicit security loadings and second-order table without security loadings
Usage: Individual and Group Annuity pricing and reserving; Current minimum required by Austrian Financial Authority
Publisher: Aktuarvereinigung Österreichs (AVÖ), https://avoe.at/
Target collective: Individual and group annuitants
Usage with the MortalityTables
package:
mortalityTables.load("Austria_Annuities_AVOe2005R")
AVOe2005R
AVOe2005R.male
AVOe2005R.male.group
AVOe2005R.male.av
AVOe2005R.male.group.av
AVOe2005R.male.unloaded
AVOe2005R.male.nodamping
AVOe2005R.male.nodamping.group
AVOe2005R.male.nodamping.unloaded
AVOe2005R.female
AVOe2005R.female.group
AVOe2005R.female.av
AVOe2005R.female.group.av
AVOe2005R.female.unloaded
AVOe2005R.female.nodamping
AVOe2005R.female.nodamping.group
AVOe2005R.female.nodamping.unloaded
AVOe2005R.unisex
AVOe2005R.unisex.group
AVOe2005R.unisex.av
AVOe2005R.unisex.group.av
AVOe2005R.unisex.nodamping
AVOe2005R.unisex.nodamping.group
plotMortalityTables(RR67, EROM85.male, EROF85.female, EROM.G1950.male.av, EROF.G1950.female.av, AVOe1996R[, "Einzel"], AVOe2005R[c("m", "w"), "Einzel","loaded"],
aes = aes(color = year), Period = 2020, title = "Austrian Annuity Tables, Period 2020",
legend.position = "right"
) + facet_grid(sex ~ .)
plotMortalityTables(RR67, EROM85.male, EROF85.female, EROM.G1950.male.av, EROF.G1950.female.av, AVOe1996R[, "Einzel"],AVOe2005R[c("m", "w"), "Einzel","loaded"],
aes = aes(color = year), YOB = 1965, title = "Austrian Annuity Tables, Cohort 1965",
legend.position = "right"
) + facet_grid(sex ~ .)
MortalityTables
package:MortalityTables
package:MortalityTables
package:mortalityTables.load("Austria_PopulationMCMC")
#> Loading required package: reshape2
#>
#> Attaching package: 'reshape2'
#> The following object is masked from 'package:tidyr':
#>
#> smiths
#> Loading required package: pracma
#>
#> Attaching package: 'pracma'
#> The following object is masked from 'package:purrr':
#>
#> cross
#> Loading required package: MortalityLaws
mort.AT.MCMC
MortalityTables
package:plotMortalityTables(
mort.AT.census[c("m", "w"),],
aes = aes(color = table),
legend.position = "right", legend.key.width = unit(2, "lines"),
title = "Comparison of Austrian Census Mortalities"
) + labs(color = NULL) + facet_grid(sex ~ .)
plotMortalityTables(
mort.AT.census[c("m", "w"),"2011"],
mort.AT.forecast %>% mT.setDimInfo(table = "Official forecast"),
mort.AT.MCMC[c("m", "w")] %>% mT.setDimInfo(table = "MCMC forecast"),
YOB = 1980,
aes = aes(color = table),
legend.position = "right", legend.key.width = unit(2, "lines"),
title = "Projected Austrian Population Mortalities, YOB 1980"
) + labs(color = NULL) + facet_grid(sex ~ .)
plotMortalityTables(
mort.AT.observed.male,
mort.AT.observed.female,
mort.AT.observed.unisex,
YOB = 1940,
aes = aes(color = sex),
legend.position = "right", legend.key.width = unit(2, "lines"),
title = "Historic Austrian Population Mortalities (yearly raw observations), YOB 1940"
)
#> Warning in deathProbabilities(t, YOB = YOB): deathProbabilities: Not all observation years 1940-2040 of observed mortalityTable are available, using closest observations.
#> Available periods: 1947-2017
#> Warning in deathProbabilities(t, YOB = YOB): deathProbabilities: Not all observation years 1940-2040 of observed mortalityTable are available, using closest observations.
#> Available periods: 1947-2017
#> Warning in deathProbabilities(t, YOB = YOB): deathProbabilities: Not all observation years 1940-2040 of observed mortalityTable are available, using closest observations.
#> Available periods: 2002-2017
plotMortalityTables(
EttlPagler.male %>% pT.getSubTable("qx"),
AVOe1999P["m",,"IP", "P"] %>% pT.getSubTable("qx"),
AVOe2008P["m",,"IP", "P"] %>% pT.getSubTable("qx"),
AVOe2018P["m",,"IPRG"] %>% pT.getSubTable("qx"),
legend.position = c(0.01, 0.99), legend.justification = c(0,1),
title = "Comparison of Austrian Pension Tables"
) + labs(color = NULL)
plotMortalityTables(
EttlPagler.male %>% pT.getSubTable("hx"),
AVOe1999P["m",,"IP", "P"] %>% pT.getSubTable("hx"),
AVOe2008P["m",,"IP", "P"] %>% pT.getSubTable("hx"),
AVOe2018P["m",,"IPRG"] %>% pT.getSubTable("hx"),
# legend.position = c(0.01, 0.99), legend.justification = c(0,1),
title = "Comparison of Austrian Pension Tables",
log = FALSE, legend.position = "bottom"
) + labs(color = NULL)
MortalityTables
package:mortalityTables.load("Austria_VUGesamtbestand_2012-16")
VU.Gesamtbestand
VU.Gesamtbestand.Storno
VU.Gesamtbestand.Detail
plotMortalityTables(VU.Gesamtbestand, legend.position = c(0.01, 0.99), legend.justification = c(0,1), title = "Austrian insurance portfolio moratlities 2012-16")
Source: G. Friesacher, Th. Spanninger, R. Kainhofer: Gesamtbestandstafel – Lebensversicherungsbestand in Österreich von 2012 bis 2016, Arbeitskreis Rechnungsgrundlagen, Aktuarvereinigung Österreichs (AVÖ), 24. Oktober 2019. https://avoe.at/referenzsterbetafel-und-stornovektor-des-gesamtbestands-2012-16/
MortalityTables
package:plotMortalityTables(PKBestandstafel.2010.16[,,"qx", "raw"], legend.position = "right", title = "Austrian pension fund mortalities 2010-16", aes = aes(color = type)) +
facet_grid(sex ~ .) + labs(color = "Collective")
Tables in use:
[TODO: Get table data!] * Source: Lühr, K.-H.: Neue Sterbetafeln für die Rentenversicherung, Blätter DGVM XVII (1986), 485–513. https://link.springer.com/article/10.1007/BF02808817
MortalityTables
package:mortalityTables.load("Germany_Annuities_DAV1994R")
DAV1994R.male
DAV1994R.male.av
DAV1994R.female
DAV1994R.female.av
MortalityTables
package: (only Aggregate tables)plotMortalityTables(
DAV1994R.male, DAV1994R.female,
DAV2004R.male, DAV2004R.male.2Ord,
DAV2004R.female, DAV2004R.female.2Ord,
Period = 2000, aes = aes(linetype = sex, color = interaction(year, data)),
legend.position = c(0.01, 0.99), legend.justification = c(0,1), legend.key.width = unit(2, "lines"),
title = "Comparison of German Annuity Tables, Period 2000"
) + labs(linetype = NULL, color = NULL)