diff --git a/DESCRIPTION b/DESCRIPTION index 53403f352e5316967e8e272695f1135aa212ffd5..211a12fd27bfccb8573728671799bc0c49868fb1 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,9 +1,12 @@ -Package: ValuationTables +Package: LifeInsuranceContracts Type: Package -Title: A framework for cohort life tables and general life insurance contracts -Version: 1.0 -Date: 2016-04-01 -Author: Reinhold Kainhofer <reinhold@kainhofer.com> +Version: 0.1 +Date: 2016-05-07 +Title: A framework for general life insurance contracts, including profit participation, contract changes etc. +Authors@R: c(person("Reinhold", "Kainhofer", role=c("aut", "cre"), email="reinhold@kainhofer.com")) +Author: Reinhold Kainhofer [aut, cre] Maintainer: Reinhold Kainhofer <reinhold@kainhofer.com> -Description: Yet to be written -License: Not yet finally decided, probably GPL v3+ or LGPL or something similar +Depends: R6, ValuationTables, objectProperties +Description: TODO +License: GPL (>= 2) + diff --git a/R/S4classes.R b/R/S4classes.R deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/R/Tables/AVOe_R.xlsx b/R/Tables/AVOe_R.xlsx deleted file mode 100644 index 1e57b8f0169f4fa112da8885708f54192a2e8848..0000000000000000000000000000000000000000 Binary files a/R/Tables/AVOe_R.xlsx and /dev/null differ diff --git a/R/Tables/A_Volkszaehlungen.xlsx b/R/Tables/A_Volkszaehlungen.xlsx deleted file mode 100644 index c0faf655b151f8b37b72396f3fdf3d1c4076a55e..0000000000000000000000000000000000000000 Binary files a/R/Tables/A_Volkszaehlungen.xlsx and /dev/null differ diff --git a/R/Tables/DAV_2004_R.xls b/R/Tables/DAV_2004_R.xls deleted file mode 100644 index 8e9190957e4f858e9ba4de2fab5660fe6d420526..0000000000000000000000000000000000000000 Binary files a/R/Tables/DAV_2004_R.xls and /dev/null differ diff --git a/R/Tables/DAV_R.xls b/R/Tables/DAV_R.xls deleted file mode 100644 index 35c58a73cbc6f062c815a2c0faea2f4334a2de24..0000000000000000000000000000000000000000 Binary files a/R/Tables/DAV_R.xls and /dev/null differ diff --git a/R/Tables/DAV_T.xls b/R/Tables/DAV_T.xls deleted file mode 100644 index 84d3e953b9c89632f1301ee2998609780ede3e2d..0000000000000000000000000000000000000000 Binary files a/R/Tables/DAV_T.xls and /dev/null differ diff --git a/R/Tables/Overview_Tables.ods b/R/Tables/Overview_Tables.ods deleted file mode 100644 index 1a52a0cf19a36a1c5e93546f76698fdae7c2f256..0000000000000000000000000000000000000000 Binary files a/R/Tables/Overview_Tables.ods and /dev/null differ diff --git a/R/Tables/USA_Annuities.xls b/R/Tables/USA_Annuities.xls deleted file mode 100644 index 30ca63d2dfce66ad899391dd3152c8e14e475cae..0000000000000000000000000000000000000000 Binary files a/R/Tables/USA_Annuities.xls and /dev/null differ diff --git a/R/ValuationTables_Austria_Annuities.R b/R/ValuationTables_Austria_Annuities.R deleted file mode 100644 index 5ccfd271eee00c85cee91b30770d3cce5627791e..0000000000000000000000000000000000000000 --- a/R/ValuationTables_Austria_Annuities.R +++ /dev/null @@ -1,201 +0,0 @@ -# frame_files = lapply(sys.frames(), function(x) x$ofile) -# frame_files = Filter(Negate(is.null), frame_files) -# PATH <- dirname(frame_files[[length(frame_files)]]) -# rm(frame_files) -# setwd(dirname(PATH)) - -# setwd("R") -library("openxlsx") - - - -############################################################################### -### RR67 Rententafel für Männer, 3% -############################################################################### - -rr67.data=openxlsx::read.xlsx("Tables/AVOe_R.xlsx", - sheet="OeVM59-61 RR67", startRow = 3, colNames = TRUE); - -rr67=valuationTable.period( - name="ÖVM 59/61 RR67", ages=rr67.data$Alter, deathProbs=rr67.data$qx -); -# rm(rr67.data); - - -############################################################################### -### EROM/EROF 85 and G 1985 (period and age-shifted generation) -############################################################################### - -eromf.data=openxlsx::read.xlsx("Tables/AVOe_R.xlsx", sheet="EROM-F Basistafeln", startRow = 3) - -erom85.male=valuationTable.period( - name="EROM 85, male", ages=eromf.data$Alter, deathProbs=eromf.data$EROM.85 -); -erom85.female=valuationTable.period( - name="EROF 85, female", ages=eromf.data$Alter, deathProbs=eromf.data$EROF.85 -); - -EROM.G1950.male=valuationTable.period( - name="EROM G 1950 Basistafel, male", - ages=eromf.data$Alter, - deathProbs=eromf.data$EROM.G1950, - baseYear=1950 -); -EROF.G1950.female=valuationTable.period( - name="EROF G 1950 Basistafel, female", - ages=eromf.data$Alter, - deathProbs=eromf.data$EROF.G1950, - baseYear=1950 -); - -eromf.data.av=openxlsx::read.xlsx("Tables/AVOe_R.xlsx", sheet="EROM-F G AV", startRow = 3, rowNames = TRUE, colNames = TRUE) - -EROM.G1950.male.av=valuationTable.ageShift( - name="EROM G 1950 mit Altersverschiebung, male", - ages=eromf.data$Alter, - deathProbs=eromf.data$EROM.G1950, - ageShifts=eromf.data.av["Shift.M"], - baseYear=1950 -); -EROF.G1950.female.av=valuationTable.ageShift( - name="EROF G 1950 mit Altersverschiebung, female", - ages=eromf.data$Alter, - deathProbs=eromf.data$EROF.G1950, - ageShifts=eromf.data.av["Shift.F"], - baseYear=1950 -); - - -############################################################################### -# AVÖ 1996R exact (Male, Female), 1st-order only -############################################################################### - -AVOe1996R.exakt.data=openxlsx::read.xlsx("Tables/AVOe_R.xlsx", - sheet="AVOe 1996R exakt", startRow = 3, cols=c(1:6, 8:12)); - -AVOe1996R.exakt.data -AVOe1996R.trend.switching=function(year) { - if (year<=1971) { - 15/(1991-year) - } else if (1971<year && year<1981) { - 1+(year-1981)^2/(year-1991)/20 - } else if (1981<=year && year<=2000) { - 1 - } else if (2000<year && year<2010) { - 1-(year-2000)^2/(year-1991)/20 - } else if (year>=2010) { - 14/(year-1991) - } -} - -AVÖ1996R.male=valuationTable.trendProjection( - name="AVÖ 1996R male", - ages=AVOe1996R.exakt.data$age, baseYear=1991, - deathProbs=AVOe1996R.exakt.data$qx1991 * AVOe1996R.exakt.data$factorM, - trend=AVOe1996R.exakt.data$trendM.long, - trend2=AVOe1996R.exakt.data$trendM.short, - dampingFunction=AVOe1996R.trend.switching -); -AVÖ1996R.female=valuationTable.trendProjection( - name="AVÖ 1996R female", - ages=AVOe1996R.exakt.data$age, baseYear=1991, - deathProbs=AVOe1996R.exakt.data$qy1991 * AVOe1996R.exakt.data$factorF, - trend=AVOe1996R.exakt.data$trendF.long, - trend2=AVOe1996R.exakt.data$trendF.short, - dampingFunction=AVOe1996R.trend.switching -); -AVÖ1996R.male.group=valuationTable.trendProjection( - name="AVÖ 1996R male, group", - ages=AVOe1996R.exakt.data$age, baseYear=1991, - deathProbs=AVOe1996R.exakt.data$qx1991 * AVOe1996R.exakt.data$factorMG, - trend=AVOe1996R.exakt.data$trendM.long, - trend2=AVOe1996R.exakt.data$trendM.short, - dampingFunction=AVOe1996R.trend.switching -); -AVÖ1996R.female.group=valuationTable.trendProjection( - name="AVÖ 1996R female, group", - ages=AVOe1996R.exakt.data$age, baseYear=1991, - deathProbs=AVOe1996R.exakt.data$qy1991 * AVOe1996R.exakt.data$factorFG, - trend=AVOe1996R.exakt.data$trendF.long, - trend2=AVOe1996R.exakt.data$trendF.short, - dampingFunction=AVOe1996R.trend.switching -); - - - -############################################################################### -# AVÖ 2005R exact (Male, Female, unisex) -# gender-specific tables also have 2nd-order tables, unisex only 1st-order table -############################################################################### - -AVOe2005R.exakt.data=openxlsx::read.xlsx("Tables/AVOe_R.xlsx", sheet="AVOe 2005R", startRow = 3, cols=c(1:7, 9:14, 16:18)); - -AVOe2005R.trend.damping=function(t) { - 100*atan(t/100) -} -AVOe2005R_gen=function(nm, probs, trend) { - with( - AVOe2005R.exakt.data, - valuationTable.trendProjection( - name=nm, - ages=age, baseYear=2001, - deathProbs=AVOe2005R.exakt.data[[probs]], trend=AVOe2005R.exakt.data[[trend]], - dampingFunction=AVOe2005R.trend.damping - ) - ) -} - -AVOe2005R.male =AVOe2005R_gen("AVÖ 2005R male (exact), loaded", "qx2001", "trendM"); -AVOe2005R.female=AVOe2005R_gen("AVÖ 2005R female (exact), loaded", "qy2001", "trendF"); -AVOe2005R.unisex=AVOe2005R_gen("AVÖ 2005R unisex (exact), loaded", "qu2001", "trendU"); -AVOe2005R.male.unloaded =AVOe2005R_gen("AVÖ 2005R male (exact), unloaded", "qx2001.2Ord", "trendM.2Ord"); -AVOe2005R.female.unloaded=AVOe2005R_gen("AVÖ 2005R female (exact), unloaded", "qy2001.2Ord", "trendF.2Ord"); -AVOe2005R.male.group =AVOe2005R_gen("AVÖ 2005R male group (exact), loaded", "qx2001G", "trendM"); -AVOe2005R.female.group=AVOe2005R_gen("AVÖ 2005R female group (exact), loaded", "qy2001G", "trendF"); -AVOe2005R.unisex.group=AVOe2005R_gen("AVÖ 2005R unisex group (exact), loaded", "qu2001G", "trendU"); - -AVOe2005R.male.nodamping = undampenTrend(AVOe2005R.male); -AVOe2005R.female.nodamping = undampenTrend(AVOe2005R.female); -AVOe2005R.unisex.nodamping = undampenTrend(AVOe2005R.unisex); -AVOe2005R.male.nodamping.unloaded = undampenTrend(AVOe2005R.male.unloaded); -AVOe2005R.female.nodamping.unloaded = undampenTrend(AVOe2005R.female.unloaded); -AVOe2005R.male.nodamping.group = undampenTrend(AVOe2005R.male.group); -AVOe2005R.female.nodamping.group = undampenTrend(AVOe2005R.female.group); -AVOe2005R.unisex.nodamping.group = undampenTrend(AVOe2005R.unisex.group); - - -############################################################################### -#AVÖ 2005R with age-shifting (Male, Female, unisex), 1st-order only -############################################################################### - -AVOe2005R.av.base = openxlsx::read.xlsx("Tables/AVOe_R.xlsx", sheet="AVOe 2005R AV Basistafel", startRow = 3, rowNames = FALSE); -AVOe2005R.av.verschiebung = openxlsx::read.xlsx("Tables/AVOe_R.xlsx", sheet="AVOe 2005R AV Verschiebung", startRow = 3, rowNames = TRUE); - -AVOe2005R_gen.av=function(nm, probs, shft) { - valuationTable.ageShift( - name=nm, - ages=AVOe2005R.av.base$age, - deathProbs=AVOe2005R.av.base[[probs]], - ageShifts=na.omit(AVOe2005R.av.verschiebung[shft]) - ) -} - -AVOe2005R.male.av =AVOe2005R_gen.av("AVÖ 2005R male (age-shifted), loaded", "qx1965", "shiftM"); -AVOe2005R.female.av=AVOe2005R_gen.av("AVÖ 2005R female (age-shifted), loaded", "qy1965", "shiftF"); -AVOe2005R.unisex.av=AVOe2005R_gen.av("AVÖ 2005R unisex (age-shifted), loaded", "qu1972", "shiftU"); -AVOe2005R.male.group.av =AVOe2005R_gen.av("AVÖ 2005R male group (age-shifted), loaded", "qx1965G", "shiftMG"); -AVOe2005R.female.group.av=AVOe2005R_gen.av("AVÖ 2005R female group (age-shifted), loaded", "qy1965G", "shiftFG"); -AVOe2005R.unisex.group.av=AVOe2005R_gen.av("AVÖ 2005R unisex group (age-shifted), loaded", "qu1972G", "shiftUG"); - - - -############################################################################### - -# options("scipen" = 3, "digits"=10) -# t=AVOe2005R.unisex; -# deathProbabilities(t, YOB=1981) - -# plotValuationTables(mort.AT.census.1869.male, mort.AT.census.1869.female, mort.AT.census.2011.male, mort.AT.census.2011.female, AVOe2005R.male, AVOe2005R.female, YOB=1972,title="Vergleich österreichische Sterbetafeln, YOB=1972 (bei Generationentafeln)") -# -# plotValuationTables(mort.AT.census.2001.male, AVOe2005R.male, YOB=1972, title="Vergleich österreichische Sterbetafeln") -plotValuationTables(getCohortTable(AVOe2005R.male, YOB=1972), getCohortTable(AVOe2005R.male, YOB=2016), title="Vergleich österreichische Sterbetafeln") diff --git a/R/ValuationTables_Austria_Census.R b/R/ValuationTables_Austria_Census.R deleted file mode 100644 index 7d6cf431767cdb6b8948fe185eae8b1b9ba622e0..0000000000000000000000000000000000000000 --- a/R/ValuationTables_Austria_Census.R +++ /dev/null @@ -1,91 +0,0 @@ -# frame_files = lapply(sys.frames(), function(x) x$ofile) -# frame_files = Filter(Negate(is.null), frame_files) -# PATH <- dirname(frame_files[[length(frame_files)]]) -# rm(frame_files) -# setwd(dirname(PATH)) - -library("openxlsx") - - - -############################################################################### -### Volkszählungen Österreich -############################################################################### - -a.vz.dataM = openxlsx::read.xlsx("Tables/A_Volkszaehlungen.xlsx", sheet="Austria_M", - startRow = 3, colNames = TRUE) -a.vz.dataF = openxlsx::read.xlsx("Tables/A_Volkszaehlungen.xlsx", sheet="Austria_F", - startRow = 3, colNames = TRUE) - -censtable = function(data, name, qslot, baseYear=1900) { - qx=data[names(data)==qslot]; - ix=complete.cases(qx); - valuationTable.period(name=name, ages=data$x[ix], deathProbs=qx[ix,], baseYear=baseYear) -} - -mort.AT.census.1869.male = censtable(a.vz.dataM, name="ÖVSt 1868/71 M", baseYear=1869, qslot="1868/71"); -mort.AT.census.1880.male = censtable(a.vz.dataM, name="ÖVSt 1879/82 M", baseYear=1880, qslot="1879/82"); -mort.AT.census.1890.male = censtable(a.vz.dataM, name="ÖVSt 1889/92 M", baseYear=1890, qslot="1889/92"); -mort.AT.census.1900.male = censtable(a.vz.dataM, name="ÖVSt 1899/1902 M", baseYear=1900, qslot="1899/1902"); -mort.AT.census.1910.male = censtable(a.vz.dataM, name="ÖVSt 1909/12 M", baseYear=1910, qslot="1909/12"); -mort.AT.census.1931.male = censtable(a.vz.dataM, name="ÖVSt 1930/33 M", baseYear=1931, qslot="1930/33"); -mort.AT.census.1951.male = censtable(a.vz.dataM, name="ÖVSt 1949/51 M", baseYear=1951, qslot="1949/51"); -mort.AT.census.1961.male = censtable(a.vz.dataM, name="ÖVSt 1959/61 M", baseYear=1961, qslot="1959/61"); -mort.AT.census.1971.male = censtable(a.vz.dataM, name="ÖVSt 1970/72 M", baseYear=1971, qslot="1970/72"); -mort.AT.census.1981.male = censtable(a.vz.dataM, name="ÖVSt 1980/82 M", baseYear=1981, qslot="1980/82"); -mort.AT.census.1991.male = censtable(a.vz.dataM, name="ÖVSt 1990/92 M", baseYear=1991, qslot="1990/92"); -mort.AT.census.2001.male = censtable(a.vz.dataM, name="ÖVSt 2000/02 M", baseYear=2001, qslot="2000/02"); -mort.AT.census.2011.male = censtable(a.vz.dataM, name="ÖVSt 2010/2012 M", baseYear=2011, qslot="2010/12"); - -mort.AT.census.1869.female = censtable(a.vz.dataF, name="ÖVSt 1868/71 F", baseYear=1869, qslot="1868/71"); -mort.AT.census.1880.female = censtable(a.vz.dataF, name="ÖVSt 1879/82 F", baseYear=1880, qslot="1879/82"); -mort.AT.census.1890.female = censtable(a.vz.dataF, name="ÖVSt 1889/92 F", baseYear=1890, qslot="1889/92"); -mort.AT.census.1900.female = censtable(a.vz.dataF, name="ÖVSt 1899/1902 F", baseYear=1900, qslot="1899/1902"); -mort.AT.census.1910.female = censtable(a.vz.dataF, name="ÖVSt 1909/12 F", baseYear=1910, qslot="1909/12"); -mort.AT.census.1931.female = censtable(a.vz.dataF, name="ÖVSt 1930/33 F", baseYear=1931, qslot="1930/33"); -mort.AT.census.1951.female = censtable(a.vz.dataF, name="ÖVSt 1949/51 F", baseYear=1951, qslot="1949/51"); -mort.AT.census.1961.female = censtable(a.vz.dataF, name="ÖVSt 1959/61 F", baseYear=1961, qslot="1959/61"); -mort.AT.census.1971.female = censtable(a.vz.dataF, name="ÖVSt 1970/72 F", baseYear=1971, qslot="1970/72"); -mort.AT.census.1981.female = censtable(a.vz.dataF, name="ÖVSt 1980/82 F", baseYear=1981, qslot="1980/82"); -mort.AT.census.1991.female = censtable(a.vz.dataF, name="ÖVSt 1990/92 F", baseYear=1991, qslot="1990/92"); -mort.AT.census.2001.female = censtable(a.vz.dataF, name="ÖVSt 2000/02 F", baseYear=2001, qslot="2000/02"); -mort.AT.census.2011.female = censtable(a.vz.dataF, name="ÖVSt 2010/2012 F", baseYear=2011, qslot="2010/12"); - -mort.AT.census.2001.unisex = valuationTable.mixed(table1=mort.AT.census.2001.male, table2=mort.AT.census.2001.female) - -mort.AT.census.ALL.male = makeQxDataFrame( - mort.AT.census.1869.male, - mort.AT.census.1880.male, - mort.AT.census.1890.male, - mort.AT.census.1900.male, - mort.AT.census.1910.male, - mort.AT.census.1931.male, - mort.AT.census.1951.male, - mort.AT.census.1961.male, - mort.AT.census.1971.male, - mort.AT.census.1981.male, - mort.AT.census.1991.male, - mort.AT.census.2001.male, - mort.AT.census.2011.male); - -mort.AT.census.ALL.female = makeQxDataFrame( - mort.AT.census.1869.female, - mort.AT.census.1880.female, - mort.AT.census.1890.female, - mort.AT.census.1900.female, - mort.AT.census.1910.female, - mort.AT.census.1931.female, - mort.AT.census.1951.female, - mort.AT.census.1961.female, - mort.AT.census.1971.female, - mort.AT.census.1981.female, - mort.AT.census.1991.female, - mort.AT.census.2001.female, - mort.AT.census.2011.female); - -rm(a.vz.dataM, a.vz.dataF, censtable) - -############################################################################### - -plotValuationTables(mort.AT.census.ALL.male, title="Vergleich österreichische Sterbetafeln, Männer", legend.position=c(1,0)) -plotValuationTables(mort.AT.census.ALL.female, title="Vergleich österreichische Sterbetafeln, Frauen", legend.position=c(1,0)) diff --git a/R/ValuationTables_Germany_Annuities.R b/R/ValuationTables_Germany_Annuities.R deleted file mode 100644 index d5f94d8edf4b5f732b6e10e6a2ad33b3a45ba031..0000000000000000000000000000000000000000 --- a/R/ValuationTables_Germany_Annuities.R +++ /dev/null @@ -1,91 +0,0 @@ -frame_files = lapply(sys.frames(), function(x) x$ofile) -frame_files = Filter(Negate(is.null), frame_files) -PATH <- dirname(frame_files[[length(frame_files)]]) -rm(frame_files) - -setwd(dirname(PATH)) - -library("gdata") - - -############################################################################### -# DAV 1994R exact (Male, Female), 1st-order only -############################################################################### - -DAV1994R.exakt.data=read.xls( - "Tafeln/DAV_R.xls", - sheet="DAV 1994R", skip=2, #row.names=1, - col.names=c("age", - "qx2000", "qy2000", "trendM", "trendF", "qxAVbase1955", "qyAVbase1955", - "", "", "", "", "", "") -); - -DAV1994R.male=valuationTable.trendProjection( - name="DAV 1994R male", - ages=DAV1994R.exakt.data$age, baseYear=2000, - deathProbs=DAV1994R.exakt.data$qx2000, - trend=DAV1994R.exakt.data$trendM -); -DAV1994R.female=valuationTable.trendProjection( - name="DAV 1994R female", - ages=DAV1994R.exakt.data$age, baseYear=2000, - deathProbs=DAV1994R.exakt.data$qy2000, - trend=DAV1994R.exakt.data$trendF -); - - -############################################################################### -# DAV 2004R exact (Male, Female), 1st-order only -############################################################################### - -DAV2004R.data.basistafeln=read.xls( - "Tafeln/DAV_2004_R.xls", - sheet="Basistafeln", skip=3, #row.names=1, - col.names=c("age", - "qxSel2Ord", "qySel2Ord", "qxAgg2Ord", "qyAgg2Ord", - "qxSelBestand", "qySelBestand", "qxAggBestand", "qyAggBestand", - "qxSel", "qySel", "qxAgg", "qyAgg") -); -DAV2004R.data.trend=read.xls( - "Tafeln/DAV_2004_R.xls", - sheet="Trends", skip=4, header=FALSE, #row.names=1, - col.names=c("age", - "trend2Ord.male.start", "trend2Ord.female.start", - "trend2Ord.male.end", "trend2Ord.female.end", - "trendBestand.male.start", "trendBestand.female.start", - "trendBestand.male.end", "trendBestand.female.end", - "trend1Ord.male", "trend1Ord.female") -); -DAV2004R.data.select=read.xls( - "Tafeln/DAV_2004_R.xls", - sheet="Selektionsfaktoren", skip=2, header=FALSE, #row.names=1, - col.names=c("year", "SelectMale", "SelectFemale") -); -DAV2004R.data.av.grundtafeln=read.xls( - "Tafeln/DAV_2004_R.xls", - sheet="Grundtafeln", skip=3, #row.names=1, - col.names=c("age", - "qxBestand", "qyBestand", - "qxB20", "qyB20", - "qx1Ord", "qy1Ord") -); -DAV2004R.data.av=read.xls( - "Tafeln/DAV_2004_R.xls", - sheet="Altersverschiebungen", skip=1, row.names=1, - col.names=c("YOB", "shiftMBestand", "shiftFBestand", - "shiftMB20", "shiftFB20", - "shiftM1Ord", "shiftF1Ord") -); - -DAV2004R.male=valuationTable.trendProjection( - name="DAV 2004R male", - ages=DAV2004R.exakt.data$age, baseYear=2000, - deathProbs=DAV2004R.exakt.data$qx2000, - trend=DAV2004R.exakt.data$trendM -); -DAV2004R.female=valuationTable.trendProjection( - name="DAV 2004R female", - ages=DAV2004R.exakt.data$age, baseYear=2000, - deathProbs=DAV2004R.exakt.data $qy2000, - trend=DAV2004R.exakt.data$trendF -); diff --git a/R/ValuationTables_Germany_LifeInsurance.R b/R/ValuationTables_Germany_LifeInsurance.R deleted file mode 100644 index 56f5949d00288bcab5f90078c46c13d85e34072b..0000000000000000000000000000000000000000 --- a/R/ValuationTables_Germany_LifeInsurance.R +++ /dev/null @@ -1,94 +0,0 @@ -frame_files = lapply(sys.frames(), function(x) x$ofile) -frame_files = Filter(Negate(is.null), frame_files) -PATH <- dirname(frame_files[[length(frame_files)]]) -rm(frame_files) - -setwd(dirname(PATH)) - -library("gdata") - - -# DAV1994T (Male, Female), 1st-order and general mortality 1986/88 -dav1994T.data=read.xls( - "Tafeln/DAV_T.xls", - sheet=1, skip=1, #row.names=1, - col.names=c("age", - "", "", - "qx2", "qxKI", "qx", - "", "", "", - "qy2", "qyKI", "qy" -)); - -DAV1994T.male=valuationTable.period( - name="DAV 1994T male, loaded", - ages=dav1994T.data$age, deathProbs=dav1994T.data$qx) -DAV1994T.male.2Ord=valuationTable.period( - name="DAV 1994T male, unloaded", - ages=dav1994T.data$age, deathProbs=dav1994T.data$qx2) -DAV1994T.female=valuationTable.period( - name="DAV 1994T female, loaded", - ages=dav1994T.data$age, deathProbs=dav1994T.data$qy) -DAV1994T.female.2Ord=valuationTable.period( - name="DAV 1994T female, unloaded", - ages=dav1994T.data$age, deathProbs=dav1994T.data$qy2) - -rm(DAV1994T.data) - -###################################################### -## DAV 2008T Aggregat / Smoker / Non-Smoker -###################################################### - -DAV2008T.data=read.xls( - "Tafeln/DAV_T.xls", - sheet=2, skip=2, #row.names=1, - col.names=c("age", "", "", "", - "qx2", "qx2NR", "qx2R", - "qx1", "qx1NR", "qx1R", - "", "", "", "", - "qy2", "qy2NR", "qy2R", - "qy1", "qy1NR", "qy1R" -)); - -### DAV 2008T Aggregat (smoker+non-smoker combined) -DAV2008T.male=valuationTable.period( - name="DAV 2008T male, loaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qx1) -DAV2008T.male.2Ord=valuationTable.period( - name="DAV 2008T male, unloaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qx2) -DAV2008T.female=valuationTable.period( - name="DAV 2008T female, loaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qy1) -DAV2008T.female.2Ord=valuationTable.period( - name="DAV 2008T female, unloaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qy2) - -### DAV 2008T Smoker -DAV2008T.male.smoker=valuationTable.period( - name="DAV 2008T male smoker, loaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qx1R) -DAV2008T.male.smoker.2Ord=valuationTable.period( - name="DAV 2008T male smoker, unloaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qx2R) -DAV2008T.female.smoker=valuationTable.period( - name="DAV 2008T female smoker, loaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qy1R) -DAV2008T.female.smoker.2Ord=valuationTable.period( - name="DAV 2008T female smoker, unloaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qy2R) - -### DAV 2008T Non-Smoker -DAV2008T.male.nonsmoker=valuationTable.period( - name="DAV 2008T male non-smoker, loaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qx1NR) -DAV2008T.male.nonsmoker.2Ord=valuationTable.period( - name="DAV 2008T male non-smoker, unloaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qx2NR) -DAV2008T.female.nonsmoker=valuationTable.period( - name="DAV 2008T female non-smoker, loaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qy1NR) -DAV2008T.female.nonsmoker.2Ord=valuationTable.period( - name="DAV 2008T female non-smoker, unloaded", - ages=DAV2008T.data$age, deathProbs=DAV2008T.data$qy2NR) - -rm(DAV2008T.data); diff --git a/R/ValuationTables_USA_Annuities.R b/R/ValuationTables_USA_Annuities.R deleted file mode 100644 index 6674c685383a414eaeef70146050f7ff05c59535..0000000000000000000000000000000000000000 --- a/R/ValuationTables_USA_Annuities.R +++ /dev/null @@ -1,164 +0,0 @@ -frame_files = lapply(sys.frames(), function(x) x$ofile) -frame_files = Filter(Negate(is.null), frame_files) -PATH <- dirname(frame_files[[length(frame_files)]]) -rm(frame_files) -setwd(dirname(PATH)) - -library("gdata") - - -############################################################################### -### 1971 IAM individual annuity table; with optional projection scale B_x -############################################################################### - -USA1971IAM.data=read.xls( - "Tafeln/USA_Annuities.xls", - sheet="1971 IAM", skip=2, #row.names=1, - col.names=c("age","qx", "qy", "B")); - -USA1971IAM.male=valuationTable.period ( - name="USA 1971 IAM, male", - ages=USA1971IAM.data$age, - deathProbs=USA1971IAM.data$qx) -USA1971IAM.female=valuationTable.period ( - name="USA 1971 IAM, female", - ages=USA1971IAM.data$age, - deathProbs=USA1971IAM.data$qy) - -USA1971IAM.male.projected=valuationTable.improvementFactors ( - name="USA 1971 IAM, male", - ages=USA1971IAM.data$age, baseYear=1971, - deathProbs=USA1971IAM.data$qx, - improvement=USA1971IAM.data$B) -USA1971IAM.female.projected=valuationTable.improvementFactors ( - name="USA 1971 IAM, female", - ages=USA1971IAM.data$age, baseYear=1971, - deathProbs=USA1971IAM.data$qy, - improvement=USA1971IAM.data$B) - -rm(USA1971IAM.data); - - -############################################################################### -### 1983 Table "a" (individual) and GAM (group annuities), period tables -############################################################################### - -USA1983a.data=read.xls( - "Tafeln/USA_Annuities.xls", - sheet="1983a - GAM", skip=2, - col.names=c("age","qx", "qy", "qxG", "qyG")); - -USA1983a.male=valuationTable.period ( - name="USA 1983 Table a, male", - ages=USA1983a.data$age, - deathProbs=USA1983a.data$qx) -USA1983a.female=valuationTable.period ( - name="USA 1983 Table a, female", - ages=USA1983a.data$age, - deathProbs=USA1983a.data$qy) - -USA1983GAM.male=valuationTable.period ( - name="USA 1983 GAM, male", - ages=USA1983a.data$age, - deathProbs=USA1983a.data$qxG) -USA1983GAM.female=valuationTable.period ( - name="USA 1983 GAM, female", - ages=USA1983a.data$age, - deathProbs=USA1983a.data$qyG) - -rm(USA1983a.data); - - -############################################################################### -### 1994 GAR/GAM group annuity tables, with improvement factors AA_x -############################################################################### - -USA1994GAM.data=read.xls( - "Tafeln/USA_Annuities.xls", - sheet="1994 GAR", skip=2, - col.names=c("age","qx", "AAx", "qy", "AAy", "qxBasic", "qyBasic")); - -USA1994GAM.male.basic=valuationTable.period ( - name="USA 1994 GAM basic (unloaded), male", - ages=USA1994GAM.data$age, - deathProbs=USA1994GAM.data$qxBasic) -USA1994GAM.female.basic=valuationTable.period ( - name="USA 1994 GAM basic (unloaded), female", - ages=USA1994GAM.data$age, - deathProbs=USA1994GAM.data$qyBasic) - -USA1994GAR.male=valuationTable.improvementFactors ( - name="USA 1994 GAM, male", - ages=USA1994GAM.data$age, - deathProbs=USA1994GAM.data$qx, - improvement=USA1994GAM.data$AAx) -USA1994GAR.female=valuationTable.improvementFactors ( - name="USA 1994 GAM, female", - ages=USA1994GAM.data$age, - deathProbs=USA1994GAM.data$qy, - improvement=USA1994GAM.data$AAy) - -rm(USA1994GAM.data); - - -############################################################################### -### Annuity 2000 Basic (unloaded) and Mortality (loaded) Tables, PERIOD tables -############################################################################### - -USAAnnuity2000.data=read.xls( - "Tafeln/USA_Annuities.xls", - sheet="Annuity 2000", skip=2, #row.names=1, - col.names=c("age","qxBasic", "qyBasic", "qx", "qy")); - -USAAnnuity2000.basic.male=valuationTable.period ( - name="USA Annuity 2000 basic, male", - ages=USAAnnuity2000.data$age, - deathProbs=USAAnnuity2000.data$qxBasic) -USAAnnuity2000.basic.female=valuationTable.period ( - name="USA Annuity 2000 basic, female", - ages=USAAnnuity2000.data$age, - deathProbs=USAAnnuity2000.data$qyBasic) - -USAAnnuity2000.male.projected=valuationTable.period ( - name="USA Annuity 2000, male", - ages=USAAnnuity2000.data$age, - deathProbs=USAAnnuity2000.data$qx) -USAAnnuity2000.female.projected=valuationTable.period ( - name="USA Annuity 2000, female", - ages=USAAnnuity2000.data$age, - deathProbs=USAAnnuity2000.data$qy) - -rm(USAAnnuity2000.data); - - -############################################################################### -### 1994 GAR/GAM group annuity tables, with improvement factors AA_x -############################################################################### - -USA2012IAM.data=read.xls( - "Tafeln/USA_Annuities.xls", - sheet="2012 IAR", skip=3, - col.names=c("age","qxBasic", "qyBasic", "qx", "qy", "G2x", "G2y", "", "", "")); - -USA2012IAM.male.basic=valuationTable.period ( - name="USA 2012 IAM basic (unloaded), male", - ages=USA2012IAM.data$age, - deathProbs=USA2012IAM.data$qxBasic) -USA2012IAM.female.basic=valuationTable.period ( - name="USA 2012 IAM basic (unloaded), female", - ages=USA2012IAM.data$age, omega=max(USA2012IAM.data$age,rm.na=TRUE)+1, - deathProbs=USA2012IAM.data$qyBasic) - -USA2012IAM.male=valuationTable.improvementFactors ( - name="USA 2012 IAM, male", - ages=USA2012IAM.data$age, omega=max(USA2012IAM.data$age,rm.na=TRUE)+1, - deathProbs=USA2012IAM.data$qx, - improvement=USA2012IAM.data$G2x) -USA2012IAM.female=valuationTable.improvementFactors ( - name="USA 2012 IAM, female", - ages=USA2012IAM.data$age, omega=max(USA2012IAM.data$age,rm.na=TRUE)+1, - deathProbs=USA2012IAM.data$qy, - improvement=USA2012IAM.data$G2y) - -rm(USA2012IAM.data); - diff --git a/README.md b/README.md index d9f51a8bd73a0d296e093979c14f64896fe03b08..fbc5300553aaf85f478d2cad1f4b8bfbf9544a99 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# r-valuation-tables -R package implementing actuarial valuation tables (period and cohort life tables) and also general insurance contracts +# r-life-insurance-contracts +R package implementing general insurance contracts diff --git a/man/ValuationTables-package.Rd b/man/ValuationTables-package.Rd deleted file mode 100644 index d41e96bc2b2266b0f990218e5443cca423de709c..0000000000000000000000000000000000000000 --- a/man/ValuationTables-package.Rd +++ /dev/null @@ -1,40 +0,0 @@ -\name{ValuationTables-package} -\alias{ValuationTables-package} -\alias{ValuationTables} -\docType{package} -\title{ -What the package does (short line) -~~ package title ~~ -} -\description{ -More about what it does (maybe more than one line) -~~ A concise (1-5 lines) description of the package ~~ -} -\details{ -\tabular{ll}{ -Package: \tab ValuationTables\cr -Type: \tab Package\cr -Version: \tab 1.0\cr -Date: \tab 2013-05-03\cr -License: \tab What license is it under?\cr -} -~~ An overview of how to use the package, including the most important functions ~~ -} -\author{ -Who wrote it - -Maintainer: Who to complain to <yourfault@somewhere.net> -~~ The author and/or maintainer of the package ~~ -} -\references{ -~~ Literature or other references for background information ~~ -} -~~ Optionally other standard keywords, one per line, from file KEYWORDS in the R documentation directory ~~ -\keyword{ package } -\seealso{ -~~ Optional links to other man pages, e.g. ~~ -~~ \code{\link[<pkg>:<pkg>-package]{<pkg>}} ~~ -} -\examples{ -~~ simple examples of the most important functions ~~ -}