From 54dd90b0a3c14ec8fcacd744ac8ceee53caa1a3e Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Fri, 5 Mar 2021 21:47:01 +0100 Subject: [PATCH] USA 2012 IAR: Properly round projected mortalities to six decimal digits --- .../US/create_MortalityTables_US_Annuities.R | 4 ++-- data/USA2012IAR.RData | Bin 2730 -> 3148 bytes .../using-the-mortalityTables-package.Rmd | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/data-raw/US/create_MortalityTables_US_Annuities.R b/data-raw/US/create_MortalityTables_US_Annuities.R index 96a1632..f5ffaef 100644 --- a/data-raw/US/create_MortalityTables_US_Annuities.R +++ b/data-raw/US/create_MortalityTables_US_Annuities.R @@ -723,6 +723,7 @@ USA2012IAR = array( ages = USA2012IAM.data$age, deathProbs = USA2012IAM.data$qx, improvement = USA2012IAM.data$G2x, + modification = function(q) { round(q, 6) }, data = list( dim = list(table = "2012 IAR", sex = "m", collar = "Mortality", type = "Rententafel", data = "loaded", year = 2012, country = "USA") ) @@ -733,6 +734,7 @@ USA2012IAR = array( ages = USA2012IAM.data$age, deathProbs = USA2012IAM.data$qy, improvement = USA2012IAM.data$G2y, + modification = function(q) { round(q, 6) }, data = list( dim = list(table = "2012 IAR", sex = "w", collar = "Mortality", type = "Rententafel", data = "loaded", year = 2012, country = "USA") ) @@ -742,8 +744,6 @@ USA2012IAR = array( dimnames = list(Sex = c("m", "f")) ) - - save(USA2012IAM.basic, file = here::here("data", "USA2012IAM.basic.RData")) save(USA2012IAM, file = here::here("data", "USA2012IAM.RData")) save(USA2012IAR, file = here::here("data", "USA2012IAR.RData")) diff --git a/data/USA2012IAR.RData b/data/USA2012IAR.RData index 9290a8c602373abc348f81e5a519255025273db5..ccf41b196a4d7cec6e7017d7a7e465f17d62d929 100644 GIT binary patch literal 3148 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 literal 2730 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
%71<b+y=c2|e{Jg#PDjb^b?=zO zUVffd{ck^m^(7rQ!)3BTSJQXjtt{dFacdgCT%1@_LR#;|#Kl!7G_)mz<3+h5!&WzY z>K}J1+x<Dc?XR%n^H0vJmACRMTwl9m-;+I(PqdGUtdBRB<1#annz!x+<HJA4?&?*E zCrrJ1sY79(sYv6ob&uZ325jo9S$8PKu!do~neL`r?Ad8K?`D3^;9m1~eWdZ@WnwuO z7R~GP{o2$O^XlQh^p^os|L7+R{S>KLvudJ=dIsN>E1D~7ie|9iKDn0jV`cEdcMp$V z`1&vRLV|&2y_&0}op$t}!{>u-6V7j$Cvx}l^aUsT_HEr<AZg;h`|P{N>)UIuntT3# zx3>B3-f7uoB5NA;r|sFYuTWpCuVUGoUb|;}$D_<b?;6&ysrSVc+OIs{I+@x2`#ifm zmUNCh`<XRAG`H-VeRbir%gnh`?rba7yZkUF&|%Z-t?>^QCEBXL&9teR`%~qXPc+B$ zy!VNB&dg(*o~hF=_5JCEe@{OxJ70V3py=+0jfbxGHue_BXZ_t98CjWOGG*1ivUO^8 z_nsbF`zt%f*{<-#$+l}Q&oXkZPDx{6diZtU*0vPmmj!G7$h!pQ{@nPl{mV+@FZb2X zEp6FvU+7hQ-`+B%Z)*N`{@|rKYDeE~bu({yQ(x{XQM}_x8{c;)nZLq}^Hly_{F5<h RuHmO&qTUQ)e;ef(7yx@@Tsr^& diff --git a/vignettes/using-the-mortalityTables-package.Rmd b/vignettes/using-the-mortalityTables-package.Rmd index 4b17a1d..e50bee6 100644 --- a/vignettes/using-the-mortalityTables-package.Rmd +++ b/vignettes/using-the-mortalityTables-package.Rmd @@ -463,6 +463,24 @@ AVOe2005R.female.mod@name = "Modified table (lower bound of 3%)" plot(AVOe2005R.female, AVOe2005R.female.mod, title = "Original and modified table") ``` +## Rounding death probabilities + +Some tables like the US 2021 IAR table with projection scale G2 prescribe a certain +rounding of death probabilities. In the 2012 IAR case, the $q_x$ are to be rounded +to six decimal digits after applying the projection scale to the basic 2012 mortalities. + +The `modification` slot of the `mortalityTable` class can be used for this case, too: + +```{r} +mortalityTable.improvementFactors( + name = "USA 2012 IAR, male", + ages = USA2012IAR$m@ages, + deathProbs = USA2012IAR$m@deathProbs, + improvement = USA2012IAR$m@improvement, + modification = function(q) { round(q, 6) } +) +``` + # Creating mortality tables from data and modifying them using various helper functions The package MortalityTables not only provides the data structures and some -- GitLab