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

Initial version, trend projections work, age-shift doesn't; Provide sample...

Initial version, trend projections work, age-shift doesn't; Provide sample data of German/Austrian/USA table (unfinished)
parent 6c236196
No related branches found
No related tags found
No related merge requests found
Showing with 762 additions and 0 deletions
^.*\.Rproj$
^\.Rproj\.user$
.Rproj.user
.Rhistory
.RData
Package: ValuationTables
Type: Package
Title: What the package does (short line)
Version: 1.0
Date: 2013-05-03
Author: Who wrote it
Maintainer: Who to complain to <yourfault@somewhere.net>
Description: More about what it does (maybe more than one line)
License: What license is it under?
exportPattern("^[[:alpha:]]+")
library("lifecontingencies");
# (virtual) base class for valuation tables, contains only the name / ID
valuationTable=setClass(
"valuationTable",
slots=list(name="character"),
prototype=list(name="Actuarial Valuation Table"),
contains="VIRTUAL"
);
# A period life table, giving death probabilities for each age, up to
# maximum age omega. Optionally apply selection factors to the probabilities
valuationTable.period=setClass(
"valuationTable.period",
slots=list(ages="numeric", deathProbs="numeric"),
prototype=list(ages=eval(0:120), deathProbs=rep(1,120)),
contains="valuationTable"
);
# A cohort life table, obtained by age-shifting from a given base table (PODs
# for a base YOB)
valuationTable.ageShift=setClass(
"valuationTable.ageShift",
slots=list(ageShifts="data.frame"),
prototype=list(ageShifts=data.frame(YOB=c(), shifts=c())),
contains="valuationTable.period"
);
# A cohort life table, obtained by a trend projection from a given base table
# (PODs for a given observation year). Typically, the trend is obtained by
# the Lee-Carter method or some other trend estimation.
# The dampingFunction can be used to modify the cumulative years (e.g. G(tau+x) instead of tau+x)
# If trend2 is given, the G(tau+x) gives the weight of the first trend, 1-G(tau+x) the weight of the second trend
valuationTable.trendProjection=setClass(
"valuationTable.trendProjection",
slots=list(baseYear="numeric", trend="numeric", dampingFunction="function", trend2="numeric"),
prototype=list(baseYear=1980, trend=rep(0,120), dampingFunction=identity, trend2=0),
contains="valuationTable.period"
);
# A cohort life table, obtained by an improvment factor projection
# from a given base table (PODs for a given observation year).
valuationTable.improvementFactors=setClass(
"valuationTable.improvementFactors",
slots=list(baseYear="numeric", improvement="numeric"),
prototype=list(baseYear=2012, improvement=rep(0,120)),
contains="valuationTable.period"
);
# A cohort life table described by actual observations (data frame of PODs
# per year and age)
valuationTable.observed=setClass(
"valuationTable.observed",
slots=list(data="data.frame"),
prototype=list(data=data.frame()),
contains="valuationTable"
);
# A cohort life table obtained by joining two cohort life tables, each of which
# applies only to certain observation years (e.g. for the past use the observed
# PODs, and project them to the future with the trend projection)
valuationTable.joined=setClass(
"valuationTable.joined",
slots=list(
table1="valuationTable", yearRange1="numeric",
table2="valuationTable", yearRange2="numeric"),
contains="valuationTable"
);
setGeneric("getOmega", function(object) standardGeneric("getOmega"));
setMethod("getOmega", "valuationTable.period",
function (object) {
max(object@ages,na.rm=TRUE);
})
setGeneric("deathProbabilities", function(object, ..., YOB=1975) standardGeneric("deathProbabilities"));
setMethod("deathProbabilities", "valuationTable.period",
function(object, ..., YOB=1975) {
object@deathProbs;
})
setMethod("deathProbabilities","valuationTable.ageShift",
function (object, ..., YOB=1975) {
qx=object@deathProbs;
shift.index=match(YOB, object@shifts, YOB);
if (shift.index) {}
# shift=
qx
})
setMethod("deathProbabilities","valuationTable.trendProjection",
function (object, ..., YOB=1975) {
qx=object@deathProbs;
if (length(object@trend2)<=1) {
#print("length(object@trend2)==0");
exp(-object@trend*object@dampingFunction(YOB+0:(length(qx)-1)-object@baseYear))*qx
} else {
#print("length(object@trend2)!=0");
#print(length(object@trend2));
# dampingFunction interpolates between the two trends:
weights=sapply(YOB+0:(length(qx)-1), object@dampingFunction);
qx*exp(-(object@trend*(1-weights) + object@trend2*(weights))*(YOB+0:(length(qx)-1)-object@baseYear))
}
})
setMethod("deathProbabilities","valuationTable.improvementFactors",
function (object, ..., YOB=1975) {
qx=object@deathProbs;
(1-object@improvement)^(YOB+0:(length(qx)-1)-object@baseYear)*qx
})
setGeneric("lifeTable", function(object, ...) standardGeneric("lifeTable"));
setMethod("lifeTable","valuationTable",
function (object, ...) {
qx=deathProbabilities(object, ...);
if (qx[[length(qx)]]!=1) { qx=c(qx, 1, 1); }
probs2lifetable(qx, type="qx")
})
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")
###############################################################################
### RR67 Rententafel für Männer, 3%
###############################################################################
rr67.data=read.xls(
"Tafeln/AVOe_R.xls",
sheet="OeVM59-61 RR67", skip=1, #row.names=1,
col.names=c("age","qx"));
rr67=valuationTable.period(
name="ÖVM 59/61 RR67", ages=rr67.data$age, deathProbs=rr67.data$qx
);
# rm(rr67.data);
###############################################################################
### EROM/EROF 85 and G 1985 (period and age-shifted generation)
###############################################################################
eromf.data=read.xls(
"Tafeln/AVOe_R.xls",
sheet="EROM-F Basistafeln", skip=2, #row.names=1,
col.names=c("age", "EROM85", "EROF85", "EROMG1950", "EROFG1950")
);
erom85.male=valuationTable.period(
name="EROM 85, male", ages=eromf.data$age, deathProbs=eromf.data$EROM85
);
erom85.female=valuationTable.period(
name="EROF 85, female", ages=eromf.data$age, deathProbs=eromf.data$EROF85
);
EROM.G1950.male=valuationTable.period(
name="EROM G 1950 Basistafel, male",
ages=eromf.data$age,
deathProbs=eromf.data$EROMG1950
);
EROF.G1950.female=valuationTable.period(
name="EROF G 1950 Basistafel, female",
ages=eromf.data$age,
deathProbs=eromf.data$EROFG1950
);
eromf.data.av=read.xls(
"Tafeln/AVOe_R.xls",
sheet="EROM-F G AV", skip=1, row.names=1,
col.names=c("YOB", "shiftM", "shiftF")
);
EROM.G1950.male.av=valuationTable.ageShift(
name="EROM G 1950 mit Altersverschiebung, male",
ages=eromf.data$age,
deathProbs=eromf.data$EROMG1950,
ageShifts=eromf.data.av[1]
);
EROF.G1950.female.av=valuationTable.ageShift(
name="EROF G 1950 mit Altersverschiebung, female",
ages=eromf.data$age,
deathProbs=eromf.data$EROFG1950,
ageShifts=eromf.data.av[2]
);
###############################################################################
# AVÖ 1996R exact (Male, Female), 1st-order only
###############################################################################
avoe1996r.exakt.data=read.xls(
"Tafeln/AVOe_R.xls",
sheet="AVOe 1996R exakt", skip=2, #row.names=1,
col.names=c("age",
"q1991M", "trendM.long", "trendM.short", "factorMG", "factorM",
"",
"q1991F", "trendF.long", "trendF.short", "factorFG", "factorF",
rep("",12))
);
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$q1991M*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$q1991F*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$q1991M*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$q1991F*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=read.xls(
"Tafeln/AVOe_R.xls",
sheet="AVOe 2005R", skip=1, #row.names=1,
header=FALSE,
col.names=c("age",
"q2001M","q2001MG", "trendM",
"q2001F", "q2001FG", "trendF",
"",
"q2001M.2Ord", "2001MG.2Ord", "trendM.2Ord",
"q2001F.2Ord", "q2001FG.2Ord", "trendF.2Ord",
"",
"q2001U", "q2001UG", "trendU")
);
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", "q2001M", "trendM");
avoe2005r.female=avoe2005r_gen("AVÖ 2005R female (exact), loaded", "q2001F", "trendF");
avoe2005r.unisex=avoe2005r_gen("AVÖ 2005R unisex (exact), loaded", "q2001U", "trendU");
avoe2005r.male.unloaded =avoe2005r_gen("AVÖ 2005R male (exact), unloaded", "q2001M.2Ord", "trendM.2Ord");
avoe2005r.female.unloaded=avoe2005r_gen("AVÖ 2005R female (exact), unloaded", "q2001F.2Ord", "trendF.2Ord");
avoe2005r.male.group =avoe2005r_gen("AVÖ 2005R male group (exact), loaded", "q2001MG", "trendM");
avoe2005r.female.group=avoe2005r_gen("AVÖ 2005R female group (exact), loaded", "q2001FG", "trendF");
avoe2005r.unisex.group=avoe2005r_gen("AVÖ 2005R unisex group (exact), loaded", "q2001UG", "trendU");
###############################################################################
#AVÖ 2005R with age-shifting (Male, Female, unisex), 1st-order only
###############################################################################
avoe2005r.av.base=read.xls(
"Tafeln/AVOe_R.xls",
sheet="AVOe 2005R AV Basistafel", skip=1, # row.names=1,
col.names=c("age", "q1965M", "q1965MG", "q1965F", "q1965FG", "q1972U", "q1972UG")
);
avoe2005r.av.verschiebung=read.xls(
"Tafeln/AVOe_R.xls",
sheet="AVOe 2005R AV Verschiebung",skip=2,row.names=1,
col.names=c("YOB", "shiftM", "shiftMG", "shiftF", "shiftFG", "shiftU", "shiftUG")
)
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", "q1965M", "shiftM");
avoe2005r.female.av=avoe2005r_gen.av("AVÖ 2005R female (age-shifted), loaded", "q1965F", "shiftF");
avoe2005r.unisex.av=avoe2005r_gen.av("AVÖ 2005R unisex (age-shifted), loaded", "q1972U", "shiftU");
avoe2005r.male.group.av =avoe2005r_gen.av("AVÖ 2005R male group (age-shifted), loaded", "q1965MG", "shiftMG");
avoe2005r.female.group.av=avoe2005r_gen.av("AVÖ 2005R female group (age-shifted), loaded", "q1965FG", "shiftFG");
avoe2005r.unisex.group.av=avoe2005r_gen.av("AVÖ 2005R unisex group (age-shifted), loaded", "q1972UG", "shiftUG");
###############################################################################
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
);
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);
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);
* Edit the help file skeletons in 'man', possibly combining help files for multiple functions.
* Edit the exports in 'NAMESPACE', and add necessary imports.
* Put any C/C++/Fortran code in 'src'.
* If you have compiled code, add a useDynLib() directive to 'NAMESPACE'.
* Run R CMD build to build the package tarball.
* Run R CMD check to check the package tarball.
Read "Writing R Extensions" for more information.
File added
File added
File added
File added
File added
File added
Version: 1.0
RestoreWorkspace: Default
SaveWorkspace: Default
AlwaysSaveHistory: Default
EnableCodeIndexing: Yes
UseSpacesForTab: Yes
NumSpacesForTab: 2
Encoding: UTF-8
RnwWeave: Sweave
LaTeX: pdfLaTeX
BuildType: Package
PackageInstallArgs: --no-multiarch
\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 ~~
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment