Skip to content
Snippets Groups Projects
Commit f65f0af3 authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

Implement US 1994 GAM/GAR and 1996 IAM annuity tables as data sets

parent d783a1ae
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -457,70 +457,82 @@ save(USA1983GAM,
##############################################################################h#
USA1994GAM.data = read_excel(
US.annuities.file, sheet = "1994 GAR",
US.annuities.file, sheet = "1994 GAM - GAR",
col_names = c("age","qx", "AAx", "qy", "AAy", "qxBasic", "qyBasic"),
skip = 4)
USA1994GAM.male.basic = mortalityTable.period(
name = "USA 1994 GAM basic (unloaded), male",
ages = USA1994GAM.data$age,
deathProbs = USA1994GAM.data$qxBasic,
data = list(
dim = list(table = "1994 GAM", sex = "m", collar = "group Mortality", type = "Rententafel", data = "unloaded", year = 1994)
)
)
USA1994GAM.female.basic = mortalityTable.period(
name = "USA 1994 GAM basic (unloaded), female",
ages = USA1994GAM.data$age,
deathProbs = USA1994GAM.data$qyBasic,
data = list(
dim = list(table = "1994 GAM", sex = "f", collar = "group Mortality", type = "Rententafel", data = "unloaded", year = 1994)
)
)
skip = 6)
USA1994GAR.male = mortalityTable.improvementFactors(
name = "USA 1994 GAR, male",
ages = USA1994GAM.data$age,
deathProbs = USA1994GAM.data$qx,
improvement = USA1994GAM.data$AAx,
data = list(
dim = list(table = "1994 GAR", sex = "m", collar = "group Reserving", type = "Rententafel", data = "loaded", year = 1994)
)
)
USA1994GAM = array(
data = c(
mortalityTable.period(
name = "USA 1994 GAM basic, male",
ages = USA1994GAM.data$age,
deathProbs = USA1994GAM.data$qxBasic,
data = list(
dim = list(table = "1994 GAM Basic", sex = "m", collar = "group Mortality", type = "Rententafel", data = "unloaded", year = 1994, country = "USA")
)
),
USA1994GAR.female = mortalityTable.improvementFactors(
name = "USA 1994 GAR, female",
ages = USA1994GAM.data$age,
deathProbs = USA1994GAM.data$qy,
improvement = USA1994GAM.data$AAy,
data = list(
dim = list(table = "1994 GAR", sex = "f", collar = "group Reserving", type = "Rententafel", data = "loaded", year = 1994)
)
)
mortalityTable.period(
name = "USA 1994 GAM basic, female",
ages = USA1994GAM.data$age,
deathProbs = USA1994GAM.data$qyBasic,
data = list(
dim = list(table = "1994 GAM Basic", sex = "f", collar = "group Mortality", type = "Rententafel", data = "unloaded", year = 1994, country = "USA")
)
),
mortalityTable.period(
name = "USA 1994 GAM, male",
ages = USA1994GAM.data$age,
deathProbs = USA1994GAM.data$qxBasic,
data = list(
dim = list(table = "1994 GAM", sex = "m", collar = "group Mortality", type = "Rententafel", data = "loaded", year = 1994, country = "USA")
)
),
USA1994GAM = array(
data = c(
USA1994GAM.male.basic, USA1994GAM.female.basic
mortalityTable.period(
name = "USA 1994 GAM, female",
ages = USA1994GAM.data$age,
deathProbs = USA1994GAM.data$qyBasic,
data = list(
dim = list(table = "1994 GAM", sex = "f", collar = "group Mortality", type = "Rententafel", data = "loaded", year = 1994, country = "USA")
)
)
),
dim = c(2),
dimnames = list(Sex = c("m", "f"))
dim = c(2, 2),
dimnames = list(Sex = c("m", "f"), type = c("basic", "loaded"))
)
USA1994GAR = array(
data = c(
USA1994GAR.male, USA1994GAR.female
mortalityTable.improvementFactors(
name = "USA 1994 GAR, male",
ages = USA1994GAM.data$age,
deathProbs = USA1994GAM.data$qx,
improvement = USA1994GAM.data$AAx,
data = list(
dim = list(table = "1994 GAR", sex = "m", collar = "group Reserving", type = "Rententafel", data = "loaded", year = 1994, country = "USA")
)
),
mortalityTable.improvementFactors(
name = "USA 1994 GAR, female",
ages = USA1994GAM.data$age,
deathProbs = USA1994GAM.data$qy,
improvement = USA1994GAM.data$AAy,
data = list(
dim = list(table = "1994 GAR", sex = "f", collar = "group Reserving", type = "Rententafel", data = "loaded", year = 1994, country = "USA")
)
)
),
dim = c(2),
dimnames = list(Sex = c("m", "f"))
)
save(USA1994GAM, USA1994GAM.male.basic, USA1994GAM.female.basic,
save(USA1994GAM,
file = here::here("data", "USA1994GAM.RData")
)
save(USA1994GAR, USA1994GAR.male, USA1994GAR.female,
save(USA1994GAR,
file = here::here("data", "USA1994GAR.RData")
)
......@@ -528,6 +540,65 @@ save(USA1994GAR, USA1994GAR.male, USA1994GAR.female,
##############################################################################h#
### 1996 IAM individual annuity mortality table (period table) ####
##############################################################################h#
USA1996IAM.data = read_excel(
US.annuities.file, sheet = "1996 IAM",
col_names = c("age","qx", "qy", "qxBasic", "qyBasic"),
skip = 6)
USA1996IAM = array(
data = c(
mortalityTable.period(
name = "USA 1996 IAM basic, male",
ages = USA1996IAM.data$age,
deathProbs = USA1996IAM.data$qxBasic,
data = list(
dim = list(table = "1996 IAM Basic", sex = "m", collar = "Mortality", type = "Rententafel", data = "unloaded", year = 1996, country = "USA")
)
),
mortalityTable.period(
name = "USA 1996 IAM basic, female",
ages = USA1996IAM.data$age,
deathProbs = USA1996IAM.data$qyBasic,
data = list(
dim = list(table = "1996 IAM Basic", sex = "f", collar = "Mortality", type = "Rententafel", data = "unloaded", year = 1996, country = "USA")
)
),
mortalityTable.period(
name = "USA 1996 IAM, male",
ages = USA1996IAM.data$age,
deathProbs = USA1996IAM.data$qxBasic,
data = list(
dim = list(table = "1996 IAM", sex = "m", collar = "Mortality", type = "Rententafel", data = "loaded", year = 1996, country = "USA")
)
),
mortalityTable.period(
name = "USA 1996 IAM, female",
ages = USA1996IAM.data$age,
deathProbs = USA1996IAM.data$qyBasic,
data = list(
dim = list(table = "1996 IAM", sex = "f", collar = "Mortality", type = "Rententafel", data = "loaded", year = 1996, country = "USA")
)
)
),
dim = c(2, 2),
dimnames = list(Sex = c("m", "f"), type = c("basic", "loaded"))
)
save(USA1996IAM,
file = here::here("data", "USA1996IAM.RData")
)
#################################################################################h#
### Annuity 2000 Basic (unloaded) and Mortality (loaded) Tables, PERIOD tables ####
#################################################################################h#
......
No preview for this file type
No preview for this file type
File added
......@@ -992,6 +992,7 @@ https://aktuar.de/unsere-themen/lebensversicherung/Seiten/default.aspx
## Population Mortality
https://www.cso.ie/en/statistics/birthsdeathsandmarriages/archive/irishlifetables1926to2012/
https://www.cso.ie/en/releasesandpublications/er/ilt/irishlifetablesno172015-2017/
* gender-specific period tables
* male+female, ages 0--105, earlier tables gave only $l_x$ and $e_x$, but no $q_x$
......@@ -1539,21 +1540,26 @@ plotMortalityTables(
* 1983 IAM (Table a) (Individual Annuity)
* Source: Society of Actuaries, “Report of the Committee to Recommend a New Mortality Table Basis for Individual Annuity Valuation (Derivation of the 1983 Table a)”, Transactions of the Society of Actuaries, Vol. 33. (1981). http://www.soa.org/Library/Research/Transactions-Of-Society-Of-Actuaries/1981/January/tsa81v3325.pdf
* 1983 GAM (Group Annuity Mortality)
* Source: Committee on Annuities, “Development of the 1983 Group Annuity Mortality Table”, Transaction of the Society of Actuaries Vol. XXXV, pp.859-899 (1983). http://www.soa.org/Library/Research/Transactions-Of-Society-Of-Actuaries/1983/January/tsa83v3527.pdf
* Source: Committee on Annuities, “Development of the 1983 Group Annuity Mortality Table”, Transactions of the Society of Actuaries Vol. XXXV, pp.859-899 (1983). http://www.soa.org/Library/Research/Transactions-Of-Society-Of-Actuaries/1983/January/tsa83v3527.pdf
* 1994 GAR (Group Annuity Reserving), 1994 GAM, 1994 GAM Basic
* Source: Society of Actuaries
Group Annuity Valuation Table Task Force, "1994 Group Annuity Mortality Table and 1994 Group Annuity Reserving Table", Transactions of the Society of Actuaries, Vol.47, 1995, pp.865-872. https://www.soa.org/globalassets/assets/library/research/transactions-of-society-of-actuaries/1990-95/1995/january/tsa95v4722.pdf
* 1996 IAM (Individual Annuity Mortality)
* Source: Robert J. Johansen, “Review of Adequacy of 1983 Individual annuity Mortality Table”, Transactions of the Society of Actuaries Vol. XLVII (1995), http://www.soa.org/Library/Research/Transactions-Of-Society-Of-Actuaries/1990-95/1995/January/tsa95v479.pdf
* 1994 GAR (Group Annuity Reserving)
* 1996 IAM (Individual Annuity Mortality)
* 2012 IAR (Individual Annuity Reserving)
* Annuity 2000
* Annuity 2000 Mortality Table
* 2012 Individual Annuity Reserve Valuation Table (2012 IAR = 2012 IAM Period Table + Scale G2
* 2012 IAM Basic table with selection factors $F_x$ (when little or no experience is available on a business sgment (VM-21 Section 11 B.3)
* Source: Society of
Actuaries Committee on Life Insurance Research and shown on page 240 of Volume XLVII of the
Transactions of the Society of Actuaries (1995)
* 2012 IAR (Individual Annuity Reserving) Valuation Table (2012 IAR = 2012 IAM Period Table + Scale G2
* 2012 IAM Basic table with selection factors $F_x$ (when little or no experience is available on a business segment (VM-21 Section 11 B.3)
* GAM-94 generational tables using Scale AA
* UP-94 table with 7% margin
Usage in R:
```{r AnnuitiesUS}
......@@ -1568,13 +1574,15 @@ plotMortalityTables(
USA1971GAM,
USA1983IAM,
USA1983GAM,
USA1994GAR,
USA1994GAM,
USA1994GAR,
USA1996IAM,
USAAnnuity2000,
aes = aes(color = table),
legend.position = "bottom",
legend.key.width = unit(2, "lines")
legend.key.width = unit(2, "lines"),
Period = 2020
) + facet_grid(sex~data)
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment