library(tidyverse, quietly = TRUE)
#> Warning: Paket 'tidyverse' wurde unter R Version 4.2.3 erstellt
#> Warning: Paket 'ggplot2' wurde unter R Version 4.2.3 erstellt
#> Warning: Paket 'tibble' wurde unter R Version 4.2.3 erstellt
#> Warning: Paket 'tidyr' wurde unter R Version 4.2.3 erstellt
#> Warning: Paket 'readr' wurde unter R Version 4.2.3 erstellt
#> Warning: Paket 'purrr' wurde unter R Version 4.2.3 erstellt
#> Warning: Paket 'dplyr' wurde unter R Version 4.2.3 erstellt
#> Warning: Paket 'stringr' wurde unter R Version 4.2.3 erstellt
#> Warning: Paket 'forcats' wurde unter R Version 4.2.3 erstellt
#> Warning: Paket 'lubridate' wurde unter R Version 4.2.3 erstellt
#> ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
#> ✔ dplyr 1.1.3 ✔ readr 2.1.4
#> ✔ forcats 1.0.0 ✔ stringr 1.5.0
#> ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
#> ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
#> ✔ purrr 1.0.2
#> ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
#> ✖ dplyr::filter() masks stats::filter()
#> ✖ dplyr::lag() masks stats::lag()
#> ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
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]
mortalityTables.load("Austria_Annuities_RR67")
plotMortalityTables(RR67, mort.AT.census.1961.male)
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.load("Austria_Census")
mort.AT.census#> Jahr
#> Geschlecht 1869
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 1880
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 1890
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 1900
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 1910
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 1931
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 1951
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 1961
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 1971
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 1981
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 1991
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u NA
#> Jahr
#> Geschlecht 2001
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u <S4 class 'mortalityTable.mixed' [package "MortalityTables"] with 9 slots>
#> Jahr
#> Geschlecht 2011
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 2021
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> u <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
MortalityTables
package:mortalityTables.load("Austria_PopulationForecast")
mort.AT.forecastmortalityTables.load("Austria_PopulationObserved")
MortalityTables
package:mortalityTables.load("Austria_PopulationMCMC")
#> Lade nötiges Paket: reshape2
#> Warning: Paket 'reshape2' wurde unter R Version 4.2.3 erstellt
#>
#> Attache Paket: 'reshape2'
#> Das folgende Objekt ist maskiert 'package:tidyr':
#>
#> smiths
#> Lade nötiges Paket: pracma
#> Warning: Paket 'pracma' wurde unter R Version 4.2.3 erstellt
#>
#> Attache Paket: 'pracma'
#> Das folgende Objekt ist maskiert 'package:purrr':
#>
#> cross
#> Lade nötiges Paket: MortalityLaws
#> Warning: Paket 'MortalityLaws' wurde unter R Version 4.2.3 erstellt
mort.AT.MCMC
MortalityTables
package:mortalityTables.load("Austria_PopulationObserved")
mort.AT.observed.male
mort.AT.observed.female mort.AT.observed.unisex
plotMortalityTables(
c("m", "w"),],
mort.AT.census[
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(
c("m", "w"),"2011"],
mort.AT.census[%>% mT.setDimInfo(table = "Official forecast"),
mort.AT.forecast c("m", "w")] %>% mT.setDimInfo(table = "MCMC forecast"),
mort.AT.MCMC[
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-2022
#> Warning in deathProbabilities(t, YOB = YOB): deathProbabilities: Not all observation years 1940-2040 of observed mortalityTable are available, using closest observations.
#> Available periods: 1947-2022
#> Warning in deathProbabilities(t, YOB = YOB): deathProbabilities: Not all observation years 1940-2040 of observed mortalityTable are available, using closest observations.
#> Available periods: 2002-2022
# pensionTables.load("Austria_EttlPagler")
# EttlPagler.male
# EttlPagler.female
# pensionTables.load("Austria_AVOe1999P")
# AVOe1999P
# pensionTables.load("Austria_AVOe2008P")
# AVOe2008P
# pensionTables.load("Austria_AVOe2018P")
# AVOe2018P
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:# mortalityTables.load("Austria_PK-Bestand_2010-16")
# PKBestandstafel.2010.16
# 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)mortalityTables.load("Germany_Annuities_DAV2004R")
DAV2004R.male.2Ord
DAV2004R.male
DAV2004R.male.av.2Ord
DAV2004R.male.av
DAV2004R.female.2Ord
DAV2004R.female
DAV2004R.female.av.2Ord DAV2004R.female.av
plotMortalityTables(
DAV1994R.male, DAV1994R.female, .2Ord,
DAV2004R.male, DAV2004R.male.2Ord,
DAV2004R.female, DAV2004R.female
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) )
plotMortalityTrend(
DAV1994R.male, DAV1994R.female, .2Ord,
DAV2004R.male, DAV2004R.male.2Ord,
DAV2004R.female, DAV2004R.female
Period = 2000, aes = aes(linetype = sex, color = interaction(year, data)),
legend.position = c(0.99, 0.99), legend.justification = c(1,1), legend.key.width = unit(2, "lines"),
title = "Age-specific trends of German Annuity Tables, Period 2000"
+ labs(linetype = NULL, color = NULL) + theme(legend.box.just = "right") )
MortalityTables
package:mortalityTables.load("Germany_Census")
mort.DE.census#> Jahr
#> Geschlecht 1871/81
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 1881/90
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 1891/1900
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 1901/10
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 1910/11
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 1924/26
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 1932/34
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 1949/51
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 1960/62
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 1970/72
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> Jahr
#> Geschlecht 1986/88
#> m <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
#> w <S4 class 'mortalityTable.period' [package "MortalityTables"] with 8 slots>
plotMortalityTables(
mort.DE.census,
aes = aes(color = table),
legend.position = "right", legend.key.width = unit(2, "lines"),
title = "Comparison of German Census Mortalities"
+ labs(color = NULL) + facet_grid(sex ~ .) )
[TODO]
gender-specific cohort table for German whole life insurances
Based on the German Population Mortality Table 1986/88
Generated: Deutsche Aktuarvereinigung (DAV), “Life-Insurance” committee
Publisher: Deutsche Aktuarvereinigung (DAV), https://aktuar.de/unsere-themen/lebensversicherung/Seiten/default.aspx
Usage with the MortalityTables
package:
mortalityTables.load("Germany_Endowments_DAV1994T")
DAV1994T.male.2Ord
DAV1994T.male
DAV1994T.female.2Ord DAV1994T.female
gender-specific cohort table for German whole life insurances
Based on reinsurance data 2001–2004 (47 German insurance companies)
Generated: Deutsche Aktuarvereinigung (DAV), “Life-Insurance” committee
Publisher: Deutsche Aktuarvereinigung (DAV), https://aktuar.de/unsere-themen/lebensversicherung/Seiten/default.aspx
Minimum standard prescribed by the DAV to be used for reserving unit-linked, endowment and whole life insurances in Germany
Usage with the MortalityTables
package:
mortalityTables.load("Germany_Endowments_DAV2008T")
DAV2008T.male.2Ord
DAV2008T.male
DAV2008T.male.nonsmoker.2Ord
DAV2008T.male.nonsmoker
DAV2008T.male.smoker.2Ord
DAV2008T.male.smoker
DAV2008T.female.2Ord
DAV2008T.female
DAV2008T.female.nonsmoker.2Ord
DAV2008T.female.nonsmoker
DAV2008T.female.smoker.2Ord DAV2008T.female.smoker
plotMortalityTables(
.2Ord, DAV2008T.male, DAV2008T.male.2Ord, DAV2008T.male.nonsmoker, DAV2008T.male.smoker,
DAV1994T.male, DAV1994T.male.2Ord, DAV2008T.female, DAV2008T.female.2Ord, DAV2008T.female.nonsmoker, DAV2008T.female.smoker,
DAV1994T.female, DAV1994T.femaleaes = aes(color = interaction(year, collar), linetype = data), legend.position = "right", legend.key.width = unit(1.5, "lines"),
title = "German whole life mortality tables"
+ facet_grid(sex ~ .) )
[TODO] https://aktuar.de/unsere-themen/lebensversicherung/Seiten/default.aspx
[TODO] https://aktuar.de/unsere-themen/lebensversicherung/Seiten/default.aspx
[TODO] https://aktuar.de/unsere-themen/lebensversicherung/Seiten/default.aspx
[TODO] https://aktuar.de/unsere-themen/lebensversicherung/Seiten/default.aspx
[TODO]
[TODO]
[TODO]
[TODO]
[TODO]
[TODO]
https://aktuar.de/unsere-themen/lebensversicherung/Seiten/default.aspx
[TODO]
Source: [https://content.naic.org/sites/default/files/pbr_data_valuation_manual_current_edition.pdf] (Appendix M)
[TODO]
Source: Society of Actuaries. RP-2014 Mortality Tables Report. Techn. Ber. Okt. 2014. URL: https://www.soa.org/experience-studies/2014/research-2014-rp/.
Source: Society of Actuaries. Mortality Improvement Scale MP-2014 Report. Techn. Ber. Okt. 2014. URL: https://www.soa.org/experience-studies/2014/research-2014-mp/.