From eb84eb8ab8127ffcdbbf88c421e6ad6bcc1b36bd Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Sat, 7 May 2016 20:22:10 +0200 Subject: [PATCH] Split up the package into the ValuationTables and the LifeInsuranceContracts packages --- DESCRIPTION | 24 +- Formulas_Reference/.gitignore | 10 - .../Formelsammlung_Beispielrechnung.pdf | Bin 197881 -> 0 bytes .../Formelsammlung_Beispielrechnung.tex | 1060 ----------------- NAMESPACE | 34 +- R/HelperFunctions.R | 154 --- R/InsuranceContract.R | 209 ---- R/InsuranceTarif.R | 572 --------- R/S4classes.R | 0 R/ValuationTables.R | 518 +++++--- R/exportInsuranceContract_xlsx.R | 409 ------- R/plotValuationTables.R | 73 ++ ValuationTables.Rproj | 2 + man/ValuationTables-package.Rd | 41 +- man/plotValuationTables.Rd | 24 + man/valuationTable-class.Rd | 106 ++ man/valuationTable_ageShift-class.Rd | 47 + ...valuationTable_improvementFactors-class.Rd | 38 + man/valuationTable_joined-class.Rd | 37 + man/valuationTable_mixed-class.Rd | 56 + man/valuationTable_observed-class.Rd | 18 + man/valuationTable_period-class.Rd | 51 + man/valuationTable_trendProjection-class.Rd | 57 + 23 files changed, 949 insertions(+), 2591 deletions(-) delete mode 100644 Formulas_Reference/.gitignore delete mode 100644 Formulas_Reference/Formelsammlung_Beispielrechnung.pdf delete mode 100644 Formulas_Reference/Formelsammlung_Beispielrechnung.tex delete mode 100644 R/HelperFunctions.R delete mode 100644 R/InsuranceContract.R delete mode 100644 R/InsuranceTarif.R delete mode 100644 R/S4classes.R delete mode 100644 R/exportInsuranceContract_xlsx.R create mode 100644 R/plotValuationTables.R create mode 100644 man/plotValuationTables.Rd create mode 100644 man/valuationTable-class.Rd create mode 100644 man/valuationTable_ageShift-class.Rd create mode 100644 man/valuationTable_improvementFactors-class.Rd create mode 100644 man/valuationTable_joined-class.Rd create mode 100644 man/valuationTable_mixed-class.Rd create mode 100644 man/valuationTable_observed-class.Rd create mode 100644 man/valuationTable_period-class.Rd create mode 100644 man/valuationTable_trendProjection-class.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 53403f3..db17621 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,9 +1,23 @@ Package: ValuationTables 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> +Date: 2016-05-01 +Title: A framework for cohort life tables and general life insurance contracts +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: + ggplot2, + methods, + openxlsx, + scales, + utils +Suggests: + lifecontingencies +Description: This package provides classes to implement cohort life tables + for actuarial calculations. In particular, birthyear-dependent mortality + tables using a yearly trend to extrapolate from a base year are implemented, + as well as period life table, cohort life tables using an age shift, and + merged life tables. +License: GPL (>= 2) +RoxygenNote: 5.0.1 diff --git a/Formulas_Reference/.gitignore b/Formulas_Reference/.gitignore deleted file mode 100644 index 1663ebe..0000000 --- a/Formulas_Reference/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -*.aux -*.dvi -*.log -*.synctex.gz -*.backup -*.kilepr -Bernkopf Max -Formelsammlung_Beispielrechnung.toc -Formelsammlung_Beispielrechnung.out -.gitignore diff --git a/Formulas_Reference/Formelsammlung_Beispielrechnung.pdf b/Formulas_Reference/Formelsammlung_Beispielrechnung.pdf deleted file mode 100644 index 19a7192e1dd76c8035108a6141d9350d7d7ca254..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197881 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 M=3J_(uKsRZ01teJ^8f$< diff --git a/Formulas_Reference/Formelsammlung_Beispielrechnung.tex b/Formulas_Reference/Formelsammlung_Beispielrechnung.tex deleted file mode 100644 index d62e41b..0000000 --- a/Formulas_Reference/Formelsammlung_Beispielrechnung.tex +++ /dev/null @@ -1,1060 +0,0 @@ -\documentclass[a4paper,10pt]{article} -\usepackage[T1]{fontenc} -\usepackage[utf8]{inputenc} -\usepackage{geometry} -\usepackage{tabularx, longtable} -\usepackage{amsmath} -\usepackage[ngerman]{babel} -\usepackage[usenames,dvipsnames]{xcolor} -\usepackage{enumerate} -\usepackage{enumitem} -\setlist{nolistsep} -\usepackage{multirow} -%\usepackage{itemize} -% \usepackage{sans} -\usepackage{array} -\newcolumntype{C}[1]{>{\centering\arraybackslash$}p{#1}<{$}} -\usepackage{rotating} -\usepackage{pdflscape} -\usepackage{hyperref} - -\usepackage{mathpazo}% Palatino mit mathematischen Zeichen -\hyphenation{Prä-mi-en-frei-stel-lung} - -%opening -\title{\textbf{Formelsammlung Tarif Lebensversicherung}} -\author{Reinhold Kainhofer (reinhold@kainhofer.com)} - -\geometry{bottom=2cm,top=2cm,left=1.5cm,right=1.5cm} - -\newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp} -\newcolumntype{v}[1]{>{\PreserveBackslash\centering\hspace{0pt}}p{#1}} - -\newcommand{\markiert}[1]{\colorbox{Goldenrod}{\textcolor{red}{#1}}} -\newcommand{\orZero}[1]{\mathit{\left[#1\right]}} -\newcommand{\xn}{{\act[x]{n}}} - - -\setlength{\parindent}{0em} - -\makeatletter -\DeclareRobustCommand{\act}[2][]{% -\def\arraystretch{0}% -\setlength\arraycolsep{0.5pt}% -\setlength\arrayrulewidth{0.5pt}% -\setbox0=\hbox{$\scriptstyle#1\ifx#1\empty{asdf}\else:\fi#2$}% -\begin{array}[b]{*2{@{}>{\scriptstyle}c}|} -\cline{2-2}% -\rule[1.25pt]{0pt}{\ht0}% -#1\ifx#1\empty\else:\fi & #2% -\end{array}% -} -\makeatother - -\renewcommand{\labelitemi}{-)} -% \renewcommand[\itemsep}{0cm} -% \renewcommand{\labelitemsep}{0cm} -\itemsep0em - - -\begin{document} - -\maketitle - -% \begin{abstract} -% -% \end{abstract} - -Bemerkung: Sämtliche Barwerte werden rekursiv bestimmt, daher werden alle Formeln in ihrer rekursiven Form angegeben. Teilweise wird aus informativen Gründen davor die entsprechende Summenformel angegeben, diese wird jedoch nicht zur tatsächlichen Berechnung benutzt. - -\tableofcontents - - -\begin{landscape} -\section{Definitionen sämtlicher Variablen} - -\subsection{Vertragsdetails (vertragsspezifische Werte)} - -\newenvironment{deftab}{\begin{longtable}{p{1.7cm}p{13cm}p{9cm}}}{\end{longtable}} - -\begin{deftab} - $VS$ & Versicherungssumme & \texttt{contract\$params\$sumInsured}\\ - $\widetilde{VS}$ & Versicherungssumme nach außerplanmäßiger Prä"-mi"-en"-frei"-stel"-lung\\[0.5em] - $x$ & Eintrittsalter der versicherten Person & \texttt{contract\$params\$age}\\ - $n$ & Versicherungsdauer & \texttt{contract\$params\$policyPeriod}\\ - $l$ & Aufschubdauer des Versicherungsschutzes & \texttt{contract\$params\$deferral}\\ - $m$ & Prämienzahlungsdauer & \texttt{contract\$params\$premiumPeriod}\\ - $k$ & Prämienzahlungsweise ($k$-tel jährlich) & \texttt{contract\$params\$premiumFrequency}\\ - $g$ & Garantiedauer (für Renten) & \texttt{contract\$params\$guaranteed}\\ - $f$ & Prämienfreistellungszeitpunkt\\[0.5em] - - $YOB$ & Geburtsjahr der versicherten Person (bei Benutzung von Generationentafeln) & \texttt{contract\$params\$YOB}\\ - $Beg$ & Versicherungsbeginn (Datum, TODO)\\[0.5em] - - $q_{x+t}$ & einjährige Sterbewahrscheinlichkeit der versicherten Person (aus $YOB$ und $x$ bestimmt) & \texttt{contract\$params\$transitionProbabilities\$q}\\ - $i_{x+t}$ & einjährige Erkrankungswahrscheinlichkeit (z.B. Dread Disease, Krebs, etc.) & \texttt{contract\$params\$transitionProbabilities\$i} \\ - $p_{x+t}$ & einjährige Überlebenswahrscheinlichkeit als Aktiver, $p_{x+t} = 1-q_{x+t}-i_{x+1}$ & \texttt{contract\$params\$transitionProbabilities\$p} \\ - $\omega$ & Höchstalter gemäß der benutzten Sterbetafel & \texttt{getOmega(tarif\$mortalityTable)} \\[0.5em] - - - $k_{Ausz}$ & unterjährige Auszahlung der Erlebensleistungen (nur Renten) & \texttt{contract\$params\$benefitFrequency}\\ - $y$ & Eintrittsalter der 2. versicherten Person (TODO)\\ - - -\end{deftab} - -\subsection{Tarifdetails (identisch für alle Verträge)} -\begin{deftab} - $i$ & Rechnungszins & \texttt{tarif\$i}\\[0.5em] - $v$ & Diskontierungsfaktor $v=\frac1{1+i}$ & \texttt{tarif\$v}\\[0.5em] - - $\rho$ & Sicherheitszuschlag auf die Prämie & \texttt{tarif\$loadings\$security} \\ - $\rho^{RG}$ & Risikosumme (relativ zu DK) im Ablebensfall bei Prämienrückgewähr & \texttt{tarif\$premiumRefundLoading} \\ - $uz(k)$ & Unterjährigkeitszuschlag bei $k$-tel jährlicher Prämienzahlung (in \% der Prämie) & \texttt{tarif\$premiumFrequencyLoading}\\ - $O(k)$ & Ordnung der Unterjährigkeitsrechnung der Erlebenszahlungen (0./""1./""1,5./""2. Ordnung) & \texttt{tarif\$benefitFrequencyOrder}\\[0.5em] - -\end{deftab} - -\subsection{Leistungen} - -\begin{deftab} - $\Pi_t$ & (Netto-)Prämie zum Zeitpunkt $t$ (vorschüssig), $\Pi^{nachsch.}_t$ für nachschüssige Prämienzahlungsweise, normiert auf 1 & \texttt{contract\$cashFlows\$premiums\_advance}\\ - $\Pi^{nachsch.}_t$ & (Netto-)Prämie zum Zeitpunkt $t$ (nachschüssig), normiert auf 1 & \texttt{contract\$cashFlows\$premiums\_arrears}\\ - $PS_t$ &Bruttoprämiensumme bis zum Zeitpunkt $t$: $PS_t=\sum_{j=0}^t \Pi^a_t$\\ - $PS$ & Bruttoprämiensumme über die gesamte Vertragslaufzeit & \texttt{contract\$premiumSum}\\[0.5em] - - $\ddot{e}_t$ & vorschüssige Erlebenszahlung zum Zeitpunkt $t$ (normiert auf 1) & \texttt{contract\$cashFlows\$survival\_advance}\\ - $e_t$ & nachschüssige Erlebenszahlung zum Zeitpunkt $t$ (normiert auf 1) & \texttt{contract\$cashFlows\$survival\_arrears}\\[0.5em] - - $\ddot{e}_t^*$ & vorschüssige garantierte Zahlung zum Zeitpunkt $t$ (normiert auf 1) & \texttt{contract\$cashFlows\$guaranteed\_advance}\\ - $e_t^*$ & nachschüssige garantierte Zahlung zum Zeitpunkt $t$ (normiert auf 1) & \texttt{contract\$cashFlows\$guaranteed\_arrears}\\[0.5em] - - $a_t$ & Ablebensleistung proportional zur Versicherungssumme (nachschüssig) & \texttt{contract\$cashFlows\$death\_sumInsured}\\ - $a_t^{(RG)}$ & Ablebensleistung für Prämienrückgewähr (normiert auf Prämie 1, relativ zu Prämienzumme $PS$) & \texttt{contract\$cashFlows\$death\_GrossPremium}\\[0.5em] - $\widetilde{a}_t$ & Ablebensleistung nach außerplanmäßiger Prämienfreistellung proportional zur Versicherungssumme (nachschüssig) & \texttt{contract\$cashFlows\$death\_PremiumFree}\\ - - $\overrightarrow{CF}^B_t$ & Leistungscashflow (relativ zur jeweiligen Basis, sowie vor"~/""nachschüssig) als Matrix dargestellt -\end{deftab} - -\subsection{Kosten} -Mögliche Basen für die Kostenfestsetzung sind: -\begin{align*} - \text{Basis} &= \begin{cases}\text{VS ... Versicherungssumme (\texttt{"{}SumInsured"})}\\\text{PS ... gesamte Prämiensumme (\texttt{"{}SumPremiums"})}\\\text{BP ... Bruttojahresprämie (\texttt{"{}GrossPremium"})}\end{cases} & - \text{Dauer} &= \begin{cases}\text{1 ... einmalig bei Abschluss (\texttt{"{}once"})}\\\text{PD ... Prämienzahlungsdauer (\texttt{"{}PremiumPeriod"})}\\\text{Prf ... Nach Ablauf der Prämienzahlungsdauer (\texttt{"{}PremiumFree"})}\\\text{LZ ... gesamte Laufzeit (\texttt{"{}PolicyPeriod"})}\end{cases} -\end{align*} - - -\begin{deftab} - $\alpha_t^{\text{Basis},\text{Dauer}}$ & Abschlusskostensatz relativ zu Basis über die angegebene Dauer & \texttt{tarif\$costs["{}alpha",,]}\\ - $Z_t^{\text{Basis},\text{Dauer}}$ & Zillmerkostensatz relativ zu Basis über die angegebene Dauer & \texttt{tarif\$costs["{}Zillmer",,]}\\ - $\beta_t^{\text{Basis},\text{Dauer}}$ & Inkassokostensatz relativ zu Basis über die angegebene Dauer & \texttt{tarif\$costs["{}beta",,]}\\ - $\gamma_t^{\text{Basis},\text{Dauer}}$ & Verwaltungskostensatz relativ zu Basis über die angegebene Dauer & \texttt{tarif\$costs["{}gamma",,]}\\ - $\widetilde{\gamma}_t^{\text{Basis},\text{Dauer}}$ & Verwaltungskostensatz nach außerplanmäßiger Prämienfreistellung relativ zu Basis über die angegebene Dauer & \texttt{tarif\$costs["{}gamma\_nopremiums",,]}\\[0.5em] - - $\alpha_t^{\text{Basis}}$ & Abschlusskosten-Cash Flow relativ zu Basis zu $t$ & \texttt{contract\$cashFlowsCosts[,"{}alpha", Basis]}\\ - $Z_t^{\text{Basis}}$ & Zillmerkosten-Cash Flow relativ zu Basis zu $t$ & \texttt{contract\$cashFlowsCosts[,"{}Zillmer", Basis]}\\ - $\beta_t^{\text{Basis}}$ & Inkassokosten-Cash Flow relativ zu Basis zu $t$ & \texttt{contract\$cashFlowsCosts[,"{}beta", Basis]}\\ - $\gamma_t^{\text{Basis}}$ & Verwaltungskosten-Cash Flow relativ zu Basis zu $t$ & \texttt{contract\$cashFlowsCosts[,"{}gamma", Basis]}\\ - $\widetilde{\gamma}_t^{\text{Basis}}$ & Verwaltungskosten-Cash Flow nach außerplanmäßiger Prämienfreistellung relativ zu Basis zu $t$ & \texttt{contract\$cashFlowsCosts[,"{}gamma\_nopremiums", Basis]}\\[0.5em] - - $\overrightarrow{CF}^C_t$ & Kostencashflows (relativ zur jeweiligen Basis) als Matrix dargestellt & \texttt{contract\$cashFlowsCosts["{}t",,]} -\end{deftab} - -\subsection{Barwerte} - -\begin{deftab} - $P_\xn(t)$ & BW der zuk. Prämienzahlungen (mit Prämie 1) zum Zeitpunkt $t$ & \texttt{contract\$presentValues\$premiums}\\ - $E^*_\xn(t)$ & BW der zuk. garantierten Zahlungen (mit VS 1) zum Zeitpunkt $t$ & \texttt{contract\$presentValues\$guaranteed}\\ - $E_\xn(t)$ & BW der zuk. Erlebenszahlungen (mit VS 1) zum Zeitpunkt $t$ & \texttt{contract\$presentValues\$survival}\\ - $E^{(k)}_\xn(t)$ & BW der zuk. Erlebenszahlungen (mit VS 1) bei $k$-tel jährlicher Auszahlung zum Zeitpunkt $t$ & \texttt{contract\$presentValues\$survival}\\ - $\alpha(k)$, $\beta(k)$ & Unterjährigkeitskorrektur bei $k$-tel jährlicher Auszahlung\\ - $A_\xn(t)$ & BW der zuk. Ablebensleistungen (mit VS 1) zum Zeitpunkt $t$ & \texttt{contract\$presentValues\$death\_SumInsured}\\ - $A_\xn^{prf}(t)$ & BW der zuk. Ablebensleistungen (mit VS 1) zum Zeitpunkt $t$ nach Prämienfreistellung & \texttt{contract\$presentValues\$death\_GrossPremium}\\ - $A^{(RG)}_\xn(t)$ & BW der zuk. Ablebensleistungen aus Prämienrückgewähr (mit BP 1) zum Zeitpunkt $t$ & \texttt{contract\$presentValues\$death\_PremiumFree}\\[0.5em] - - $PV^{B1}_\xn(t)$ & BW aller zuk. Leistungen (ohne Prämienrückgewähr) zum Zeitpunkt $t$ & \texttt{contract\$presentValues\$benefits}\\[1em] - $PV^B_\xn(t)$ & BW aller zuk. Leistungen (inkl. Prämienrückgewähr) zum Zeitpunkt $t$ & \texttt{contract\$presentValues\$benefitsAndRefund}\\[1em] - -\end{deftab} - KOSTEN (TODO) - -\subsection{Prämien und Prämienzerlegung} - -\begin{deftab} - $\Pi^1_\xn$ & Nettoprämie auf VS 1 & \texttt{contract\$premiums[["{}unit.net"]]}\\ - $\Pi_\xn^{1,Z}$ & Zillmerprämie auf VS 1 & \texttt{contract\$premiums[["{}unit.Zillmer"]]}\\ - $\Pi_\xn^{1,a}$ & Bruttoprämie (``adequate'' bzw. ``expense-load premium'') auf VS 1 & \texttt{contract\$premiums[["{}unit.gross"]]}\\[0.5em] - $\Pi_\xn$ & Nettoprämie & \texttt{contract\$premiums[["{}net"]]}\\ - $\Pi_\xn^Z$ & Zillmerprämie & \texttt{contract\$premiums[["{}Zillmer"]]}\\ - $\Pi_\xn^a$ & Bruttoprämie (``adequate'' bzw. ``expense-load premium'') & \texttt{contract\$premiums[["{}gross"]]}\\[0.5em] - - $\Pi_\xn^\alpha$ & $\alpha$-Kostenprämie (Abschlusskostenprämie)\\ - $\Pi_\xn^\beta$ & $\beta$-Kostenprämie (Inkassokostenprämie)\\ - $\Pi_\xn^\gamma$ & $\gamma$-Kostenprämie (Verwaltungskostenprämie)\\[0.5em] - - - $\Pi_\xn^\text{inv.}$ & Inventarprämie (Netto- plus Verwaltungskostenprämie)\\[1em] - - $\Pi_\xn^s$ & Sparprämie (zum Aufbau des Nettodeckungskapitals investierter Teil der Prämie)\\ - $\Pi_\xn^r$ & Risikoprämie (zur Deckung des einjährigen Ablebensrisikos benutzter Teil der Prämie)\\[0.5em] - - $\Pi_\xn^v$ & verrechnete Prämie (Bruttoprämie inkl. Rabatte, Zuschläge, Stück"-kosten und Steuer) & \texttt{contract\$premiums[["{}written"]]}\\ - $\Pi_\xn^\text{tax}$ & Versicherungssteuer & \texttt{contract\$premiums[["{}tax"]]}\\ -\end{deftab} - -\subsection{Absolutwerte der Cashflows und Barwerte} - -TODO - -\subsection{Rückstellungen} - -\begin{deftab} - $_{t}V_\xn$ & Nettodeckungskapital zum Zeitpunkt $t$ & \texttt{contract\$reserves[,"net"]}\\ - $_{t}V^a_\xn$ & Brutto-Deckungskapital (``adequate'' bzw. ``expense-loaded reserve'') & \texttt{contract\$reserves[,"adequate"]}\\ - $_{t}V^Z_\xn$ & Zillmerreserve bei Zillmerung & \texttt{contract\$reserves[,"Zillmer"]}\\ - $_{t}V^\alpha_xn$ & Abschlusskostenreserve & \texttt{contract\$reserves[,"TODO"]}\\ - $_{t}V^\beta_xn$ & Inkassokostenreserve (typischerweise $=0$)& \texttt{contract\$reserves[,"TODO"]}\\ - $_{t}V^\gamma_xn$ & Verwaltungskostenreserve & \texttt{contract\$reserves[,"gamma"]}\\ - $_{t}V^{Umr}_\xn$ & Umrechnungsreserve (Basis für Vertragskonvertierungen und Prämienfreistellung), inkl. anteiliger Abschlusskostenrückerstattung bei Beendigung innerhalb von fünf Jahren& \texttt{contract\$reserves[,"reduction"]}\\ - $AbskErh(t)$ & Anteilsmäßige Rückerstattung der Abschlusskosten bei Kündigung innerhalb von fünf Jahren& \texttt{contract\$reserves[,"alphaRefund"]}\\[1em] - - $BilRes_{t+u}$ & Bilanzreserve (Interpolation aus $_{t}V^{x}_\xn$ und $_{t+1}V^{x}_\xn$) -\end{deftab} - -\subsection{Werte nach außerplanmäßiger Prämienfreistellung} - -Werte nach außerplanmäßiger Prämienfreistellung werden durch ein $\widetilde{\quad}$ über dem jeweiligen Symbol angezeigt. - - - - - -\end{landscape} -\pagebreak - -\section{Kosten} - -\subsection{Abschlusskosten (\texorpdfstring{$\alpha$}{alpha}-Kosten) / Zillmerkosten (Z-Kosten)} -\begin{itemize} - \item Einmalig (bei Vertragsabschluss) - \begin{itemize} - \item \markiert{an Versicherungssumme} - \item \markiert{an Brutto-Prämiensumme}\footnote{Entspricht Einmalprämie bei Einmalerlag} - \item an Barwert der Versicherungsleistungen (z.B. Rentenbarwert) % HP PV5F & PV6F - \end{itemize} - \item Laufend (während Prämienzahlungsdauer)\footnote{Bei Einmalerlag sind einmalige $\alpha$-Kosten und laufende $\alpha$-Kosten auf die Prämie während der Prämienzahlungsdauer ident.} - \begin{itemize} - \item \markiert{an Bruttoprämie} - \item an Brutto-Prämiensumme - \end{itemize} - \item Laufend (über gesamte Laufzeit des Vertrags) - \begin{itemize} - \item an Bruttoprämie - \item an Brutto-Prämiensumme - \end{itemize} - -\end{itemize} - -% TODO: Check the following tariffs: -% - GW PV5F & PV6F - -\subsection{Inkassokosten (\texorpdfstring{$\beta$}{beta}-Kosten)} - -\begin{itemize} - \item Laufend an Bruttoprämie während Prämienzahlungsdauer (einmalig bei Einmalerlag) -\end{itemize} - - -\subsection{Verwaltungskosten (\texorpdfstring{$\gamma$}{gamma}-Kosten)} - -Laufend während der gesamten Laufzeit verrechnet: - -\begin{itemize} - \item \markiert{an Versicherungssumme (prämienpflichtig)} - \item \markiert{an Versicherungssumme (planmäßig/außerplanmäßig prämienfrei)} - \item an Leistungsbarwert / Rentenbarwert (=Deckungskapital) (prämienfrei) % GW PS0-9 & PV0-9 - \item an Prämiensumme (prämienpflichtig) (=am Rentenbarwert zu Vertragsbeginn bei sof.beg.LR mit EE) - \item an Prämiensumme (planmäßig/außerplanmäßig prämienfrei) - - \item am Ablösekapital während Aufschubzeit % ER III B-PZV Single - \item \markiert{an jeder Erlebenszahlung/Rente (während Liquiditätsphase)} % ER III B-PZV Single - \item am Deckungskapital % SV I5U -\end{itemize} - -% TODO: Check the following tariffs: -% - GW PS0-9 & PV0-9 -% - ER III B-PZV Single - -\subsection{Stückkosten \textit{StkK}} - -\begin{itemize} - \item Stückkosten (Absolutbetrag) $StkK$ pro Jahr während Prämienzahlungsdauer (bzw. einmalig bei Einmalprämie) -\end{itemize} - - -\subsection{Übersicht} - -Die häufigsten Kostentypen sind \markiert{markiert}. - -% % \begin{longtable}{||l|v{3cm}|v{3cm}|v{3cm}|v{3cm}||}\hline\hline -% % & an VS & an PS & an JBP\footnote{während der gesamten Prämienzahlungsdauer} & \\ \hline -% % -% % Abschluss $\alpha$ & \markiert{$\alpha^{VS}_{j}$ (einmalig)} & $\alpha^{PS}_{j}$ (LZ)\footnote{evt. mit jährlicher faktorieller Aufwertung (evt. mit Obergrenze)} & $\alpha^{BP}_{j}$ (LZ)\linebreak \markiert{$\alpha_{3a,j}$ (PrD)} & \\ \hline -% % Zillmer $z$ & \markiert{$z^{VS}_{j}$} & \markiert{$z^{PS}_{j}$} & & \\ \hline -% % Inkasso $\beta$ & & & \markiert{$\beta_{j}$ (PrD)} & \\ \hline -% % Verwaltung $\gamma$ & \markiert{$\gamma^{VS}_{j}$ (PrD)}\linebreak \markiert{$\gamma^{VS,fr}_{j}$ (nach PrD)}\linebreak \markiert{$\gamma^{frei}_{j}$ (PrFrei)} & $\gamma^{PS}_{j}$ (LZ/PrD) & & $\gamma^{BP,PrD}_{j}$ (an ErlZ, LZ) \\\hline\hline -% % % \\[-0.9em]\hline -% % % -% % % Stückkosten $K$ & -% % % \\\hline\hline -% % % -% % % -% % \end{longtable} -% % - -\begin{longtable}{||lr|v{2cm}|v{2cm}|v{2cm}|v{3cm}||}\hline\hline -Typ & Dauer & an VS & an PS & an JBP\footnote{während der gesamten Prämienzahlungsdauer} & \\ \hline - - -Abschluss $\alpha$ & einmalig & \markiert{$\alpha^{VS,once}$} & & & \\ - & Prämiendauer & & & \markiert{$\alpha^{BP,PrD}$} & \\ - & Prämienfrei & & & & \\ - & Vertragsdauer & & $\alpha^{PS,LZ}$\footnote{evt. mit jährlicher faktorieller Aufwertung, evt. mit Obergrenze)} & $\alpha^{BP,LZ}$ & \\ \hline -Zillmer $z$ & einmalig & \markiert{$z^{VS,once}$} & \markiert{$z^{PS,once}$} & & \\ - & Prämiendauer & & & & \\ - & Prämienfrei & & & & \\ - & Vertragsdauer & & $z^{PS,LZ}$ & & \\ \hline -Inkasso $\beta$ & einmalig & & & & \\ - & Prämiendauer & & & \markiert{$\beta^{BP,PrD}$} & \\ - & Prämienfrei & & & & \\ - & Vertragsdauer & & & & \\ \hline -Verwaltung $\gamma$ & einmalig & & & & \\ - & Prämiendauer & \markiert{$\gamma^{VS,PrD}$} & $\gamma^{PS,PrD}$ & & \\ - & Prämienfrei & \markiert{$\gamma^{VS,fr}$} & & & $\gamma^{BP,Erl}$ (an ErlZ) \\ - & Vertragsdauer & $\gamma^{VS,LZ}$ & $\gamma^{PS,LZ}$ & & \\\hline - -\multirow{4}{2.5cm}{{Verwaltung $\tilde{\gamma}$ (außerplanm. prämienfrei)}} & einmalig & & & & \\ - & Prämiendauer & & & & \\ - & Prämienfrei & & & & \\ - & Vertragsdauer & \markiert{$\tilde{\gamma}^{VS,LZ}$} & & & \\ -\hline\hline -\end{longtable} - -\subsection{Kosten-Cashflows} -Jede Kostenart ($\alpha$/Zillmer/$\beta$/$\gamma$/$\tilde{\gamma}$) und Bemessungsgrundlage (VS/{}PS/{}JBP) erzeugt aus den verschiedenen Kostendauern einen Cash-Flow-Vektor in folgender Art, der diskontiert den gesamten Kostenbarwert der jeweiligen Kostenart und Bmgl. liefert: -\begin{equation*} - X_t^{Bmgl} = - \begin{cases} - X^{Bmgl,once} + X^{Bmgl,PrD} + X^{Bmgl,LZ} & \text{für $t=0$} \\ - \hphantom{X^{Bmgl,once} + \;\,} X^{Bmgl,PrD} + X^{Bmgl,LZ} & \text{für $0<t\leq m$} \\ - \hphantom{X^{Bmgl,once} + \;\,} X^{Bmgl,fr} \;\;\; + X^{Bmgl,LZ} & \text{für $m<t\leq n$} - \end{cases} -\end{equation*} - - - -% \subsubsection{Stückkosten:} -% \begin{longtable}{lp{13cm}} -% $K_1$\dots & Stückkosten einmalig bei Vertragsabschluss\\ -% $K$\dots & Stückkosten jährlich während Prämienzahlungsdauer\\ -% $K_{LZ}$\dots & Stückkosten jährlich während der gesamten Laufzeit\\ -% \end{longtable} - -\pagebreak - -\section{Normierte Cashflows (auf Einheitswerte)} - -% \begin{sidewaystable} -\begin{center} - - -% \rotatebox{90}{ -\begin{tabular}{lp{6.5cm}v{1.6cm}v{1.5cm}v{1.5cm}v{1cm}v{1cm}} -& Beschreibung & LR & ALV & ELV & T-F & DD\\\hline\\[0.01em] -$pr_t$ \dots & Prämienzahlungen (vorschüssig) zu $t$ & $t<m$ & $t<m$ & $t<m$ & $t<m$ & $t<m$ \\ -$PS$ & Prämiensumme, $PS=\sum_{t=0}^n pr_t$\\[0.5em]\hline\\[0em] - -$\ddot{e}_t$ \dots & Erlebenszahlungen vorschüssig zu $t$ & $(l+g)...n$ & 0 & $t=n$ & 0 & 0 \\ -$e_t$ \dots & Erlebenszahlungen nachschüssig zu $t+1$& $(l+g)...n$ & 0 & $t=n$ & 0 & 0 \\ -$\ddot{e}_t^{*}$ \dots & garantierte Zahlungen vorschüssig zu $t$ & $(l+g)...n$ & 0 & 0 & $t=n$ & 0 \\ -$e_t^{*}$ \dots & garant. Zahlungen nachschüssig zu $t+1$ & $(l+g)...n$ & 0 & 0 & 0 & 0 \\[0.5em]\hline\\[0em] - -$a_t$ \dots & Ablebenszahlung zu $t+1$ & 0 & $l...n$ & 0 & 0 & 0 \\ -$d_t$ \dots & Zahlung zu $t+1$ bei Eintritt der Erkrankung zwischen $t$ und $t+1$ & 0 & 0 & 0 & 0& $l...n$ \\[0.5em]\hline\\[0em] -$a_t^{(RG)}$ & Ablebenszahlungen für PRG zu $t+1$ (Ableben im Jahr $t$) & $\min(t+1, m, f)$ & 0 & $\min(t+1,m,f)$ & 0 & 0 \\[0.5em]\hline - -\end{tabular} -% } -\end{center} -% \end{sidewaystable} - -Die Cash-Flows können auch in Matrixform dargestellt werden: -\begin{align*} -% - \overrightarrow{CF}^L_t &= \left( - \begin{matrix} % TODO: Add an indication that the first row is in advance, the second in arrears -pr_t & \ddot{e}_t^{*} & \ddot{e}_t & 0 & 0 & 0 \\ -pr^{(nachsch)}_t & e_t^{*} & e_t & a_t & d_t & a_t^{(RG)}\\ -\end{matrix} - \right) -% -& - \overrightarrow{CF}^K_t &= \left( - \begin{matrix} -\alpha^{(VS)}_t & \alpha^{(PS)}_t & \alpha^{(BP)}_t \\ -z^{(VS)}_t & z^{(PS)}_t & -\\ -- & - & \beta_t \\ -\gamma^{(VS)}_t & \gamma^{(PS)}_t & -\\ -\widetilde{\gamma}^{(VS)}_t & - & -\\ - \end{matrix} - \right) -\end{align*} - - -\pagebreak - -\section{Barwerte} - -\subsection{Prämienbarwert} - -\begin{align*} -P_\xn(t) &= \sum_{j=t}^n pr_{t+j} \cdot v^{j-t} \cdot {}_{j-t}p_{x+t}\\ - &= pr_{t} + v \cdot p_{x+t} \cdot P_\xn(t+1) -\end{align*} - -\subsection{Barwert garantierter Zahlungen:} -Garantierte Erlebensleistungen (wenn Aufschubzeit überlebt wurde): -% TODO! -\begin{align*} - E^{*}_\xn(t) &= \begin{cases} - {}_{l-t}p_{x+t} \cdot v^{l-t} \cdot \sum_{j=l}^{n} \left\{\ddot{e}^{*}_{j-t}+ v\cdot e^*_{j-t}\right\} v^{j-t} & \text{für $t<l$ (Aufschubzeit)}\\ - \sum_{j=t}^{n} \left\{\ddot{e}^{*}_{j-t}+ v\cdot e^*_{j-t}\right\} v^{j-t} & \text{für $t\ge l$ (Liquiditätsphase)} - \end{cases}\\ - &= \ddot{e}_t^{*} + \left\{E^{*}_\xn(t+1) + e_t^*\right\}\cdot v \cdot \begin{cases} - 1 & \text{für $t<l$ (Aufschubzeit)}\\ - p_{x+t} & \text{für $t\ge l$ (Liquiditätsphase)} - \end{cases} -\end{align*} - - -\subsection{Erlebensleistungsbarwert:} -% 1. Person: -\begin{align*} -E_\xn(t) &= \sum_{j=t}^n \left(\ddot{e}_{t+j} \cdot v^{j-t} {}_{j-t}p_{x+t} + e_{t+j} \cdot v^{j+1-t} {}_{j+1-t}p_{x+t} \right)\\ - &= \ddot{e}_{t} + v \cdot p_{x+t} \cdot \left\{ e_t + E_\xn(t+1)\right\}\\ -% \intertext{2. Person:} -% E2_{\act[y]{n}}(t) &= \ddot{e}_{t} + v \cdot p_{y+t} \cdot \left\{ e_t + E2_{\act[y]{n}}(t+1)\right\}\\ -% \intertext{gemeinsam:} -% E12_{\act[x,y]{n}}(t) &= \ddot{e}_{t} + v \cdot p_{x+t} \cdot p_{y+t} \cdot \left\{ e_t + E12_{\act[x,y]{n}}(n,t+1)\right\}\\ -\end{align*} - -% \intertext{Garantierte Erlebensleistungen (wenn Aufschubzeit überlebt wurde):} -% % \begin{align*} -% E^{*}_\xn(t) &= \begin{cases} -% {}_{l-t}p_{x+t} \cdot v^{l-t} \cdot \sum_{j=l}^{n} \left\{\ddot{e}^{*}_{j-t}+ v\cdot e^*_{j-t}\right\} v^{j-t} & \text{für $t<l$ (Aufschubzeit)}\\ -% \sum_{j=t}^{n} \left\{\ddot{e}^{*}_{j-t}+ v\cdot e^*_{j-t}\right\} v^{j-t} & \text{für $t\ge l$ (Liquiditätsphase)} -% \end{cases}\\ -% &= \ddot{e}_t^{*} + \left\{E^{*}_\xn(t+1) + e_t^*\right\}\cdot v \cdot \begin{cases} -% 1 & \text{für $t<l$ (Aufschubzeit)}\\ -% p_{x+t} & \text{für $t\ge l$ (Liquiditätsphase)} -% \end{cases} -% \end{align*} -\subsection{Unterjährige Auszahlung der Erlebenszahlungen} - -Analog zu (bei konstanter Rente) -\begin{align*} - \ddot{a}^{(m)}_\xn &= \ddot{a}_x^{(m)} - {}_np_x \cdot v^n \cdot \ddot{a}_{x+n}^{(m)}\\ - \ddot{a}_x^{(m)} &= \alpha(m) \ddot{a}_x - \beta(m) -\end{align*} -mit -\begin{align*} - \alpha(m)&= \frac{d \cdot i}{d^{(m)} \cdot i^{(m)}} & \beta(m) &= \frac{i-i^{(m)}}{d^{(m)} \cdot i^{(m)}} -\end{align*} -und $d = \frac{i}{1+i}$, $i^{(m)} = m \cdot \left((1+i)^{1/m} -1\right)$ und $d^{(m)} = i^{(m)} / \left(1+i^{(m)}/m\right)$ bzw. approximativ mit -\begin{center} -\begin{tabular}{rccccc} -& 0.Ord. & 1.Ord. & 1,5-te Ord. & 2.Ord. & \\\hline -$\alpha(m)$ = & 1 & & & $+\frac{m^2-1}{12 m^2} i^2$ & ...\\ -$\beta(m)$ = & $\frac{m-1}{2m}$ & $+ \frac{m^2-1}{6 m^2}i$ & $\left[+ \frac{1-m^2}{12\cdot m^2}\cdot i^2\right]$ &$+ \frac{1-m^2}{24 m^2}i^2$ & ...\\[0.3em]\hline -\end{tabular} -\end{center} - -ergibt sich auch für allgemeine unterjährige Erlebenszahlungen $\ddot{e}_t$ eine Rekursionsgleichung. - -\subsubsection{Vorschüssige \textit{m}-tel jährliche Auszahlung der Erlebensleistungen} - - -\begin{align*} -E^{(m)}_\xn(t) &= \ddot{e}_t \cdot \ddot{a}_{\act[x+t]{1}}^{(m)} + v \cdot p_{x+1} \cdot E^{(m)}_\xn(t+1)\\ - &= \ddot{e}_t \cdot \left\{\alpha(m) - \beta(m) \cdot \left(1-p_{x+t} \cdot v\right)\right\} + v\cdot p_{x+t} \cdot E^{(m)}_\xn(t+1) -\end{align*} - - -\subsubsection{Nachschüssige \textit{m}-tel jährliche Auszahlung der Erlebensleistungen} - -\begin{align*} -E^{(m)}_\xn(t) &= e_t \cdot a_{\act[x+t]{1}}^{(m)} + v \cdot p_{x+t} \cdot E^{(m)}_\xn(t+1)\\ - &= e_t\cdot\left\{\alpha(m) - \left(\beta(m)+\frac1m\right)\cdot\left(1-p_{x+t} v\right)\right\} + v\cdot p_{x+t} \cdot E^{(m)}_\xn(t+1) -\end{align*} - -\subsubsection{Allgemeine \textit{m}-tel jährliche Auszahlung der Erlebensleistungen} - - -\begin{align*} -E^{(m)}_\xn(t) = &\ddot{e}_t \cdot \left\{\alpha(m) - \beta(m) \cdot \left(1-p_{x+t} \cdot v\right)\right\} + \\ - &e_t\cdot\left\{\alpha(m) - \left(\beta(m)+\frac1m\right)\cdot\left(1-p_{x+t} v\right)\right\} + \\ - &v\cdot p_{x+t} \cdot E^{(m)}_\xn(t+1) -\end{align*} - - - - -\subsection{Ablebensbarwert} - - -\begin{align*} -\intertext{\subsubsection*{Prämienpflichtiger Ablebensbarwert}} -A_\xn(t) &= \sum_{j=t}^n {}_{j-t}p_{x+t} \cdot q_{x+j} \cdot v^{j-t+1} \cdot a_{j} \\ - &= q_{x+t} \cdot v \cdot a_t + p_{x+t} \cdot v \cdot A_\xn(t+1)\\ -% -\intertext{\subsubsection*{Prämienfreier Ablebensbarwert}} -A^{(prf)}_\xn(t) &= q_{x+t} \cdot v \cdot a^{(prf.)}_t + p_{x+t} \cdot v \cdot A^{(prf.)}_\xn(t+1)\\ -% -\intertext{\subsubsection*{Barwert der gesamten Prämienrückgewähr (an BP)}} -A^{(RG)}_\xn(t) &= q_{x+t} \cdot v \cdot a^{(RG)}_t + p_{x+t} \cdot v \cdot A^{(RG)}_\xn(t+1)\\ -% -\intertext{\subsubsection*{Barwert der bisher bereits erworbenen Prämienrückgewähr (an BP)}} -A^{(RG-)}_\xn(t) &= a^{(RG)}_{t-1} \cdot A^{(RG-,1)}_\xn(t)\\ -A^{(RG-,1)}_\xn(t) &= q_{x+t} \cdot v \cdot 1 + p_{x+t} \cdot v \cdot A^{(RG-,1)}_\xn(t+1)\\ -% -\intertext{\subsubsection{Barwert der künftig noch zu erwerbenden Prämienrückgewähr (an BP)}} -A^{(RG+)}_\xn(t) &= A^{(RG)}_\xn(t) - A^{(RG-)}_\xn(t) -\intertext{Dieser Wert ist rekursiv nicht darstellbar.} -\end{align*} - -\subsection{Disease-Barwert} -\begin{align*} -A^d_\xn(t) &= i_{x+t} \cdot v \cdot d_t + p_{x+t} \cdot v \cdot A^d_\xn(t+1)\\ -\end{align*} - -\subsection{Leistungsbarwert} - -\begin{align*} -BW^L_\xn(t) &= E_\xn(t) + A_\xn(t) + A^d_\xn(t) &\text{ohne Prämienrückgewähr}\\ -BW^{L,RG}_\xn(t) &= BW^L_\xn(t) + (1+\rho^{RG}) \cdot A^{(RG)}_\xn(t)\cdot BP_\xn &\text{inkl. Prämienrückgewähr} -\end{align*} - - - -\subsection{Kostenbarwerte} - -\begin{align*} -\intertext{Abschlusskostenbarwerte:} -AK^{(VS)}_\xn(t) &= \alpha^{VS}_{t} + v \cdot p_{x+t} \cdot AK^{(VS)}_\xn(t+1) \\ -AK^{(PS)}_\xn(t) &= \alpha^{PS}_{t} + v \cdot p_{x+t} \cdot AK^{(PS)}_\xn(t+1) \\ -AK^{(BP)}_\xn(t) &= \alpha^{BP}_{t} + + v \cdot p_{x+t} \cdot AK^{(BP)}_\xn(t+1) \\ -\intertext{Zillmerkostenbarwerte:} -ZK^{(VS)}_\xn(t) &= z^{VS}_{t} + v \cdot p_{x+t} \cdot ZK^{(VS)}_\xn(t+1) \\ -ZK^{(PS)}_\xn(t) &= z^{PS}_{t} + v \cdot p_{x+t} \cdot ZK^{(PS)}_\xn(t+1) \\ -\intertext{Inkassokostenbarwerte:} -IK^{(BP)}_\xn(t) &= \beta^{BP}_{t} + v \cdot p_{x+t} \cdot IK^{(BP)}_\xn(t+1) \\ -\intertext{Verwaltungskostenbarwerte:} -VK^{(VS)}_\xn(t) &= \gamma^{VS}_{t} + v \cdot p_{x+t} \cdot VK^{(VS)}_\xn(t+1) \\ -VK^{(PS)}_\xn(t) &= \gamma^{PS}_{t} + v \cdot p_{x+t} \cdot VK^{(PS)}_\xn(t+1) \\ -\widetilde{VK}^{(VS)}_\xn(t) &= \widetilde{\gamma}^{VS}_{t} + v \cdot p_{x+t} \cdot \widetilde{VK}^{(VS)}_\xn(t+1) \\ -\end{align*} - - -\subsection{Darstellung der Barwerte in Vektor-/Matrixform} -Die Leistungs- und Kostenbarwerte können (wie auch die Cashflows zu einem Zeitpunkt) -in Matrixform dargestellt werden (aus Gründen der Übersichtlichkeit wird hier bei -allen Termen der Subscript $\xn$ unterlassen): -\begin{align*} - \overrightarrow{BW}^L(t) &= \left( - \begin{matrix} - P(t), & %E^{Gar}(t), & E(t), & A(t), - BW^L(t), & A^{(RG)}(t) - \end{matrix} - \right) -% - & -% - \overrightarrow{BW}^K(t) &= \left( - \begin{matrix} -AK^{(VS)}(t) & AK^{(PS)}(t) & AK^{(BP)}(t) \\ -% -ZK^{(VS)}(t) & ZK^{(PS)}(t) & -\\ -% -- & - & IK^{(BP)}(t) \\ -% -VK^{(VS)}(t) & VK^{(PS)}(t) & -\\ -\widetilde{VK}^{(VS)}(t) & - & -\\ - \end{matrix} - \right) -% -\end{align*} - - - -\pagebreak - -\section{Prämien} - -\subsection{Nettoprämie:} -\begin{align*} -NP_\xn &= \frac{%E_\xn(0) + A_\xn(0) + \left(1+\rho^{RG}\right) \cdot A^{(RG)}_\xn(0) \cdot BP_\xn} -BW^{L}_\xn(0) + \left(1+\rho^{RG}\right) \cdot A^{(RG)}_\xn(0) \cdot BP_\xn} -{P_\xn(0)} \cdot \left(1+\rho\right) -\end{align*} - - -\subsection{Zillmerprämie (gezillmerte Nettoprämie):} -% TODO: Sind die beta-Kosten proportional zu BP oder zur ZP??? I.e. ist \beta im Nenner mit BP oder im Zähler? -\begin{align*} -ZP_\xn &= -\frac{% -% NP_\xn\cdot P_\xn(0) + - \overbrace{\left(BW^{L}_\xn(0) + \left(1+\rho^{RG}\right) \cdot A^{(RG)}_\xn(0) \cdot BP_\xn\right) \cdot (1+\rho)}^{=NP_\xn\cdot P_\xn(0)} + - ZK^{(VS)}_\xn(0) + - ZK^{(PS)}_\xn(0) \cdot BP_\xn \cdot PS + - ZK^{(BP)}_\xn(0)\cdot BP_\xn -% -}{P_\xn(0)} -\end{align*} - -Varianten: -\begin{itemize} - \item % REFERENCE: GE Tarife! - $\beta$- und $\gamma$-Kosten auch in die Zillmerprämie eingerechnet. Einziger Unterschied zur Bruttoprämie ist dann, dass nur die Zillmerkosten statt der $\alpha$-Kosten aufgeteilt werden. -\begin{align*} -ZP_\xn &= -\left[% -% NP_\xn\cdot P_\xn(0) + - BW^{L,RG}_\xn(0) \cdot (1+\rho) + - \left(ZK^{(VS)}_\xn(0) + IK^{(VS)}_\xn(0) + VK^{(VS)}_\xn(0)\right) + \right.\\ - &\qquad\left.\left(ZK^{(PS)}_\xn(0) + IK^{(PS)}_\xn(0) + VK^{(PS)}_\xn(0)\right) \cdot BP_\xn \cdot PS + \right.\\ - &\qquad\left.\left(ZK^{(BP)}_\xn(0) + IK^{(BP)}_\xn(0) + VK^{(BP)}_\xn(0)\right) \cdot BP_\xn -% -\right] / % -\left(P_\xn(0)\right) -\end{align*} - - \item % REFERENCE: ME - Prämienrückgewähr proportional zu Zillmerprämie (für Berechnung der Zillmerprämie): -\begin{align*} -ZP_\xn &= \frac{BW^L_\xn(0) + \left(1+\rho^{RG}\right) \cdot A^{(RG)}_\xn(0) \cdot ZP_\xn}{P_\xn(0)} \cdot \left(1+\rho\right)\\ -ZP_\xn &= \frac{BW^L_\xn(0)}{P_\xn(0) - \left(1+\rho^{RG}\right)\cdot A^{(RG)}_\xn(0)\cdot \left(1+\rho\right)} \cdot \left(1+\rho\right) -\end{align*} - -\end{itemize} - - -\subsection{Bruttoprämie:} -\begin{align*} -BP_\xn &= \frac% -{ - BW^L_\xn(0)\cdot\left(1+\rho\right) + - \left( AK^{(VS)}_\xn(0) + IK^{(VS)}_\xn(0) + VK^{(VS)}_\xn(0) \right) -}% -{ - P_\xn(0) - - A^{(RG)}_\xn \left(1+\rho^{RG}\right) \left(1+\rho\right) - - AK^{(BP)}_\xn - IK^{(BP)}_\xn - VK^{(BP)}_\xn - - \left(AK^{(PS)}_\xn + IK^{(PS)}_\xn + VK^{(PS)}_\xn\right) PS -} -\end{align*} -Wie man deutlich sehen kann, ist die Kostenursache ($\alpha$, $\beta$ oder $\gamma$) für die Prämienbestimmung irrelevant. Es werden die Barwerte aller drei Kostenarten jeweils bei der entsprechenden Bemessungsgrundlage aufaddiert. -% -\subsection{Ablebensleistung im Jahr \textit{t}:} -\begin{align*} -Abl(t) &= \left\{a_t + a^{(RG)}_t \cdot BP_\xn\right\} \cdot VS -\end{align*} - -\subsection{Koeffizienten in Vektorschreibweise} -Für die Berechnung der Prämien können die Koeffizienten der jeweiligen Barwerte auch mittels der Vektor-/Ma\-trix\-schreib\-wei\-se dargestellt werden (siehe Tabelle \ref{PVCoeff}). -\begin{sidewaystable} -\centering - -% \newenvironment{benarray}{\big(\begin{array}{*4{C{3.4em}}C{12em}}}{\end{array}\big)} -\newenvironment{benarray}{\big(\begin{array}{C{4em}C{5em}C{12em}}}{\end{array}\big)} -\newenvironment{costarray}{\left(\begin{array}{*3{C{4.7em}}}}{\end{array}\right)} -% TODO: laufende alpha-Kosten -\begin{tabular}{||ll|c|c||}\hline\hline - & & Leistungen & Kosten \\ \hline\hline - Terme & & -% $\begin{benarray}P_\xn(t) & E^{Gar}_\xn(t) & E_\xn(t) & A_\xn(t) & A_\xn^{(RG)}(t)\end{benarray}$ - $\begin{benarray}P_\xn(t) & BW^L_\xn(t) & A_\xn^{(RG)}(t)\end{benarray}$ - & - $\begin{costarray} -AK^{(VS)}_\xn(t) & AK^{(PS)}_\xn(t) & AK^{(BP)}_\xn(t) \\ -ZK^{(VS)}_\xn(t) & ZK^{(PS)}_\xn(t) & -\\ -- & - & IK_\xn(t) \\ -VK^{(VS)}_\xn(t) & VK^{(PS)}_\xn(t) & -\\ -VK^{frei}_\xn(t) & - & -\\ - \end{costarray}$ -\\\hline\hline - - -Nettoprämie & Zähler & - $\begin{benarray}0 & 1+\rho & \left(1+\rho^{RG}\right)\cdot BP_\xn \cdot \left(1+\rho\right)\end{benarray}$ - & - -\\ - - & Nenner & - $\begin{benarray} 1 & 0 & 0 \end{benarray}$ - & - -\\\hline - - -Zillmerprämie & Zähler & - $\begin{benarray}0 & 1+\rho & \left(1+\rho^{RG}\right)\cdot BP_\xn \cdot \left(1+\rho\right)\end{benarray}$ - & - $\begin{costarray} -0 & 0 & 0 \\ -1 & BP_\xn\cdot PS & BP_\xn\\ -\orZero{1} & \orZero{BP_\xn\cdot PS} & \orZero{BP_\xn} \\ -\orZero{1} & \orZero{BP_\xn\cdot PS} & \orZero{BP_\xn} \\ -0 & 0 & 0 \\ - \end{costarray}$ -\\ - - & Nenner & - $\begin{benarray} 1 & 0 & 0\end{benarray}$ - & -- -\\\hline - -Bruttoprämie & Zähler & - $\begin{benarray}0 & 1+\rho & 0\end{benarray}$ - & - $\begin{costarray} -1 & 0 & 0 \\ -0 & 0 & 0\\ -1 & 0 & 0 \\ -1 & 0 & 0\\ -0 & 0 & 0\\ - \end{costarray}$ -\\ - - & Nenner & - $\begin{benarray}1 & 0 & -(1+\rho)\cdot(1+\rho^{RG}) \end{benarray}$ - & - $\begin{costarray} -0 & -PS & -1 \\ -0 & 0 & 0\\ -0 & -PS & -1 \\ -0 & -PS & -1\\ -0 & 0 & 0\\ - \end{costarray}$ -\\ - -\hline\hline - -\end{tabular} -\label{PVCoeff} -\caption{Koeffizienten der einzelnen Barwerte zur Berechnung der Prämien} -\end{sidewaystable} - - - -\section{Zuschläge und Abschläge, Vorgeschriebene Prämie} - -\begin{longtable}{p{4cm}p{11cm}} - $oUZu$ \dots & Zuschlag für Vertrag ohne ärztliche Untersuchung\\ - $SuRa=SuRa(VS)$ \dots & Summenrabatt (von Höhe der VS abhängig)\\ - $VwGew$ \dots & Vorweggewinnbeteiligung in Form eines \%-uellen Rabattes auf die Bruttoprämie\\ - $StkK$ \dots & Stückkosten pro Jahr (während Prämienzahlungsdauer, einmalig bei Einmalprämien)\\ - $PrRa=PrRa(BP)$ \dots & Prämienrabatt (von Höhe der Bruttoprämie abhängig)\\ - $VwGew_{StkK}$ \dots & Vorweggewinnbeteiligung in Form eines Rabattes auf die Prämie nach Zu-/Abschlägen (insbesondere nach Stückkosten)\\ - $PartnerRa$ \dots & Partnerrabatt auf Prämie nach Zu-/Abschlägen (z.B. bei Abschluss mehrerer Verträge), additiv zu $VwGew_{StkK}$\\ - - $uz(k)$ \dots & Zuschlag für unterjährige Prämienzahlung ($k$ mal pro Jahr) - \begin{equation*} - uz(k)=\left.\begin{cases}uk_1 & \text {für jährliche}\\uk_2 & \text {für halbjährliche} \\ uk_4 & \text{für quartalsweise}\\uk_{12} & \text{für monatliche}\end{cases}\right\} \text{Prämienzahlung} - \end{equation*}\\ - - - $VSt$ \dots & Versicherungssteuer (in Österreich 4\% oder 11\%) \\ - -\end{longtable} - - -Vorgeschriebene Prämie: -\begin{multline*} -PV_\xn = \left\{ (BP_\xn + oUZu - SuRa) \cdot VS \cdot (1-VwGew) + StkK\right\} \cdot \\ \left(1-PrRa-VwGew_{StkK}-PartnerRa\right)\cdot \frac{1+uz(k)}{k} \cdot (1+VSt) -% -\end{multline*} - -\section{Absolute Cash-Flows und Barwerte} - -TODO - - -\pagebreak - -\section{Rückstellungen und Reserven} - -\subsection{Deckungskapital / Reserve} - -\subsubsection{Nettodeckungskapital prämienpflichtig:} -\begin{align*} -V_\xn(t) &= \left\{BW^L_\xn(t)\cdot(1+\rho) - NP_\xn\cdot P_\xn(t)\right\} \cdot VS -\end{align*} - -\subsubsection{Zillmerreserve prämienpflichtig:} -TODO! -\begin{align*} -V_\xn(t) &= \left\{BW^L_\xn(t)\cdot(1+\rho) - ZP_\xn\cdot P_\xn(t)\right\} \cdot VS =\\ - &= \left\{BW^L_\xn(t)\cdot(1+\rho) - NP_\xn\cdot P_\xn(t) - ZK_\xn(0) \cdot BP_\xn(t) \cdot \frac{P_\xn(t)}{P_\xn(0)}\right\} \cdot VS \\ -\end{align*} - -\subsubsection{Reserve prämienpflichtig:} -Entspricht bei Zillmerung der Zillmerreserve -\begin{align*} -V_\xn(t) &= \left\{BW^L_\xn(t)\cdot(1+\rho) - ZP_\xn\cdot P_\xn(t)\right\} \cdot VS \\ -\end{align*} - -\subsubsection{Bruttoreserve prämienpflichtig:} - -\begin{align*} -V^{(b)}_\xn(t) &= \left\{BW^L_\xn(t)\cdot(1+\rho) + - ZP_\xn\cdot P_\xn(t)\right\} \cdot VS \\ -\end{align*} - -\subsection{Verwaltungskostenreserve:} -\begin{align*} -V^{VwK}_\xn(t) &= \left\{ VK^{(VS)}_\xn(t) - \left(\frac{VK^{(VS)}_\xn(0)}{P_\xn(0)}\right) \cdot P_\xn(t)\right\} \cdot VS\\ -\end{align*} - -\subsection{Reserve prämienfrei:} -\begin{align*} -V^{frei}_\xn(t) &= \left\{(E_\xn(t) + A1_\xn(t))\cdot\widetilde{VW} + TODO \cdot \min(f,m) \cdot BP_\xn(x,n)\cdot VS\right\} \cdot (1+\rho) \\ -\end{align*} - -\subsection{Verwaltungskostenreserve prämienfrei:} -\begin{align*} -V^{WvK,frei}_\xn(t) &= VK4_\xn(t) \cdot \widetilde{VS} -\end{align*} - -\section{Spar- und Risikoprämie} - - -\begin{equation*} - P_\xn(t) = SP_\xn(t) + RP_\xn(t) -\end{equation*} - - -\subsection{Sparprämie} - -\begin{align*} -SP_\xn(t) &= V_\xn(t+1) \cdot v - V_\xn(t) + \left(\ddot{e}_t + v\cdot e_t\right)\cdot VS -\end{align*} - -\subsection{Risikoprämie} -\begin{align*} -RP_\xn(t) &= v\cdot q_{x+t} \cdot \left\{Abl(t) - V_\xn(t+1)\right\} -\end{align*} - - -\section{Bilanzreserve} - -\begin{tabular}{lp{14cm}} -$BegDatum$ \dots & Beginndatum des Vertrags\\ -$BilDatum$ \dots & Bilanzstichtag des Unternehmens\\ -$baf$ \dots & Bilanzabgrenzungsfaktor (Jahresanteil zwischen Abschlussdatum und Bilanzstichtag) -\begin{itemize} - \item 30/360: $baf=\frac{Monat(BilDatum+1)-Monat(BegDatum)+1}{12} \mod 1$ - \item Taggenau: $baf=\frac{BilDatum-BegDatum+1}{TageImJahr(BilDatum)} \mod 1$ - \item etc. -\end{itemize} -\\ -\end{tabular} - - -\subsection{prämienpflichtig} -% Bilanzabgrenzungsfaktor -Bilanzreserve für Versicherungsleistungen: -\begin{align*} -BilRes^{(L)}_\xn(t) &= (1-baf)\cdot V_\xn(t) + baf \cdot V_\xn(t+1)\\ -\intertext{Verwaltungskosten-Bilanzreserve:} -BilRes^{(VwK)}_\xn(t) &= (1-baf)\cdot V^{(VwK)}_\xn(t) + baf \cdot V^{(VwK)}_\xn(t+1)\\ -\intertext{Gesamte Bilanzreserve:} -BilRes_\xn(t) &= BilRes^{(L)}_\xn(t) + BilRes^{(VwK)}_\xn(t)\\ -\intertext{\subsection{prämienfrei} -Bilanzreserve für Versicherungsleistungen, prämienfrei:} -BilRes^{(L),frei}_\xn(t) &= (1-baf)\cdot V^{frei}_\xn(t) + baf \cdot V^{frei}_\xn(t+1)\\ -\intertext{Verwaltungskosten-Bilanzreserve, prämienfrei:} -BilRes^{(VwK),frei}_\xn(t) &= (1-baf)\cdot V^{VwK,frei}_\xn(t) + baf \cdot V^{VwK,frei}_\xn(t+1)\\ -\intertext{Gesamte Bilanzreserve, prämienfrei:} -BilRes^{frei}_\xn(t) &= BilRes^{(L),frei}_\xn(t) + BilRes^{(VwK),frei}_\xn(t)\\\ -\end{align*} - - -\pagebreak - -\section{Prämienfreistellung und Rückkauf} - -Verteilung der $\alpha$-Kosten auf $r$ Jahre für den Rückkauf bzw. die Vertragskonversion -ist nicht bei allen Tarifen oder in allen Jurisdiktionen vorgesehen. => FLAG - -\subsection{Umrechnungsreserve} -Sowohl Prämienfreistellung als auch Rückkauf starten von der Umrechnungsreserve, die sich aus der -Zillmerreserve, den Kostenrückstellungen sowie der Verteilung der $\alpha$-Kosten auf 5 Jahre ergibt: -\begin{align*} - V_\xn^{Umr} &= \left(V_\xn(t) + V^{VwK}_\xn(t) + AbsKErh(t)\right)\cdot (1-VwGew(TODO)) -\end{align*} -wobei $AbsKErh(t)$ die anteilsmäßige Rückzahlung der Abschlusskosten bei Rückkauf innerhalb der ersten -$n(=5)$ Jahre gemäß \S 176 öVersVG bezeichnet: -\begin{align*} -AbskErh(t) &= \max\left(\sum_{j=0}^t Zillm(j) - \frac{t}{5} \sum_{j=0}^n Zillm(j), 0\right)&& \text{(Abschlusskostenerhöhungsbetrag)}\\ -Zillm(t) &= z^{(VS)}_t + z^{(BP)} \cdot BP_\xn + z^{(PS)}_t \cdot BP_\xn \cdot \sum_{j=0}^n pr_j &&\text{(Zillmerprämienanteil/-cashflow im Jahr $j$)} -\end{align*} - -Varianten: -\begin{itemize} - \item Verteilung auf 5 Jahre nicht linear ($t/5$), sondern als 5-jährige Leibrente bewertet, deren Rest noch ausständig ist. - \begin{align*} - AbskErh(t) &= \max\left(\sum_{j=0}^t Zillm(j) - \left(1-\frac{\ddot{a}_{\act[x+t]{r-t}}}{\ddot{a}_{\act[x]{r}}}\right) \frac{t}{5} \sum_{j=0}^n Zillm(j), 0\right) - \end{align*} - \item Bei zahlreichen Tarifen wird die Abschlusskostenerhöhung erst NACH dem Rückkaufsabschlag addidiert, - sodass diese Erhöhung nicht vom Abschlag betroffen ist => FLAG -\end{itemize} - -\subsection{Rückkaufswert (prämienpflichtig)} - -Zahlreiche Tarife sind NICHT rückkaufsfähig => FLAG - -\begin{align*} - Rkf(t) &= f(V_\xn^{Umr}, ...) -\end{align*} - -Die Abschläge von der Umrechnungsreserve auf den Rückkaufswert sind im Allgemeinen nicht -standardisiert, sondern variieren je nach Versicherungsunternehmen stark. Mögliche -Abschläge sind: - -\subsubsection*{Prozentualer Rückkaufsabschlag} -Prozentualer Abschlag auf die Umrechnungsreserve, z.B. $2\%$ oder $5\%$: -$RkfFakt=0.95$ -\begin{align*} -f(V_\xn^{Umr}, ...) = RkfFakt \cdot V_\xn^{Umr} \text{\quad mit $RkfFakt=0.98$ oder $0.95$} -\end{align*} - -\subsubsection*{Lineare Erhöhung des prozentualen Rückkaufsabschlags} -\begin{align*} -f(V_\xn^{Umr}, ...) &= RkfFakt(t) \cdot V_\xn^{Umr} \\ -RkfFakt(t) &= min(k_1 + t \cdot \delta k; k_2) \text{\quad mit z.B. $k_1=0.9$, $\delta k = 0.005$ und $k_2=0.98$} -\end{align*} -Alternativ: -\begin{equation*}% ME L12PLK3Z - RkfFakt(t) = \begin{cases} -0.95 & 1\leq t \leq 3\\ -0.95 + 0.003\cdot(t-3) & 3<t\leq 13\\ -0.98 & 13<t -\end{cases} -\end{equation*} - - -\subsubsection*{Prozentualer Abschlag mit Mindestabschlag} -% GW GDV1 -\begin{align*} -f(V_\xn^{Umr}, ...) &= min\left(0.95 \cdot V_\xn^{Umr}, Abl(t), V_\xn^{Umr}-0.15 \cdot BP_\xn \cdot VS\cdot (1-VwGew)\right) -\end{align*} - -% GW ER11 -\begin{align*} -f(V_\xn^{Umr}, ...) &= min\left(0.95 \cdot V_\xn^{Umr}, Abl(t)\right) -\end{align*} - - -\subsubsection*{Prozentualer Abschlag mit Mindestabschlag (Mindesttodesfallsumme als Grenze)} -% HP/GW: -\begin{align*} -f(V_\xn^{Umr}, ...) &= min(0.95 \cdot V_\xn^{Umr}, MTS(m,t)) \\ -MTS(m,t) &= ... -\end{align*} - - -\subsubsection*{Abschlag proportional zum Deckungskapital} -% GE -\begin{align*} -f(V_\xn^{Umr}, ...) &= V_\xn^{Umr}\cdot \left(s_f + \max(0.97-s_f, 0) \cdot \frac{V_\xn^{Umr}}{VS}\right) \\ -s_f &=\begin{cases}0.92 & \text{ für $t<\max(10, n-5)$}\\ 1 & \text{sonst}\end{cases} -\end{align*} - - -TODO: Weitere mögliche Rückkaufsabschläge rausfinden - -\subsection{Stornogebühr bei Rückkauf} - -Manche Tarife sehen eine fixe Stornogebühr bei Rückkauf (z.B. nur in den ersten 24 Monaten) vor: -% GW -\begin{equation*} - StoGeb = \min\left(\max\left(0.15 \cdot PV(x,n) \cdot\frac{pz}{1-uz(pz)} \cdot\frac1{1+VSt}, 30 \right), 300\right) -\end{equation*} -Ansonsten: $StoGeb=0$. - - - -\subsection{Prämienfreistellung} - -Der Vertrag wird zum Zeitpunkt $f$ prämienfrei gestellt, d.h. ab $f$ wird keine Prämie mehr bezahlt, -die Höhe des Versicherungsschutzes bestimmt sich aus dem zu $f$ vorhandenen Deckungskapital und den -Kostenreserven (Umrechnungsreserve). Bei Prämienrückgewähr wird nur die tatsächlich bezahlte Prämiensumme rückgewährt. - -Aus -\begin{align*} - V_\xn^{Umr}(f) - StoGeb %= \\ - = \underbrace{BW^L_\xn(f)\cdot\left(1+\rho\right)\cdot \widetilde{VS} + BW^{RG,frei}_\xn(f)\cdot \left(1+\rho\right) \cdot BP_\xn \cdot VS}_{=V^{frei}_\xn(f)} + \underbrace{VK^{frei}_\xn(f)}_{=V_\xn^{VwK,frei}(f)} -% = V^{frei}_\xn(f) + V_\xn^{VwK,frei}(f) -\end{align*} -mit -\begin{align*} -BW^{RG,frei}_\xn(f) &= A^{(RG)}_\xn(t) \cdot \underbrace{\sum_{j=0}^{f-1} pr_j}_{\substack{=\min\left(f,m\right)\text{ bei }\\\text{lfd. konst. Prämie}}} && \text{(BW zukünftiger Prämienrückgewähr)} -\end{align*} -ergibt sich die neue Versicherungssumme $\widetilde{VS}(f)$ nach Prämienfreistellung zum Zeitpunkt $f$: -\begin{equation*} -\widetilde{VS}(f) = \frac - { V_\xn^{Umr}(f) - BW^{RG,frei}_\xn(f)\cdot (1+\rho)\cdot BP_\xn \cdot VS - StoGeb} - {BW^L_\xn(f)\cdot(1+\rho) + VK^{frei}_\xn(f)} -\end{equation*} - -\subsection{Reserven nach außerplanmäßiger Prämienfreistellung} - -\subsubsection*{Nettodeckungskapital außerplanmäßig Prämienfrei zu $f$} - -\begin{align*} -V^{(n),prf,f}_\xn(t) &= \left\{BW^{L,prf}_\xn(t)\cdot(1+\rho)\right\} \cdot \widetilde{VS(f)} -\end{align*} - -\subsubsection{Reserve außerplanmäßig prämienfrei:} - -\begin{align*} -V_\xn^{prf,f}(t) &= \left\{BW^{L,pr}_\xn(t)\cdot(1+\rho) + BW^{RG,frei,f}_{\act[x]{x}}(t)\right\} \cdot \widetilde{VS(f)} \\ -\end{align*} - -\subsection{Verwaltungskostenreserve außerplanmäßig prämienfrei:} -\begin{align*} -V^{VwK,prf,f}_\xn(t) &= \left\{ VK^{(VS), prf.}_\xn(t) + VK^{(PS),prf.}_\xn(t)\cdot PS(f)\right\} \cdot \widetilde{VS(f)}\\ -\end{align*} - - -TOCHECK: -\subsection{Reserve prämienfrei:} -\begin{align*} -V^{frei}_\xn(t) &= \left\{(E_\xn(t) + A1_\xn(t))\cdot\widetilde{VW} + TODO \cdot \min(f,m) \cdot BP_\xn(x,n)\cdot VS\right\} \cdot (1+\rho) \\ -\end{align*} - -\subsection{Verwaltungskostenreserve prämienfrei:} -\begin{align*} -V^{WvK,frei}_\xn(t) &= VK4_\xn(t) \cdot \widetilde{VS} -\end{align*} - -\subsection{Umrechnungsreserve außerplanmäßig prämienfrei} -\begin{align*} - V_\xn^{Umr, prf, f}(t) &= \left(V^{prf,f}_\xn(t) + V^{VwK,prf,f}_\xn(t)\right)\cdot (1-VwGew(TODO)) -\end{align*} - - - - - -\end{document} diff --git a/NAMESPACE b/NAMESPACE index d75f824..48ea978 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1 +1,33 @@ -exportPattern("^[[:alpha:]]+") +# Generated by roxygen2: do not edit by hand + +export(getCohortTable) +export(plotValuationTables) +export(undampenTrend) +export(valuationTable) +export(valuationTable_ageShift) +export(valuationTable_improvementFactors) +export(valuationTable_joined) +export(valuationTable_mixed) +export(valuationTable_observed) +export(valuationTable_period) +exportClasses(valuationTable) +exportClasses(valuationTable_ageShift) +exportClasses(valuationTable_improvementFactors) +exportClasses(valuationTable_joined) +exportClasses(valuationTable_mixed) +exportClasses(valuationTable_observed) +exportClasses(valuationTable_period) +exportMethods(ageShift) +exportMethods(ages) +exportMethods(baseTable) +exportMethods(baseYear) +exportMethods(deathProbabilities) +exportMethods(getCohortTable) +exportMethods(getOmega) +exportMethods(getPeriodTable) +exportMethods(lifeTable) +exportMethods(periodDeathProbabilities) +exportMethods(undampenTrend) +import(ggplot2) +import(methods) +import(openxlsx) diff --git a/R/HelperFunctions.R b/R/HelperFunctions.R deleted file mode 100644 index e43c2f6..0000000 --- a/R/HelperFunctions.R +++ /dev/null @@ -1,154 +0,0 @@ -library(abind); - -mergeValues = function(starting, ending, t) { - rbind(starting[1:t,], ending[-1:-t,]) -} -mergeValues3D = function(starting, ending, t) { - abind(starting[1:t,,], ending[-1:-t,,], along=1) -} -# Caution: px is not neccessarily 1-qx, because we might also have dread diseases so that px=1-qx-ix! However, the ix is not used for the survival present value -calculatePVSurvival = function(px=1-qx, qx=1-px, advance, arrears=c(0), ..., m=1, mCorrection = list(alpha=1, beta=0), v=1) { - # assuming advance and arrears have the same dimensions... - init = advance[1]*0; - l = max(length(qx), length(advance), length(arrears)); - q = pad0(qx, l, value=1); - p = pad0(px, l, value=0); - advance = pad0(advance, l, value=init); - arrears = pad0(arrears, l, value=init); - - # TODO: Make this work for matrices (i.e. currently advance and arrears are assumed to be one-dimensional vectors) - # TODO: Replace loop by better way (using Reduce?) - res = rep(0, l+1); - for (i in l:1) { - # coefficients for the payments (including corrections for payments during the year (using the alpha(m) and beta(m)): - advcoeff = mCorrection$alpha - mCorrection$beta*(1-p[i]*v); - arrcoeff = mCorrection$alpha - (mCorrection$beta + 1/m)*(1-p[i]*v); - # The actual recursion: - res[i] = advance[i]*advcoeff + arrears[i]*arrcoeff + v*p[i]*res[i+1]; - } - res[1:l] -} - - -calculatePVGuaranteed = function(advance, arrears=c(0), ..., m=1, mCorrection = list(alpha=1, beta=0), v=1) { - # assuming advance and arrears have the same dimensions... - init = advance[1]*0; - l = max(length(advance), length(arrears)); - advance = pad0(advance, l, value=init); - arrears = pad0(arrears, l, value=init); - - # TODO: Make this work for matrices (i.e. currently advance and arrears are assumed to be one-dimensional vectors) - # TODO: Replace loop by better way (using Reduce?) - res = rep(0, l+1); - for (i in l:1) { - # coefficients for the payments (including corrections for payments during the year (using the alpha(m) and beta(m)): - advcoeff = mCorrection$alpha - mCorrection$beta*(1-v); - arrcoeff = mCorrection$alpha - (mCorrection$beta + 1/m)*(1-v); - # The actual recursion: - res[i] = advance[i]*advcoeff + arrears[i]*arrcoeff + v*res[i+1]; - } - res[1:l] -} - - -# TODO: So far, we are assuming, the costs array has sufficient time steps and does not need to be padded! -calculatePVCosts = function(px=1-qx, qx=1-px, costs, ..., v=1) { - l = max(length(qx), dim(costs)[1]); - p = pad0(px, l, value=0); - costs = costs[1:l,,]; - - # Take the array structure from the cash flow array and initialize it with 0 - res = costs*0; - prev = res[1,,]*0; - # Backward recursion starting from the last time: - for (i in l:1) { - # cat("values at iteration ", i, ": ", v, q[i], costs[i,,], prev); - res[i,,] = costs[i,,] + v*p[i]*prev; - prev=res[i,,]; - } - res -} - -calculatePVDeath = function(px, qx, benefits, ..., v=1) { - init = benefits[1]*0; # Preserve the possible array structure of the benefits -> vectorized calculations possible! - l = max(length(qx), length(benefits)); - q = pad0(qx, l, value=1); - p = pad0(px, l, value=0); - benefits = pad0(benefits, l, value=init); - - # TODO: Make this work for matrices (i.e. currently benefits are assumed to be one-dimensional vectors) - # TODO: Replace loop by better way (using Reduce?) - res = rep(init, l+1); - for (i in l:1) { - # Caution: p_x is not neccessarily 1-q_x, because we might also have dread diseases, so that px=1-qx-ix! - res[i] = v*q[i]*benefits[i] + v*p[i]*res[i+1]; - } - res[1:l] -} - -calculatePVDisease = function(px=1-qx-ix, qx=1-ix-px, ix=1-px-qx, benefits, ..., v=1) { - init = benefits[1]*0; - l = min(length(ix), length(qx), length(benefits)); - qx = pad0(qx, l, value=1); - ix = pad0(ix, l, value=0); - px = pad0(px, l, value=0); - benefits = pad0(benefits, l, value=init); - - # TODO: Make this work for matrices (i.e. currently benefits are assumed to be one-dimensional vectors) - # TODO: Replace loop by better way (using Reduce?) - res = rep(init, l+1); - for (i in l:1) { - res[i] = v*ix[i]*benefits[i] + v*px[i]*res[i+1]; - } - res[1:l] -} - - - -getSavingsPremium = function(reserves, v=1) { - pad0(reserves[-1], length(reserves))*v - reserves -} - -correctionPaymentFrequency = function(m = 1, i = self$i, order = 0) { - # 0th-order approximation - alpha=1; - beta=0; - # negative orders mean that NO correction is done, e.g. because other means of - # correction are used like an explicit premium frequency loading on the premium. - if (order >=0 ) beta = beta + (m-1)/(2*m); - # For higher orders, simply add one term after the other! - if (order >= 1) beta = beta + (m^2-1)/(6*m^2)*i; # S-Versicherung: *(1-i/2) - # order 1.5 has a special term that should NOT be used for higher-order approximations! - if (order == 1.5) beta = beta + (1-m^2)/(12*m^2)*i^2; - - if (order >= 2) { - beta = beta + (1-m^2)/(24*m^2)*i^2; - alpha = alpha + (m^2-1)/(12*m^2)*i^2; - } - # Exact value - if (order == Inf) { - d = i/(1+i); - im = m * ((1+i)^(1/m) - 1); - dm = im / (1+im/m); - - alpha = d*i / (dm*im); - beta = (i-im) / (dm*im); - } - list(alpha=alpha, beta=beta); -} - -pad0 = function(v, l, value=0) { - if (l>=length(v)) { - c(v, rep(value, l-length(v))) - } else { - v[0:l] - } -} - -valueOrFunction = function(val, ...) { - if (is.function(val)) { - val(...) - } else { - val - } -} diff --git a/R/InsuranceContract.R b/R/InsuranceContract.R deleted file mode 100644 index f9eab7d..0000000 --- a/R/InsuranceContract.R +++ /dev/null @@ -1,209 +0,0 @@ -library(R6) -library(openxlsx); - -InsuranceContract = R6Class("InsuranceContract", - - public = list( - tarif = NA, - - #### Contract settings - params = list( - sumInsured = 1, - premiumWaiver = 0, - YOB = NA, - age = NA, - policyPeriod = Inf, - premiumPeriod = 1, - deferral = 0, - guaranteed = 0, - - premiumPayments = PaymentTimeEnum("in advance"), - benefitPayments = PaymentTimeEnum("in advance"), - - premiumFrequency = 1, - benefitFrequency = 1, # Only for annuities! - - loadings = list(), # Allow overriding the tariff-defined loadings (see the InsuranceTariff class for all possible names) - surrenderPenalty = TRUE, # Set to FALSE after the surrender penalty has been applied once, e.g. on a premium waiver - alphaRefunded = FALSE # Alpha costs not yet refunded (in case of contract changes) - ), - - #### Caching values for this contract, initialized/calculated when the object is created - values = list( - basicData = NA, - transitionProbabilities = NA, - - cashFlowsBasic = NA, - cashFlows = NA, - cashFlowsCosts = NA, - premiumSum = 0, - - presentValues = NA, - presentValuesCosts = NA, - - premiumCoefficients = NA, - premiums = NA, - absCashFlows = NA, - absPresentValues = NA, - - reserves = NA, - - premiumComposition = NA - ), - - #### Keeping the history of all contract changes during its lifetime - history = list(), - - - #### The code: - - initialize = function(tarif, age, sumInsured = 1, - policyPeriod, premiumPeriod = policyPeriod, guaranteed = 0, - ..., - loadings = list(), - premiumPayments = "in advance", benefitPayments = "in advance", - premiumFrequency = 1, benefitFrequency = 1, - deferral = 0, YOB = 1975) { - self$tarif = tarif; - self$params$age = age; - self$params$policyPeriod = policyPeriod; - if (missing(premiumPeriod) && !is.null(self$tarif$defaultPremiumPeriod)) { - self$params$premiumPeriod = self$tarif$defaultPremiumPeriod; - } else { - self$params$premiumPeriod = premiumPeriod; - } - self$params$sumInsured = sumInsured; - if (!missing(deferral)) self$params$deferral = deferral; - if (!missing(YOB)) self$params$YOB = YOB; - if (!missing(premiumPayments)) self$params$premiumPayments = premiumPayments; - if (!missing(benefitPayments)) self$params$benefitPayments = benefitPayments; - if (!missing(premiumFrequency)) self$params$premiumFrequency = premiumFrequency; - if (!missing(benefitFrequency)) self$params$benefitFrequency = benefitFrequency; - if (!missing(guaranteed)) self$params$guaranteed = guaranteed; - if (!missing(loadings)) self$params$loadings = loadings; - - self$calculateContract(); - }, - - addHistorySnapshot = function(time=0, comment="Initial contract values", type="Contract", params=self$params, values = self$values) { - self$history = rbind(self$history, - list(time=list("time"=time, "comment"=comment, "type"=type, "params"=params, "values"=values))); - }, - - calculateContract = function() { - self$values$transitionProbabilities = self$determineTransitionProbabilities(); - - self$values$cashFlowsBasic = self$determineCashFlowsBasic(); - self$values$cashFlows = self$determineCashFlows(); - self$values$premiumSum = self$determinePremiumSum(); - self$values$cashFlowsCosts = self$determineCashFlowsCosts(); - - self$values$presentValues = self$calculatePresentValues(); - self$values$presentValuesCosts = self$calculatePresentValuesCosts(); - - # the premiumCalculation function returns the premiums AND the cofficients, - # so we have to extract the coefficients and store them in a separate variable - res = self$calculatePremiums(); - self$values$premiumCoefficients = res[["coefficients"]]; - self$values$premiums = res[["premiums"]] - - # Update the cash flows and present values with the values of the premium - pvAllBenefits = self$calculatePresentValuesBenefits() - self$values$presentValues = cbind(self$values$presentValues, pvAllBenefits) - - self$values$absCashFlows = self$calculateAbsCashFlows(); - self$values$absPresentValues = self$calculateAbsPresentValues(); - self$values$reserves = self$calculateReserves(); - self$values$basicData = self$getBasicDataTimeseries() - self$values$premiumComposition = self$premiumAnalysis(); - - self$addHistorySnapshot(0, "Initial contract values", type="Contract", params=self$params, values = self$values); - }, - - determineTransitionProbabilities = function(contractModification=NULL) { - do.call(self$tarif$getTransitionProbabilities, c(self$params, self$values, list(contractModification=contractModification))); - }, - determineCashFlowsBasic = function(contractModification=NULL) { - do.call(self$tarif$getBasicCashFlows, self$params); - }, - determineCashFlows = function(contractModification=NULL) { - do.call(self$tarif$getCashFlows, c(self$params, self$values, list(contractModification=contractModification))); - }, - determinePremiumSum = function(contractModification=NULL) { - sum(self$values$cashFlows$premiums_advance + self$values$cashFlows$premiums_arrears); - }, - determineCashFlowsCosts = function(contractModification=NULL) { - do.call(self$tarif$getCashFlowsCosts, c(self$params, self$values, list(contractModification=contractModification))); - }, - calculatePresentValues = function(contractModification=NULL) { - do.call(self$tarif$presentValueCashFlows, c(self$params, self$values, list(contractModification=contractModification))); - }, - calculatePresentValuesCosts = function(contractModification=NULL) { - do.call(self$tarif$presentValueCashFlowsCosts, c(self$params, self$values, list(contractModification=contractModification))); - }, - calculatePremiums = function(contractModification=NULL) { - do.call(self$tarif$premiumCalculation, c(self$params, self$values, list(contractModification=contractModification))); - }, - calculatePresentValuesBenefits = function(contractModification=NULL) { - do.call(self$tarif$presentValueBenefits, c(self$params, self$values, list(contractModification=contractModification))); - }, - calculateAbsCashFlows = function(contractModification=NULL) { - do.call(self$tarif$getAbsCashFlows, c(self$params, self$values, list(contractModification=contractModification))); - }, - calculateAbsPresentValues = function(contractModification=NULL) { - do.call(self$tarif$getAbsPresentValues, c(self$params, self$values, list(contractModification=contractModification))); - }, - calculateReserves = function(contractModification=NULL) { - do.call(self$tarif$reserveCalculation, c(self$params, self$values, list(contractModification=contractModification))); - }, - premiumAnalysis = function(contractModification=NULL) { - do.call(self$tarif$premiumDecomposition, c(self$params, self$values, list(contractModification=contractModification))); - }, - getBasicDataTimeseries = function(contractModification=NULL) { - do.call(self$tarif$getBasicDataTimeseries, c(self$params, self$values, list(contractModification=contractModification))); - }, - - # Premium Waiver: Stop all premium payments at time t - # the SumInsured is determined from the available - premiumWaiver = function (t) { - newSumInsured = self$values$reserves[[toString(t), "PremiumFreeSumInsured"]]; - self$params$premiumWaiver = TRUE; - self$params$surrenderPenalty = FALSE; # Surrencer penalty has already been applied, don't apply a second time - self$params$alphaRefunded = TRUE; # Alpha cost (if applicable) have already been refunded partially, don't refund again - - self$params$sumInsured = newSumInsured; - - self$values$cashFlowsBasic = mergeValues(starting=self$values$cashFlowsBasic, ending=self$determineCashFlowsBasic(t), t=t); - self$values$cashFlows = mergeValues(starting=self$values$cashFlows, ending=self$determineCashFlows(t), t=t); - # Premium sum is not affected by premium waivers, i.e. everything depending on the premium sum uses the original premium sum! - # self$values$premiumSum = self$determinePremiumSum(); - self$values$cashFlowsCosts = mergeValues3D(starting=self$values$cashFlowsCosts, ending=self$determineCashFlowsCosts(t), t=t); - - pv = self$calculatePresentValues(t); - pvc = self$calculatePresentValuesCosts(t); - self$values$presentValuesCosts = mergeValues3D(starting=self$values$presentValuesCosts, ending=pvc, t=t); - - # TODO: - # the premiumCalculation function returns the premiums AND the cofficients, - # so we have to extract the coefficients and store them in a separate variable - # res = self$calculatePremiums(t); - # self$values$premiumCoefficients = mergeValues(starting=self$values$premiumCoefficients, ending=res[["coefficients"]], t=t); - # self$values$premiums = mergeValues(starting= = res[["premiums"]] - - # Update the cash flows and present values with the values of the premium - pvAllBenefits = self$calculatePresentValuesBenefits() - self$values$presentValues = mergeValues(starting=self$values$presentValues, ending=cbind(pv, pvAllBenefits), t=t); - - self$values$absCashFlows = mergeValues(starting=self$values$absCashFlows, ending=self$calculateAbsCashFlows(t), t=t); - self$values$absPresentValues = mergeValues(starting=self$values$absPresentValues, ending=self$calculateAbsPresentValues(t), t=t); - self$values$reserves = mergeValues(starting=self$values$reserves, ending=self$calculateReserves(t), t=t); - self$values$basicData = mergeValues(starting=self$values$basicData, ending=self$getBasicDataTimeseries(t), t=t); - self$values$premiumComposition = mergeValues(starting=self$values$premiumComposition, ending=self$premiumAnalysis(t), t=t); - - self$addHistorySnapshot(time=t, comment=sprintf("Premium waiver at time %d", t), type="PremiumWaiver", params=self$params, values=self$values); - }, - - dummy=NULL - ) -); -# InsuranceContract$debug("premiumWaiver") diff --git a/R/InsuranceTarif.R b/R/InsuranceTarif.R deleted file mode 100644 index 72eb808..0000000 --- a/R/InsuranceTarif.R +++ /dev/null @@ -1,572 +0,0 @@ -library(R6) -# library(lifecontingencies) -library(objectProperties) - -TariffTypeEnum = setSingleEnum("TariffType", levels = c("annuity", "wholelife", "endowment", "pureendowment", "terme-fix", "dread-disease")) -PaymentTimeEnum = setSingleEnum("PaymentTime", levels = c("in advance", "in arrears")) -#PaymentCountEnum = setSingleEnum(PaymentCount, levels = c(1,2,3)) - - -# Initialize a cost matrix with dimensions: [CostType, Basis, Period], with: -# CostType: alpha, Zillmer, beta, gamma, gamma_nopremiums -# Basis: SumInsured, SumPremiums, GrossPremium -# Period: once, PremiumPeriod, PremiumFree, PolicyPeriod -# TODO: gamma an Erlebensleistungen? -initializeCosts = function() { - dimnm=list( - c("alpha", "Zillmer", "beta", "gamma", "gamma_nopremiums"), - c("SumInsured", "SumPremiums", "GrossPremium"), - c("once", "PremiumPeriod", "PremiumFree", "PolicyPeriod") - ); - array(0, - dim=sapply(dimnm, length), - dimnames=dimnm - ) -} - - -# base class for Insurance Tarifs (holding contrat-independent values and -# providing methods to calculate cash flows, premiums, etc.). Objects of this -# class do NOT contain contract-specific values like age, death probabilities, -# premiums, reserves, etc. -InsuranceTarif = R6Class( - "InsuranceTarif", - public = list( - name = "Insurance Contract Type", - tarif = "Generic Tarif", - desc = "Description of the contract", - - states = c("alive", "dead"), - mortalityTable = NULL, - invalidityTable = NULL, - i = 0, # guaranteed interest rate - v = 1, # discount factor - tariffType = TariffTypeEnum("wholelife"), # possible values: annuity, wholelife, endowment, pureendowment, terme-fix - premiumFrequencyOrder = 0, - benefitFrequencyOrder = 0, - widowFactor = 0, - - defaultPremiumPeriod = NULL, - premiumRefund = 0, - premiumRefundLoading = 0, # Mindesttodesfallrisiko soll damit erreicht werden, z.B. 105% der einbezahlten Prämien - surrenderValueCalculation = NULL, # By default, not surrender penalties - - costs = list(), - benefitFrequencyLoading = list("1" = 0.0, "2" = 0.0, "4" = 0.0, "12" = 0.0), # TODO: Properly implement this - premiumFrequencyLoading = list("1" = 0.0, "2" = 0.0, "4" = 0.0, "12" = 0.0), # TODO: Implement this - loadings = list( # Loadings can also be function(sumInsured, premiums) # TODO: Add other possible arguments - "ongoingAlphaGrossPremium" = 0, # Acquisition cost that increase the gross premium - "tax" = 0.04, # insurance tax, factor on each premium paid - "unitcosts" = 0, # annual unit cost for each policy (Stückkosten), absolute value - "security" = 0, # Additional security loading on all benefit payments, factor on all benefits - "noMedicalExam" = 0, # Loading when no medicial exam is done, % of SumInsured - "noMedicalExamRelative" = 0, # Loading when no medicial exam is done, % of gross premium - "sumRebate" = 0, # gross premium reduction for large premiums, % of SumInsured - "premiumRebate" = 0, # gross premium reduction for large premiums, % of gross premium # TODO - "advanceProfitParticipation" = 0, # Vorweggewinnbeteiligung (%-Satz der Bruttoprämie) - "advanceProfitParticipationInclUnitCost" = 0, # Vorweggewinnbeteiligung (%-Satz der Prämie mit Zu-/Abschlägen, insbesondere nach Stückkosten) - "partnerRebate" = 0 # Partnerrabatt auf Prämie mit Zu-/Abschlägen, wenn mehr als 1 Vertrag gleichzeitig abgeschlossen wird, additiv mit advanceBonusInclUnitCost and premiumRebate - ), - - features = list( #Special cases for the calculations - "betaGammaInZillmer" = FALSE, # Whether beta and gamma-costs should be included in the Zillmer premium calculation - "alphaRefundLinear" = TRUE # Whether the refund of alpha-costs on surrender is linear in t or follows the NPV of an annuity - ), - - - initialize = function(name = NULL, mortalityTable = NULL, i = NULL, type = "wholelife", ..., loadings=list(), invalidityTable=NULL, features = list(), premiumPeriod = NULL, premiumFrequencyOrder = 0, benefitFrequencyOrder = 0, costs, surrenderValueCalculation) { - if (!missing(name)) self$name = name; - if (!missing(mortalityTable)) self$mortalityTable = mortalityTable; - if (!missing(i)) self$i = i; - if (!missing(type)) self$tariffType = type; - self$costs = if (!missing(costs)) costs else initializeCosts(); - if (!missing(benefitFrequencyOrder)) self$benefitFrequencyOrder = benefitFrequencyOrder; - if (!missing(premiumFrequencyOrder)) self$premiumFrequencyOrder = premiumFrequencyOrder; - # Set default premiumPeriod, e.g. single premium, to be used when the contract has no explicit premium period - if (!missing(premiumPeriod)) self$defaultPremiumPeriod = premiumPeriod; - if (!missing(features)) self$features = c(features, self$features); - if (!missing(surrenderValueCalculation)) self$surrenderValueCalculation = surrenderValueCalculation; - if (!missing(invalidityTable)) self$invalidityTable = invalidityTable; - if (!missing(loadings)) self$loadings = self$getLoadings(loadings=loadings); - - self$v = 1/(1+self$i); - - cat(paste0("Initializing Insurance Tarif ", self$name, "...\n")); - }, - - # Merge a possibly passed loadings override with this tariff's default loadings: - getLoadings = function(loadings=list(), ...) { - c(loadings, self$loadings) - }, - - getAges = function(age, ..., YOB = 2000) { - ages = ages(self$mortalityTable, YOB = YOB); - if (age > 0) { - ages = ages[-age:-1]; - } - ages - }, - - getTransitionProbabilities = function(age, ..., YOB = 2000) { - ages = self$getAges(age, YOB = YOB); - q = deathProbabilities(self$mortalityTable, YOB = YOB); - if (age > 0) { - q = q[-age:-1]; - } - if (!is.null(self$invalidityTable)) { - i = deathProbabilities(self$invalidityTable, YOB=YOB); - if (age > 0) { - i = i[-age:-1]; - } - } else { - i = rep(0, length(q)); - } - i = pad0(i, length(q)); - df = data.frame(age=ages, q=q, i=i, p=1-q-i, row.names = ages-age) - df - }, - getBasicCashFlows = function(age, ..., guaranteed = 0, policyPeriod = inf, deferral = 0, maxAge = getOmega(self$mortalityTable)) { - maxlen = min(maxAge - age, policyPeriod); - cf = data.frame( - guaranteed = rep(0, maxlen+1), - survival = rep(0, maxlen+1), - death = rep(0, maxlen+1), - disease = rep(0, maxlen+1) - ); - if (self$tariffType == "annuity") { - # guaranteed payments exist only with annuities (first n years of the payment) - cf$guaranteed = c(rep(0, deferral), rep(1, guaranteed), rep(0, max(0, maxlen+1 - deferral - guaranteed))) - cf$survival = c(rep(0, deferral + guaranteed), rep(1, max(0, maxlen - deferral - guaranteed)), 0) - } else if (self$tariffType == "terme-fix") { - cf$guaranteed = c(rep(0, policyPeriod), 1); - } else if (self$tariffType == "dread-disease") { - cf$disease = c(rep(0, deferral), rep(1, maxlen - deferral), 0); - } else { - if (self$tariffType == "endowment" || self$tariffType == "pureendowment") { - cf$survival = c(rep(0, policyPeriod), 1); - } - if (self$tariffType == "endowment" || self$tariffType == "wholelife") { - cf$death = c(rep(0, deferral), rep(1, maxlen - deferral), 0); - } - } - cf - }, - - getCashFlows = function(age, ..., premiumPayments = "in advance", benefitPayments = "in advance", guaranteed = 0, policyPeriod=Inf, premiumPeriod = policyPeriod, deferral=0, maxAge = getOmega(self$mortalityTable), cashFlowsBasic = NULL, premiumWaiver = FALSE) { - if (missing(cashFlowsBasic)) { - cashFlowsBasic = self$getBasicCashFlows(age = age, ..., guaranteed = guaranteed, - policyPeriod = policyPeriod, deferral = deferral, maxAge = maxAge); - } - cflen = length(cashFlowsBasic$survival); - zeroes = pad0(0, cflen); - ages = pad0(self$getAges(age, YOB = YOB), cflen); - cf = data.frame( - premiums_advance = zeroes, - premiums_arrears = zeroes, - guaranteed_advance = zeroes, - guaranteed_arrears = zeroes, - survival_advance = zeroes, - survival_arrears = zeroes, - death_SumInsured = zeroes, - disease_SumInsured = zeroes, - death_GrossPremium = zeroes, - death_Refund_past = zeroes, - death_PremiumFree = zeroes, - row.names = ages-age - ); - - # Premiums: - if (!premiumWaiver) { - premiums = pad0(rep(1, min(premiumPeriod, policyPeriod)), cflen); - if (premiumPayments == "in advance") { - cf$premiums_advance = premiums; - } else { - cf$premiums_arrears = premiums; - } - } - - # Survival Benefits - if (benefitPayments == "in advance") { - cf$guaranteed_advance = pad0(cashFlowsBasic$guaranteed, cflen); - cf$survival_advance = pad0(cashFlowsBasic$survival, cflen); - } else { - cf$guaranteed_arrears = pad0(cashFlowsBasic$guaranteed, cflen); - cf$survival_arrears = pad0(cashFlowsBasic$survival, cflen); - } - - # Death Benefits - cf$death_SumInsured = pad0(cashFlowsBasic$death, cflen); - cf$disease_SumInsured = pad0(cashFlowsBasic$disease, cflen); - cf$death_PremiumFree = cf$death_SumInsured; - # premium refund - if (self$premiumRefund != 0) { - totalpremiumcf = cf$premiums_advance + pad0(c(0, cf$premiums_arrears), cflen); - - # death benefit for premium refund is the sum of all premiums so far: - cf$death_GrossPremium = pad0(Reduce("+", totalpremiumcf[0:policyPeriod], accumulate=TRUE), cflen) - cf$death_Refund_past = cf$death_GrossPremium - cf$death_Refund_past[(cf$death_GrossPremium >0)] = 1; - } - - cf - }, - - getCashFlowsCosts = function(age, ..., policyPeriod=Inf, premiumPeriod = policyPeriod, premiumWaiver = FALSE, maxAge = getOmega(self$mortalityTable)) { - maxlen = min(maxAge - age, policyPeriod)+1; - policyPeriod = min(maxAge - age, policyPeriod); - premiumPeriod = min(policyPeriod, premiumPeriod); - - dm = dim(self$costs); - dmnames = dimnames(self$costs); - cf = array(0, dim=list(maxlen, dm[1], dm[2]), dimnames=list(0:(maxlen-1), dmnames[[1]], dmnames[[2]])); - cf[1,,] = cf[1,,] + self$costs[,,"once"] - for (i in 1:premiumPeriod) { - cf[i,,] = cf[i,,] + self$costs[,,"PremiumPeriod"]; - } - if (premiumPeriod<policyPeriod) { - for (i in (premiumPeriod+1):policyPeriod) { - cf[i,,] = cf[i,,] + self$costs[,,"PremiumFree"]; - } - } - for (i in 1:policyPeriod) { - cf[i,,] = cf[i,,] + self$costs[,,"PolicyPeriod"]; - } - - # After premiums are waived, use the gamma_nopremiums instead of gamma: - if (premiumWaiver) { - cf[,"gamma",] = cf[,"gamma_nopremiums",]; - } - cf - }, - - presentValueCashFlows = function(cashFlows, age, ..., premiumFrequency = 1, benefitFrequency = 1, maxAge = getOmega(self$mortalityTable)) { - len = length(cashFlows$premiums_advance); - qq = self$getTransitionProbabilities (age, ...); - qx = pad0(qq$q, len); - ix = pad0(qq$i, len); - px = pad0(qq$p, len); - benefitFrequencyCorrection = correctionPaymentFrequency(m = benefitFrequency, i = self$i, order = self$benefitFrequencyOrder); - premiumFrequencyCorrection = correctionPaymentFrequency(m = premiumFrequency, i = self$i, order = self$premiumFrequencyOrder); - - pvRefund = calculatePVDeath (px, qx, cashFlows$death_GrossPremium, v=self$v); - pvRefundPast = calculatePVDeath (px, qx, cashFlows$death_Refund_past, v=self$v) * (cashFlows[,"death_GrossPremium"]-cashFlows[,"premiums_advance"]); - - pv = cbind( - premiums = calculatePVSurvival (px, qx, cashFlows$premiums_advance, cashFlows$premiums_arrears, m=premiumFrequency, mCorrection=premiumFrequencyCorrection, v=self$v), - guaranteed = calculatePVGuaranteed (cashFlows$guaranteed_advance, cashFlows$guaranteed_arrears, m=benefitFrequency, mCorrection=benefitFrequencyCorrection, v=self$v), - survival = calculatePVSurvival (px, qx, cashFlows$survival_advance, cashFlows$survival_arrears, m=benefitFrequency, mCorrection=benefitFrequencyCorrection, v=self$v), - death_SumInsured = calculatePVDeath (px, qx, cashFlows$death_SumInsured, v=self$v), - disease_SumInsured = calculatePVDisease(px, qx, ix, cashFlows$disease_SumInsured, v=self$v), - death_GrossPremium = pvRefund, - death_Refund_past = pvRefundPast, - death_Refund_future = pvRefund - pvRefundPast, - death_PremiumFree = calculatePVDeath (px, qx, cashFlows$death_PremiumFree, v=self$v) - ); - - rownames(pv) <- pad0(rownames(qq), len); - pv - }, - - presentValueCashFlowsCosts = function(cashFlowsCosts, age, ..., maxAge = getOmega(self$mortalityTable)) { - len = dim(cashFlowsCosts)[1]; - q = self$getTransitionProbabilities (age, ...); - qx = pad0(q$q, len); - px = pad0(q$p, len); - - pvc = calculatePVCosts(px, qx, cashFlowsCosts, v=self$v); - pvc - }, - - # Cost values (CF, present values, etc.) are an Tx5x3 matrix => convert to Tx15 matrix (alpha | Zillmer | beta | gamma) - costValuesAsMatrix = function (costValues) { - dm = dim(costValues); - nm = dimnames(costValues); - colnames=t(outer(nm[[2]], nm[[3]], paste, sep=".")); - - res = aperm(costValues, c(1,3,2)); - dim(res) = c(dm[[1]], dm[[2]]*dm[[3]]); - dimnames(res) = list(nm[[1]], colnames) - res - }, - - getAbsCashFlows = function(cashFlows, cashFlowsCosts, premiums, sumInsured=1, premiumSum=0, ...) { - refundAddon = self$premiumRefundLoading; - - # TODO: Set up a nice list with coefficients for each type of cashflow, rather than multiplying each item manually (this also mitigates the risk of forgetting a dimension, because then the dimensions would not match, while here it's easy to overlook a multiplication) - # Multiply each CF column by the corresponding basis - cashFlows[,c("premiums_advance", "premiums_arrears")] = cashFlows[,c("premiums_advance", "premiums_arrears")] * premiums[["gross"]]; - cashFlows[,c("guaranteed_advance", "guaranteed_arrears", "survival_advance", "survival_arrears", "death_SumInsured", "death_PremiumFree", "disease_SumInsured")] = - cashFlows[,c("guaranteed_advance", "guaranteed_arrears", "survival_advance", "survival_arrears", "death_SumInsured", "death_PremiumFree", "disease_SumInsured")] * sumInsured; - cashFlows[,c("death_GrossPremium", "death_Refund_past")] = cashFlows[,c("death_GrossPremium","death_Refund_past")] * premiums[["gross"]] * (1+refundAddon); - - # Sum all death-related payments to "death" and remove the death_GrossPremium column - cashFlows[,"death_SumInsured"] = cashFlows[,"death_SumInsured"] + cashFlows[,"death_GrossPremium"] - colnames(cashFlows)[colnames(cashFlows)=="death_SumInsured"] = "death"; - # cashFlows[,"death_GrossPremium"] = NULL; - - cashFlowsCosts = cashFlowsCosts[,,"SumInsured"] * sumInsured + - cashFlowsCosts[,,"SumPremiums"] * premiumSum * premiums[["gross"]] + - cashFlowsCosts[,,"GrossPremium"] * premiums[["gross"]]; - - cbind(cashFlows, cashFlowsCosts) - }, - - getAbsPresentValues = function(presentValues, premiums, sumInsured=1, premiumSum=0, ...) { - refundAddon = self$premiumRefundLoading; - pv = presentValues; - - #pv[,"age"] = pv[,"premiums"]; - #colnames(pv)[colnames(pv)=="age"] = "premiums.unit"; - - # Multiply each CF column by the corresponding basis - pv[,"premiums"] = pv[,"premiums"] * premiums[["gross"]]; - pv[,c("guaranteed", "survival", "death_SumInsured", "disease_SumInsured", "death_PremiumFree")] = - pv[,c("guaranteed", "survival", "death_SumInsured", "disease_SumInsured", "death_PremiumFree")] * sumInsured; - pv[,c("death_GrossPremium", "death_Refund_past", "death_Refund_future")] = pv[,c("death_GrossPremium", "death_Refund_past", "death_Refund_future")] * premiums[["gross"]] * (1+refundAddon); - pv[,c("benefits", "benefitsAndRefund", "alpha", "Zillmer", "beta", "gamma", "gamma_nopremiums")] = - pv[,c("benefits", "benefitsAndRefund", "alpha", "Zillmer", "beta", "gamma", "gamma_nopremiums")] * sumInsured; - - # Sum all death-related payments to "death" and remove the death_SumInsured column - pv[,"death_SumInsured"] = pv[,"death_SumInsured"] + pv[,"death_GrossPremium"] - colnames(pv)[colnames(pv)=="death_SumInsured"] = "death"; - - cbind("premiums.unit"=presentValues[,"premiums"], pv) - }, - - - presentValueBenefits = function(presentValues, presentValuesCosts, premiums, sumInsured=1, premiumSum=0, ...) { - refundAddon = self$premiumRefundLoading; - # TODO: Here we don't use the securityLoading parameter => Shall it be used or are these values to be understood without additional security loading? - benefits = presentValues[,"survival"] + presentValues[,"death_SumInsured"] + presentValues[,"disease_SumInsured"]; - allBenefits = presentValues[,"survival"] + presentValues[,"death_SumInsured"] + presentValues[,"disease_SumInsured"] + presentValues[,"death_GrossPremium"] * premiums[["unit.gross"]] * (1+refundAddon); - - benefitsCosts = presentValuesCosts[,,"SumInsured"] + - presentValuesCosts[,,"SumPremiums"] * premiumSum * premiums[["unit.gross"]] + - presentValuesCosts[,,"GrossPremium"] * premiums[["unit.gross"]]; - - cbind( - benefits=benefits, - benefitsAndRefund=allBenefits, - benefitsCosts) - }, - - getPremiumCoefficients = function(type="gross", coeffBenefits, coeffCosts, ..., - premiumSum = 0,premiums = c("unit.gross"=0), loadings=list()) { - # Merge a possibly passed loadings override with the defaults of this class: - loadings = self$getLoadings(loadings=loadings); - securityLoading = loadings$security; - refundAddon = self$premiumRefundLoading; - - coeff = list( - "SumInsured" = list("benefits" = coeffBenefits*0, "costs" = coeffCosts*0), - "Premium" = list("benefits" = coeffBenefits*0, "costs" = coeffCosts*0) - ); - - coeff[["Premium"]][["benefits"]][["premiums"]] = 1; - - coeff[["SumInsured"]][["benefits"]][["guaranteed"]] = 1+securityLoading; - coeff[["SumInsured"]][["benefits"]][["survival"]] = 1+securityLoading; - coeff[["SumInsured"]][["benefits"]][["death_SumInsured"]] = 1+securityLoading; - coeff[["SumInsured"]][["benefits"]][["disease_SumInsured"]] = 1+securityLoading; - - # Premium refund is handled differently for gross and net premiums, because it is proportional to the gross premium - if (type == "gross") { - coeff[["Premium"]][["benefits"]][["death_GrossPremium"]] = -(1+refundAddon) * (1+securityLoading); - } else if (type=="net" || type=="Zillmer") { - coeff[["SumInsured"]][["benefits"]][["death_GrossPremium"]] = premiums[["unit.gross"]] * (1+refundAddon) * (1+securityLoading); - } - - - # coefficients for the costs - - if (type=="gross") { - coeff[["SumInsured"]][["costs"]]["alpha", "SumInsured"] = 1; - coeff[["SumInsured"]][["costs"]]["beta", "SumInsured"] = 1; - coeff[["SumInsured"]][["costs"]]["gamma", "SumInsured"] = 1; - # TODO: How to handle beta costs proportional to Sum Insured - coeff[["Premium"]][["costs"]]["alpha", "SumPremiums"] = -premiumSum; - coeff[["Premium"]][["costs"]]["beta", "SumPremiums"] = -premiumSum; - coeff[["Premium"]][["costs"]]["gamma", "SumPremiums"] = -premiumSum; - - coeff[["Premium"]][["costs"]]["alpha", "GrossPremium"] = -1; - coeff[["Premium"]][["costs"]]["beta", "GrossPremium"] = -1; - coeff[["Premium"]][["costs"]]["gamma", "GrossPremium"] = -1; - - } else if (type=="Zillmer") { - coeff[["SumInsured"]][["costs"]]["Zillmer","SumInsured"] = 1; - coeff[["SumInsured"]][["costs"]]["Zillmer","SumPremiums"] = premiumSum * premiums[["unit.gross"]]; - coeff[["SumInsured"]][["costs"]]["Zillmer","GrossPremium"] = premiums[["unit.gross"]]; - if (self$features$betaGammaInZillmer) { - coeff[["SumInsured"]][["costs"]]["beta", "SumInsured"] = 1; - coeff[["SumInsured"]][["costs"]]["gamma", "SumInsured"] = 1; - coeff[["SumInsured"]][["costs"]]["beta", "SumPremiums"] = premiumSum * premiums[["unit.gross"]]; - coeff[["SumInsured"]][["costs"]]["gamma", "SumPremiums"] = premiumSum * premiums[["unit.gross"]]; - coeff[["SumInsured"]][["costs"]]["beta", "GrossPremium"] = premiums[["unit.gross"]]; - coeff[["SumInsured"]][["costs"]]["gamma", "GrossPremium"] = premiums[["unit.gross"]]; - } - } - - coeff - }, - - premiumCalculation = function(presentValues, presentValuesCosts, costs=self$costs, premiumSum=0, sumInsured=1, premiumFrequency = 1, loadings=list(), ...) { - # Merge a possibly passed loadings override with the defaults of this class: - loadings = self$getLoadings(loadings=loadings); - premiums = c("unit.net" = 0, "unit.Zillmer" = 0, "unit.gross"= 0, "net" = 0, "Zillmer" = 0, "gross" = 0, "written" = 0); - coefficients = list("gross"=c(), "Zillmer"=c(), "net"=c()); - - # net, gross and Zillmer premiums are calculated from the present values using the coefficients on each present value as described in the formulas document - coeff=self$getPremiumCoefficients("gross", presentValues["0",]*0, presentValuesCosts["0",,]*0, premiums=premiums, premiumSum=premiumSum, loadings=loadings) - enumerator = sum(coeff[["SumInsured"]][["benefits"]] * presentValues["0",]) + sum(coeff[["SumInsured"]][["costs"]] * presentValuesCosts["0",,]); - denominator = sum(coeff[["Premium" ]][["benefits"]] * presentValues["0",]) + sum(coeff[["Premium" ]][["costs"]] * presentValuesCosts["0",,]); - ongoingAlphaGrossPremium = loadings$ongoingAlphaGrossPremium; - premiums[["unit.gross"]] = enumerator/denominator * (1 + ongoingAlphaGrossPremium); - premiums[["gross"]] = premiums[["unit.gross"]] * sumInsured; - coefficients[["gross"]] = coeff; - - coeff=self$getPremiumCoefficients("net", presentValues["0",]*0, presentValuesCosts["0",,]*0, premiums=premiums, premiumSum=premiumSum) - enumerator = sum(coeff[["SumInsured"]][["benefits"]] * presentValues["0",]) + sum(coeff[["SumInsured"]][["costs"]] * presentValuesCosts["0",,]); - denominator = sum(coeff[["Premium" ]][["benefits"]] * presentValues["0",]) + sum(coeff[["Premium" ]][["costs"]] * presentValuesCosts["0",,]); - premiums[["unit.net"]] = enumerator/denominator; premiums - premiums[["net"]] = premiums[["unit.net"]] * sumInsured; - coefficients[["net"]] = coeff; - - coeff=self$getPremiumCoefficients("Zillmer", presentValues["0",]*0, presentValuesCosts["0",,]*0, premiums=premiums, premiumSum=premiumSum) - enumerator = sum(coeff[["SumInsured"]][["benefits"]] * presentValues["0",]) + sum(coeff[["SumInsured"]][["costs"]] * presentValuesCosts["0",,]); - denominator = sum(coeff[["Premium" ]][["benefits"]] * presentValues["0",]) + sum(coeff[["Premium" ]][["costs"]] * presentValuesCosts["0",,]); - premiums[["unit.Zillmer"]] = enumerator/denominator; - premiums[["Zillmer"]] = premiums[["unit.Zillmer"]] * sumInsured; - coefficients[["Zillmer"]] = coeff; - - - # The written premium is the gross premium with additional loadings, rebates, unit costs and taxes - tax = valueOrFunction(loadings$tax, sumInsured=sumInsured, premiums=premiums); - unitCosts = valueOrFunction(loadings$unitcosts, sumInsured=sumInsured, premiums=premiums); - noMedicalExam = valueOrFunction(loadings$noMedicalExam,sumInsured=sumInsured, premiums=premiums); - noMedicalExam.relative = valueOrFunction(loadings$noMedicalExamRelative,sumInsured=sumInsured, premiums=premiums); - sumRebate = valueOrFunction(loadings$sumRebate, sumInsured=sumInsured, premiums=premiums); - premiumRebate = valueOrFunction(loadings$premiumRebate,sumInsured=sumInsured, premiums=premiums); - advanceProfitParticipation = valueOrFunction(loadings$advanceProfitParticipation,sumInsured=sumInsured, premiums=premiums); - advanceProfitParticipationUnitCosts = valueOrFunction(loadings$advanceProfitParticipationInclUnitCost, sumInsured=sumInsured, premiums=premiums); - partnerRebate = valueOrFunction(loadings$partnerRebate,sumInsured=sumInsured, premiums=premiums); - - frequencyLoading = valueOrFunction(self$premiumFrequencyLoading, sumInsured=sumInsured, premiums=premiums); - - premiumBeforeTax = (premiums[["unit.gross"]]*(1+noMedicalExam.relative) + noMedicalExam - sumRebate)*sumInsured * (1-advanceProfitParticipation) + unitCosts; - premiumBeforeTax = premiumBeforeTax * (1-premiumRebate-advanceProfitParticipationUnitCosts-partnerRebate); - premiumBeforeTax = premiumBeforeTax * (1+frequencyLoading[[toString(premiumFrequency)]]) / premiumFrequency; - premiums[["written_beforetax"]] = premiumBeforeTax; - premiums[["tax"]] = premiumBeforeTax * tax; - premiums[["written"]] = premiumBeforeTax * (1 + tax); - - list("premiums"=premiums, "coefficients"=coefficients) - }, - - reserveCalculation = function (premiums, absPresentValues, absCashFlows, sumInsured=1, premiumSum=0, policyPeriod = 1, age = 0, ..., reserves = c(), loadings=list(), surrenderPenalty = TRUE) { - # Merge a possibly passed loadings override with the defaults of this class: - loadings = self$getLoadings(loadings=loadings); - # Net, Zillmer and Gross reserves - resNet = absPresentValues[,"benefitsAndRefund"] * (1+loadings$security) - premiums[["net"]] * absPresentValues[,"premiums.unit"]; - BWZcorr = absPresentValues["0", "Zillmer"] / absPresentValues["0", "premiums"] * absPresentValues[,"premiums"]; - resZ = resNet - BWZcorr; - - resAdeq = absPresentValues[,"benefitsAndRefund"] * (1+loadings$security) + - absPresentValues[,"alpha"] + absPresentValues[,"beta"] + absPresentValues["gamma"] - - premiums[["gross"]] * absPresentValues[,"premiums.unit"]; - - #premiums[["Zillmer"]] * absPresentValues[,"premiums"]; - resGamma = absPresentValues[,"gamma"] - absPresentValues["0", "gamma"] / absPresentValues["0", "premiums"] * absPresentValues[,"premiums"] - - - resConversion = (resZ + resGamma) * (1-loadings$advanceProfitParticipation); - - # Alpha refund: Distribute alpha-costs to 5 year (or if shorter, the policy period): - r = min(policyPeriod, 5); - ZillmerSoFar = Reduce("+", absCashFlows$Zillmer, accumulate = TRUE); - ZillmerTotal = sum(absCashFlows$Zillmer); - len = length(ZillmerSoFar); - if (self$features$alphaRefundLinear) { - ZillmerVerteilungCoeff = pad0((0:r)/r, len, 1); - } else { - q = self$getTransitionProbabilities (age, ...); - # vector of all ä_{x+t, r-t} - pvAlphaTmp = calculatePVSurvival(q = pad0(q$q, len), advance = pad0(rep(1,r), len), v = self$v); - ZillmerVerteilungCoeff = (1-pvAlphaTmp/pvAlphaTmp[[1]]); - } - alphaRefund = ZillmerSoFar - ZillmerVerteilungCoeff * ZillmerTotal; - - # Reduction Reserve: Reserve used for contract modifications: - resReduction = pmax(0, resZ+resGamma+alphaRefund) # V_{x,n}^{Rkf} - - # Collect all reserved to one large matrix - res = cbind("net"=resNet, "Zillmer"=resZ, "adequate"= resAdeq, "gamma"=resGamma, - "contractual"=resZ+resGamma, "conversion"=resConversion, "alphaRefund"=alphaRefund, "reduction"=resReduction - #, "Reserve.premiumfree"=res.premiumfree, "Reserve.gamma.premiumfree"=res.gamma.premiumfree); - ); - rownames(res) <- rownames(absPresentValues); - - # The surrender value functions can have arbitrary form, so we store a function - # here in the tarif and call that, passing the reduction reserve as - # starting point, but also all reserves, cash flows, premiums and present values - if (!surrenderPenalty) { - # No surrender penalty any more (has already been applied to the first contract change!) - surrenderValue = resReduction; - } else if (!is.null(self$surrenderValueCalculation)) { - surrenderValue = self$surrenderValueCalculation( - resReduction, reserves=res, premiums=premiums, absPresentValues=absPresentValues, - absCashFlows=absCashFlows, sumInsured=sumInsured, premiumSum=premiumSum, - policyPeriod = policyPeriod, age = age, loadings=loadings, ...); - } else { - # by default, refund the full reduction reserve, except the advance profit participation, which is also included in the reserve, but not charged on the premium! - surrenderValue = resReduction * (1-loadings$advanceProfitParticipationInclUnitCost); - } - - - # Calculate new sum insured after premium waiver - Storno = 0; # TODO: Implement storno costs - newSI = (surrenderValue - absPresentValues[,"death_Refund_past"] * (1+loadings$security) - c(Storno)) / - (absPresentValues[, "benefits"] * (1+loadings$security) + absPresentValues[, "gamma_nopremiums"]) * sumInsured; - - cbind(res, - "PremiumsPaid"=Reduce("+", absCashFlows$premiums_advance, accumulate = TRUE), - "Surrender"=surrenderValue, - "PremiumFreeSumInsured" = newSI - ) - }, - - getBasicDataTimeseries = function(premiums, reserves, absCashFlows, absPresentValues, sumInsured=1, policyPeriod, premiumPeriod, ...) { - res=cbind( - "PremiumPayment" = c(rep(1, premiumPeriod), rep(0, policyPeriod-premiumPeriod+1)), - "SumInsured" = c(rep(sumInsured, policyPeriod), 0), - "Premiums" = absCashFlows$premiums_advance + absCashFlows$premiums_arrears, - "InterestRate" = rep(self$i, policyPeriod+1), - "PolicyDuration" = rep(policyPeriod, policyPeriod+1), - "PremiumPeriod" = rep(premiumPeriod, policyPeriod+1) - ); - rownames(res) = 0:policyPeriod; - res - }, - - premiumDecomposition = function(premiums, reserves, absCashFlows, absPresentValues, transitionProbabilities, sumInsured=1, ...) { - l = dim(reserves)[[1]]; - premium.savings = getSavingsPremium(reserves[,"Zillmer"], self$v) + getSavingsPremium(reserves[,"gamma"], self$v); - # TODO: Switch to use the Ziller or net or adequate reserve! - premium.risk = self$v * (absCashFlows[,"death"] - c(reserves[,"Zillmer"][-1], 0)) * pad0(transitionProbabilities$q, l) + - self$v * (absCashFlows[,"disease_SumInsured"] - c(reserves[,"Zillmer"][-1], 0)) * pad0(transitionProbabilities$i, l); - # premium.risk = self$v * (absCashFlows[,"death"] - c(reserves[,"Zillmer"][-1], 0)) * transitionProbabilities$q; - - - res = cbind("savings"=premium.savings, "risk"=premium.risk, "savings+risk"= premium.savings+premium.risk, "gamma"=absCashFlows[,"gamma"]); - rownames(res) <- rownames(premiums); - res - }, - - - - - - - # Dummy to allow commas - dummy = 0 - ) -); diff --git a/R/S4classes.R b/R/S4classes.R deleted file mode 100644 index e69de29..0000000 diff --git a/R/ValuationTables.R b/R/ValuationTables.R index c1fae8c..d3b2afd 100644 --- a/R/ValuationTables.R +++ b/R/ValuationTables.R @@ -1,7 +1,30 @@ -library("lifecontingencies"); -library(ggplot2); - -# (virtual) base class for valuation tables, contains only the name / ID +#' Provide life table classes for life insurance purposes +#' +#' @import openxlsx +#' @import methods +#' @import ggplot2 +#' +"_PACKAGE" + + +#' Class valuationTable +#' +#' Class \code{valuationTable} is the (virtual) base class for all valuation +#' tables. It contains the name and some general values applying to all +#' types of tables, but does not contain any data itself. Use a child class +#' to create actual valuation tables. +#' +#' @slot name The human-readable name of the valuation table +#' @slot baseYear The base year of the valuation table (e.g. for tables with trend projection) +#' @slot modification A function that will be called with the final death probabilities +#' to give the user a way to modify the final probabilities +#' @slot loading Additional security loading on the resulting table (single numeric +#' value, e.g. 0.05 adds 5% security margin to the probabilities) +#' +#' @name valuationTable-class +#' @rdname valuationTable-class +#' @export valuationTable +#' @exportClass valuationTable valuationTable=setClass( "valuationTable", slots=list(name="character", baseYear="numeric", loading="numeric", modification="function"), @@ -10,67 +33,117 @@ valuationTable=setClass( ); -# 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", +#' A period life table, giving death probabilities for each age, up to +#' maximum age omega. Optionally apply selection factors to the probabilities +#' +#' @slot ages The ages corresponding to the entries of the deathProbs +#' @slot deathProbs The one-year death probabilities for the ages +#' +#' @export valuationTable_period +#' @exportClass valuationTable_period +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", + +#' A cohort life table, obtained by age-shifting from a given base table (death probabilities +# for a base birth year) +#' +#' @slot ageShifts A \code{data.frame} with columns \code{YOB} and \code{shifts} giving the age shifts for each birth year +#' +#' @export valuationTable_ageShift +#' @exportClass valuationTable_ageShift +valuationTable_ageShift=setClass( + "valuationTable_ageShift", slots=list(ageShifts="data.frame"), prototype=list(ageShifts=data.frame(YOB=c(), shifts=c())), - contains="valuationTable.period" + 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", +#' 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 +#' +#' @slot baseYear The base year of the trend projection (\code{baseTable} describes the death probabilities in this year) +#' @slot trend The yearly improvements of the log-death probabilities (per age) +#' @slot dampingFunction A possible damping of the trend. This is a function \code{damping(delta_years)} that gets a vector of years from the baseYear and should return the dampened values. +#' @slot trend2 The alternate trend. If given, the damping function interpolates between \code{trend} and \code{trend2}, otherwise the dumping function simply modifies the coefficients of \code{trend}. +#' +#' @export valuationTable_ageShift +#' @exportClass valuationTable_ageShift +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" + 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", +#' A cohort life table, obtained by an improvment factor projection +#' from a given base table (PODs for a given observation year). +#' +#' @slot baseYear The base year for the improvements (\code{baseTable} describes the death probabilities in this year) +#' @slot improvement Yearly improvement factors per age +#' +#' @export valuationTable_improvementFactors +#' @exportClass valuationTable_improvementFactors +valuationTable_improvementFactors=setClass( + "valuationTable_improvementFactors", slots=list(baseYear="numeric", improvement="numeric"), prototype=list(baseYear=2012, improvement=rep(0,120)), - contains="valuationTable.period" + contains="valuationTable_period" ); -# A cohort life table described by actual observations (data frame of PODs -# per year and age) -valuationTable.observed=setClass( - "valuationTable.observed", +#' A cohort life table described by actual observations (data frame of PODs +#' per year and age) +#' +#' @slot data The observations +#' +#' @export valuationTable_observed +#' @exportClass valuationTable_observed +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", + +#' 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) +#' +#' @slot table1 The first \code{valuationTable}, valid for years given in \code{yearRange1} +#' @slot yearRange1 The years, for which \code{table1} describes the death probabilities +#' @slot table2 The second \code{valuationTable}, valid for years given in \code{yearRange2} +#' @slot yearRange2 The years, for which \code{table2} describes the death probabilities +#' +#' @export valuationTable_joined +#' @exportClass valuationTable_joined +valuationTable_joined=setClass( + "valuationTable_joined", slots=list( table1="valuationTable", yearRange1="numeric", table2="valuationTable", yearRange2="numeric"), contains="valuationTable" ); -# A cohort life table obtained by mixing two life tables with the given weights -valuationTable.mixed=setClass( - "valuationTable.mixed", + +#' A cohort life table obtained by mixing two life tables with the given weights +#' +#' @slot table1 The first \code{valuationTable} +#' @slot table2 The second \code{valuationTable} +#' @slot weight1 The weight of the first valuation table +#' @slot weight2 The weight of the second valuation table +#' @slot loading Additional security loading +#' +#' @export valuationTable_mixed +#' @exportClass valuationTable_mixed +valuationTable_mixed=setClass( + "valuationTable_mixed", slots=c(table1="valuationTable", table2="valuationTable", weight1="numeric", weight2="numeric", loading="numeric"), prototype=list(weight1=1/2, weight2=1/2, loading=0), contains="valuationTable" @@ -78,43 +151,100 @@ valuationTable.mixed=setClass( +#' Return the maximum age of the life table +#' +#' @name valuationTable +#' @rdname valuationTable-class +#' @exportMethod getOmega setGeneric("getOmega", function(object) standardGeneric("getOmega")); -setMethod("getOmega", "valuationTable.period", +#' Return the maximum age of the period life table +#' +#' @name valuationTable_period-class +#' @rdname valuationTable_period-class +#' @aliases getOmega,valuationTable_period-method +setMethod("getOmega", "valuationTable_period", function (object) { max(object@ages,na.rm=TRUE); }) -setMethod("getOmega", "valuationTable.mixed", +#' Return the maximum age of the mixed life table +#' +#' @name valuationTable_mixed-class +#' @rdname valuationTable_mixed-class +#' @aliases getOmega,valuationTable_mixed-method +setMethod("getOmega", "valuationTable_mixed", function (object) { getOmega(object@table1); }) -setMethod("getOmega", "valuationTable.joined", +#' Return the maximum age of the joined life table +#' +#' @name valuationTable_joined-class +#' @rdname valuationTable_joined-class +#' @aliases getOmega,valuationTable_joined-method +setMethod("getOmega", "valuationTable_joined", function (object) { getOmega(object@table1); }) + +#' Return the defined ages of the life table +#' +#' @name valuationTable +#' @rdname valuationTable-class +#' @exportMethod ages setGeneric("ages", function(object, ...) standardGeneric("ages")); -setMethod("ages", "valuationTable.period", +#' Return the defined ages of the life table +#' +#' @name valuationTable_period-class +#' @rdname valuationTable_period-class +#' @aliases ages,valuationTable_period-method +setMethod("ages", "valuationTable_period", function (object, ...) { object@ages; }) -setMethod("ages", "valuationTable.mixed", +#' Return the defined ages of the life table +#' +#' @name valuationTable_mixed-class +#' @rdname valuationTable_mixed-class +#' @aliases ages,valuationTable_mixed-method +setMethod("ages", "valuationTable_mixed", function (object, ...) { ages(object@table1); }) -setMethod("ages", "valuationTable.joined", +#' Return the defined ages of the life table +#' +#' @name valuationTable_joined-class +#' @rdname valuationTable_joined-class +#' @aliases ages,valuationTable_joined-method +setMethod("ages", "valuationTable_joined", function (object, ...) { ages(object@table1); }) + + +#' Return the age shift of the age-shifted life table given the birth year +#' +#' @param YOB The birth year for which the age shift should be determined. +#' +#' @name valuationTable_ageShift +#' @rdname valuationTable_ageShift-class +#' @exportMethod ageShift setGeneric("ageShift", function(object, YOB=1975, ...) standardGeneric("ageShift")); -setMethod("ageShift","valuationTable.ageShift", +#' Return the age shift of the age-shifted life table given the birth year +#' +#' @param YOB The birth year for which the age shift should be determined. +#' +#' @name valuationTable_ageShift-class +#' @rdname valuationTable_ageShift-class +#' @aliases ageShift,valuationTable_ageShift-method +setMethod("ageShift","valuationTable_ageShift", function(object, YOB, ...) { shift = object@ageShifts[toString(YOB),]; if (is.na(shift)) { # The row names (YOB) are unfortunately strings, so we cannot easily query them. # TODO: Change the data.frame to use a real column for the YOB - firstYOB = head(rownames(object@ageShifts), n=1); - lastYOB = tail(rownames(object@ageShifts), n=1); + firstYOB = utils::head(rownames(object@ageShifts), n=1); + lastYOB = utils::tail(rownames(object@ageShifts), n=1); if (YOB < as.integer(firstYOB)) { shift = object@ageShifts[firstYOB,]; } else if (YOB > as.integer(lastYOB)) { @@ -124,12 +254,35 @@ setMethod("ageShift","valuationTable.ageShift", shift }) + + +#' Return the (cohort) death probabilities of the life table given the birth year (if needed) +#' +#' @param YOB The birth year for which the death probabilities should be calculated +#' +#' @name valuationTable +#' @rdname valuationTable-class +#' @exportMethod deathProbabilities setGeneric("deathProbabilities", function(object, ..., YOB=1975) standardGeneric("deathProbabilities")); -setMethod("deathProbabilities", "valuationTable.period", +#' Return the (cohort) death probabilities of the life table given the birth year (if needed) +#' +#' @param YOB The birth year for which the death probabilities should be calculated +#' +#' @name valuationTable_period-class +#' @rdname valuationTable_period-class +#' @aliases deathProbabilities,valuationTable_period-method +setMethod("deathProbabilities", "valuationTable_period", function(object, ..., YOB=1975) { object@modification(object@deathProbs * (1+object@loading)); }) -setMethod("deathProbabilities","valuationTable.ageShift", +#' Return the (cohort) death probabilities of the life table given the birth year (if needed) +#' +#' @param YOB The birth year for which the death probabilities should be calculated +#' +#' @name valuationTable_ageShift-class +#' @rdname valuationTable_ageShift-class +#' @aliases deathProbabilities,valuationTable_ageShift-method +setMethod("deathProbabilities","valuationTable_ageShift", function (object, ..., YOB=1975) { qx=object@deathProbs * (1+object@loading); shift = ageShift(object, YOB); @@ -141,8 +294,14 @@ setMethod("deathProbabilities","valuationTable.ageShift", object@modification(qx) }) - -setMethod("deathProbabilities","valuationTable.trendProjection", +#' Return the (cohort) death probabilities of the life table given the birth year (if needed) +#' +#' @param YOB The birth year for which the death probabilities should be calculated +#' +#' @name valuationTable_trendProjection-class +#' @rdname valuationTable_trendProjection-class +#' @aliases deathProbabilities,valuationTable_trendProjection-method +setMethod("deathProbabilities","valuationTable_trendProjection", function (object, ..., YOB=1975) { qx=object@deathProbs * (1+object@loading); if (is.null(object@trend2) || length(object@trend2)<=1) { @@ -158,13 +317,27 @@ setMethod("deathProbabilities","valuationTable.trendProjection", object@modification(finalqx) }) -setMethod("deathProbabilities","valuationTable.improvementFactors", +#' Return the (cohort) death probabilities of the life table given the birth year (if needed) +#' +#' @param YOB The birth year for which the death probabilities should be calculated +#' +#' @name valuationTable_improvementFactors-class +#' @rdname valuationTable_improvementFactors-class +#' @aliases deathProbabilities,valuationTable_improvementFactors-method +setMethod("deathProbabilities","valuationTable_improvementFactors", function (object, ..., YOB=1975) { qx=object@deathProbs * (1+object@loading); finalqx=(1-object@improvement)^(YOB+0:(length(qx)-1)-object@baseYear)*qx; object@modification(finalqx) }) -setMethod("deathProbabilities","valuationTable.mixed", +#' Return the (cohort) death probabilities of the life table given the birth year (if needed) +#' +#' @param YOB The birth year for which the death probabilities should be calculated +#' +#' @name valuationTable_mixed-class +#' @rdname valuationTable_mixed-class +#' @aliases deathProbabilities,valuationTable_mixed-method +setMethod("deathProbabilities","valuationTable_mixed", function (object, ..., YOB=1975) { qx1=deathProbabilities(object@table1, ..., YOB) * (1+object@loading); qx2=deathProbabilities(object@table2, ..., YOB) * (1+object@loading); @@ -173,21 +346,51 @@ setMethod("deathProbabilities","valuationTable.mixed", }) + + +#' Return the (period) death probabilities of the life table for a given observation year +#' +#' @param Period The observation year for which the period death probabilities should be determined +#' +#' @name valuationTable +#' @rdname valuationTable-class +#' @exportMethod periodDeathProbabilities setGeneric("periodDeathProbabilities", function(object, ...) standardGeneric("periodDeathProbabilities")); -setMethod("periodDeathProbabilities", "valuationTable.period", +#' Return the (period) death probabilities of the life table for a given observation year +#' +#' @param Period The observation year for which the period death probabilities should be determined +#' +#' @name valuationTable_period-class +#' @rdname valuationTable_period-class +#' @aliases periodDeathProbabilities,valuationTable_period-method +setMethod("periodDeathProbabilities", "valuationTable_period", function(object, ...) { object@modification(object@deathProbs * (1+object@loading)); }) -setMethod("periodDeathProbabilities","valuationTable.ageShift", +#' Return the (period) death probabilities of the life table for a given observation year +#' +#' @param Period The observation year for which the period death probabilities should be determined +#' +#' @name valuationTable_ageShift-class +#' @rdname valuationTable_ageShift-class +#' @aliases periodDeathProbabilities,valuationTable_ageShift-method +setMethod("periodDeathProbabilities","valuationTable_ageShift", function (object, ..., Period=1975) { # TODO qx=object@deathProbs * (1+object@loading); - shift.index=match(YOB, object@shifts, 0); - if (shift.index) {} - # TODO + # TODO!!! + # shift.index=match(YOB, object@shifts, 0); + # if (shift.index) {} object@modification(qx) }) -setMethod("periodDeathProbabilities","valuationTable.trendProjection", +#' Return the (period) death probabilities of the life table for a given observation year +#' +#' @param Period The observation year for which the period death probabilities should be determined +#' +#' @name valuationTable_trendProjection-class +#' @rdname valuationTable_trendProjection-class +#' @aliases periodDeathProbabilities,valuationTable_trendProjection-method +setMethod("periodDeathProbabilities","valuationTable_trendProjection", function (object, ..., Period=1975) { qx=object@deathProbs * (1+object@loading); if (is.null(object@trend2) || length(object@trend2)<=1) { @@ -196,21 +399,34 @@ setMethod("periodDeathProbabilities","valuationTable.trendProjection", # print(data.frame(age=0:(length(qx)-1), trend=object@trend, exponent=-object@trend*damping, damping=damping, baseqx=qx, qx=exp(-object@trend*damping)*qx)[66:90,]); finalqx=exp(-object@trend*damping)*qx; } else { - # TODO + # TODO!!! # dampingFunction interpolates between the two trends: - weights=sapply(YOB+0:(length(qx)-1), object@dampingFunction); - finalqx=qx*exp(-(object@trend*(1-weights) + object@trend2*(weights))*(YOB+0:(length(qx)-1)-object@baseYear)); + # weights=sapply(YOB+0:(length(qx)-1), object@dampingFunction); + # finalqx=qx*exp(-(object@trend*(1-weights) + object@trend2*(weights))*(YOB+0:(length(qx)-1)-object@baseYear)); } object@modification(finalqx) }) -# data.frame(x=0:121, qx=deathProbabilities(AVOe2005R.unisex, YOB=1948)); -setMethod("periodDeathProbabilities","valuationTable.improvementFactors", +#' Return the (period) death probabilities of the life table for a given observation year +#' +#' @param Period The observation year for which the period death probabilities should be determined +#' +#' @name valuationTable_improvementFactors-class +#' @rdname valuationTable_improvementFactors-class +#' @aliases periodDeathProbabilities,valuationTable_improvementFactors-method +setMethod("periodDeathProbabilities","valuationTable_improvementFactors", function (object, ..., Period=1975) { qx=object@deathProbs * (1+object@loading); finalqx=(1-object@improvement)^(Period-object@baseYear)*qx; object@modification(finalqx) }) -setMethod("periodDeathProbabilities","valuationTable.mixed", +#' Return the (period) death probabilities of the life table for a given observation year +#' +#' @param Period The observation year for which the period death probabilities should be determined +#' +#' @name valuationTable_mixed-class +#' @rdname valuationTable_mixed-class +#' @aliases periodDeathProbabilities,valuationTable_mixed-method +setMethod("periodDeathProbabilities","valuationTable_mixed", function (object, ..., Period=1975) { qx1=periodDeathProbabilities(object@table1, ..., Period=Period) * (1+object@loading); qx2=periodDeathProbabilities(object@table2, ..., Period=Period) * (1+object@loading); @@ -221,40 +437,104 @@ setMethod("periodDeathProbabilities","valuationTable.mixed", +#' Return the lifetable object (package lifecontingencies) for the cohort life table +#' +#' @param ... Parameters to be handed to the \code{deathProbabilities} method of the life table +#' +#' @name valuationTable +#' @rdname valuationTable-class +#' @exportMethod lifeTable setGeneric("lifeTable", function(object, ...) standardGeneric("lifeTable")); +#' Return the lifetable object (package lifecontingencies) for the cohort life table +#' +#' @param ... Parameters to be handed to the \code{deathProbabilities} method of the life table +#' +#' @name valuationTable-class +#' @rdname valuationTable-class +#' @aliases lifeTable,valuationTable-method setMethod("lifeTable","valuationTable", function (object, ...) { qx=deathProbabilities(object, ...); if (qx[[length(qx)]]!=1) { qx=c(qx, 1, 1); } - probs2lifetable(qx, type="qx") + lifecontingencies::probs2lifetable(qx, type="qx") }) + + +#' Return the base year of the life table +#' +#' @name valuationTable +#' @rdname valuationTable-class +#' @exportMethod baseYear setGeneric("baseYear", function(object, ...) standardGeneric("baseYear")); +#' Return the base year of the life table +#' +#' @name valuationTable-class +#' @rdname valuationTable-class +#' @aliases baseYear,valuationTable-method setMethod("baseYear","valuationTable", function (object, ...) { object@baseYear }) -setMethod("baseYear","valuationTable.mixed", +#' Return the base year of the life table +#' +#' @name valuationTable_mixed-class +#' @rdname valuationTable_mixed-class +#' @aliases baseYear,valuationTable_mixed-method +setMethod("baseYear","valuationTable_mixed", function (object, ...) { baseYear(object@table1) }) + + +#' Return the base table of the life table +#' +#' @name valuationTable +#' @rdname valuationTable-class +#' @exportMethod baseTable setGeneric("baseTable", function(object, ...) standardGeneric("baseTable")); +#' Return the base table of the life table +#' +#' @name valuationTable-class +#' @rdname valuationTable-class +#' @aliases baseTable,valuationTable-method setMethod("baseTable","valuationTable", function (object, ...) { c() }) -setMethod("baseTable","valuationTable.period", +#' Return the base table of the life table +#' +#' @name valuationTable_period-class +#' @rdname valuationTable_period-class +#' @aliases baseTable,valuationTable_period-method +setMethod("baseTable","valuationTable_period", function (object, ...) { object@deathProbs }) + + +#' Return the period life table as a \code{valuationTable_period} object +#' +#' @param Period The observation year, for which the death probabilities should be determined +#' +#' @name valuationTable +#' @rdname valuationTable-class +#' @exportMethod getPeriodTable setGeneric("getPeriodTable", function(object, Period, ...) standardGeneric("getPeriodTable")); +#' Return the period life table as a \code{valuationTable_period} object +#' +#' @param Period The observation year, for which the death probabilities should be determined +#' +#' @name valuationTable-class +#' @rdname valuationTable-class +#' @aliases getPeriodTable,valuationTable-method setMethod("getPeriodTable","valuationTable", function (object, Period, ...) { - valuationTable.period( + valuationTable_period( name = paste(object@name, ", Period ", Period), baseYear = Period, ages = ages(object), @@ -262,10 +542,27 @@ setMethod("getPeriodTable","valuationTable", ) }) -setGeneric("getCohortTable", function(object, Period, ...) standardGeneric("getCohortTable")); + + +#' Return the cohort life table as a \code{valuationTable_period} object +#' +#' @param YOB The birth year for which the life table should be calculated +#' +#' @name valuationTable +#' @rdname valuationTable-class +#' @exportMethod getCohortTable +setGeneric("getCohortTable", function(object, YOB, ...) standardGeneric("getCohortTable")); +#' Return the cohort life table as a \code{valuationTable_period} object +#' +#' @param YOB The birth year for which the life table should be calculated +#' +#' @name valuationTable-class +#' @rdname valuationTable-class +#' @aliases getCohortTable,valuationTable-method +#' @export getCohortTable setMethod("getCohortTable","valuationTable", function (object, YOB, ...) { - valuationTable.period( + valuationTable_period( name = paste(object@name, ", YOB ", YOB), baseYear = YOB, ages=ages(object), @@ -274,73 +571,22 @@ setMethod("getCohortTable","valuationTable", }) + + +#' Return a \code{valuationTable_trensProjection} object with the trend damping removed. +#' +#' @name valuationTable_trendProjection +#' @rdname valuationTable_trendProjection-class +#' @exportMethod undampenTrend setGeneric("undampenTrend", function (object) standardGeneric("undampenTrend")); -setMethod("undampenTrend", "valuationTable.trendProjection", +#' Return a \code{valuationTable_trensProjection} object with the trend damping removed. +#' +#' @name valuationTable_trendProjection-class +#' @rdname valuationTable_trendProjection-class +#' @aliases undampenTrend,valuationTable_trendProjection-method +#' @export undampenTrend +setMethod("undampenTrend", "valuationTable_trendProjection", function (object) { object@dampingFunction=identity; object }); - - -makeQxDataFrame = function(..., YOB=1972, Period=NA) { - data=list(...); - names(data) = lapply(data, function(t) t@name); - if (missing(Period)) { - cat("Year of birth: ", YOB, "\n"); - data = lapply(data, function(t) cbind(x=ages(t), y=deathProbabilities(t, YOB=YOB))) - } else { - cat("Period: ", Period,"\n"); - data = lapply(data, function(t) cbind(x=ages(t), y=periodDeathProbabilities(t, Period=Period))) - } - - list.names = names(data) - lns <- sapply(data, nrow) - data <- as.data.frame(do.call("rbind", data)) - data$group <- rep(list.names, lns) - data -} - -plotValuationTables = function(data, ..., title = "", legend.position=c(0.9,0.1), legend.key.width = unit(25, "mm")) { - if (!is.data.frame(data)) { - data = makeQxDataFrame(data, ...); - } - - pl = ggplot(data, aes(x = x, y = y, colour = data$group)) + - theme_bw() + - theme( - plot.title = element_text(size=18, face="bold"), - legend.title = element_text(size=14, face="bold.italic"), - # legend in bottom right corner of the plot - legend.justification=c(1,0), legend.position=legend.position, - # No box around legend entries - legend.key = element_blank(), - legend.key.width = legend.key.width, - legend.background = element_rect(colour="gray50", linetype="solid") - ) + - geom_line() + - scale_y_log10( - name=expression(paste("Sterbewahrscheinlichkeit ", q[x])), - breaks = scales::trans_breaks('log10', function(x) 10^x), - labels = scales::trans_format('log10', scales::math_format(10^.x)) - #minor_breaks = log(c(sapply(x, function(x) seq(0, x, x/10))), 10) - ) + - scale_x_continuous( - name="Alter", - #breaks = function (limits) scales::trans_breaks('', function(x) 10^x), - breaks = function (limits) seq(max(min(limits),0),max(limits),5), - minor_breaks = function (limits) seq(max(round(min(limits)),0),round(max(limits)),1), - #labels = scales::trans_format('log10', scales::math_format(10^.x)) - - ) + - annotation_logticks(sides="lr") + - xlab("Alter") + labs(colour="Sterbetafel"); - if (title != "") { - pl = pl + ggtitle(title); - } - pl# + coord_flip() -} -# -# 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/exportInsuranceContract_xlsx.R b/R/exportInsuranceContract_xlsx.R deleted file mode 100644 index bcf8b67..0000000 --- a/R/exportInsuranceContract_xlsx.R +++ /dev/null @@ -1,409 +0,0 @@ - -################################################ -# Helper Functions -################################################ - - -writeAgeQTable = function (wb, sheet, probs, crow=1, ccol=1, styles=list()) { - writeData(wb, sheet, "Sterblichkeiten", startCol = ccol+2, startRow = crow); - addStyle(wb, sheet, style=styles$header, rows=crow, cols = ccol+2, stack=TRUE); - mergeCells(wb, sheet, rows=crow, cols=(ccol+2):(ccol+3)) - writeDataTable(wb, sheet, probs, - startRow=crow+1, startCol = ccol, colNames = TRUE, rowNames = TRUE, - tableStyle = "TableStyleMedium3", withFilter = FALSE, headerStyle = styles$tableHeader); - freezePane(wb, sheet, firstActiveRow=crow+2, firstActiveCol = ccol+2) - addStyle(wb, sheet, style=styles$center, rows=(crow+2):(crow+1+dim(probs)[[1]]), cols=ccol:(ccol+1), gridExpand = TRUE, stack=TRUE); - addStyle(wb, sheet, style=styles$qx, rows=(crow+2):(crow+1+dim(probs)[[1]]), cols=(ccol+2):(ccol+3), gridExpand = TRUE, stack=TRUE); - dim(probs)[[2]] + 2; -}; - -writeValuesTable = function (wb, sheet, values, caption=NULL, crow=1, ccol=1, rowNames=FALSE, tableStyle="TableStyleMedium3", tableName=NULL, withFilter=FALSE, styles=list(), valueStyle=NULL) { - nrrow = dim(values)[[1]]; - nrcol = dim(values)[[2]]; - addcol = if (rowNames) 1 else 0; - ecol = ccol + addcol + nrcol - 1; - if (!missing(caption)) { - writeData(wb, sheet, caption, startCol = ccol+addcol, startRow = crow); - addStyle(wb, sheet, style=styles$header, rows=crow, cols = ccol+addcol, stack=TRUE); - mergeCells(wb, sheet, rows=crow, cols=(ccol+addcol):ecol); - } - - writeDataTable(wb, sheet, values, startRow=crow+1, startCol=ccol, colNames=TRUE, - rowNames=rowNames, tableStyle=tableStyle, - tableName=tableName, withFilter = withFilter, headerStyle = styles$tableHeader) - if (!missing(valueStyle)) { - addStyle(wb, sheet, style=valueStyle, rows=(crow+2):(crow+nrrow+1), cols=(ccol+addcol):ecol, gridExpand = TRUE, stack = TRUE); - } - # width of table is the return value - nrcol + addcol -}; - -writePremiumCoefficients = function(wb, sheet, values, tarif=NULL, type="benefits", crow=crow, ccol=ccol) { - writeData(wb, sheet, matrix(c( - "Nettoprämie", "", "Zillmerprämie", "", "Bruttoprämie", "", - "rel. zu VS", "rel. zu Prämie", "rel. zu VS", "rel. zu Prämie", "rel. zu VS", "rel. zu Prämie"), 6, 2 - ), startCol = ccol, startRow = crow, colNames = FALSE, borders = "rows", borderColour = "gray5", borderStyle = "thin"); - mergeCells(wb, sheet, cols = ccol, rows = crow:(crow+1)); - mergeCells(wb, sheet, cols = ccol, rows = (crow+2):(crow+3)); - mergeCells(wb, sheet, cols = ccol, rows = (crow+4):(crow+5)); - addStyle(wb, sheet, style=createStyle(halign = "left", valign = "center", - borderColour = "gray5", border = "LeftBottomTop", - borderStyle = "thin"), - rows = crow:(crow+5), cols = ccol); - addStyle(wb, sheet, style=createStyle(halign = "right", valign = "center", - borderColour = "gray5", border = "RightBottomTop", - borderStyle = "thin"), - rows = crow:(crow+5), cols = ccol+1); - - # The first column of the benefits coefficients is for "age", which we want to remove - mod = function(a) { as.data.frame(t(a)) }; - if (type=="costs") { - mod = function(vals) { - vals = setInsuranceValuesLabels(vals); - newvals=vals; - dimn = dimnames(newvals); - dim(newvals) = c(1, dim(vals)); - dimnames(newvals) = c(list("Coeff"), dimn); - as.data.frame(tarif$costValuesAsMatrix(newvals)) - }; - } - coeff = rbind(mod(values[["net"]][["SumInsured"]][[type]]), - mod(values[["net"]][["Premium"]][[type]]), - mod(values[["Zillmer"]][["SumInsured"]][[type]]), - mod(values[["Zillmer"]][["Premium"]][[type]]), - mod(values[["gross"]][["SumInsured"]][[type]]), - mod(values[["gross"]][["Premium"]][[type]])); - - writeData(wb, sheet, coeff, startCol = ccol+2, startRow = crow, colNames=FALSE, borders="rows", borderColour="gray5", borderStyle="thin"); - dim(coeff)[[2]] -} - -labelsReplace = function(labels) { - labels[labels=="alpha"] = "α"; - labels[labels=="Zillmer"] = "Zill."; - labels[labels=="beta"] = "β"; - labels[labels=="gamma"] = "γ"; - labels[labels=="gamma_nopremiums"] = "γ_prf"; - labels[labels=="SumInsured"] = "VS"; - labels[labels=="SumPremiums"] = "PS"; - labels[labels=="GrossPremium"] = "BP"; - - labels[labels=="premiums"] = "Präm."; - labels[labels=="guaranteed"] = "Gar."; - labels[labels=="survival"] = "Erl."; - labels[labels=="death_SumInsured"] = "Abl. VS"; - labels[labels=="death_GrossPremium"] = "Abl. BP"; - labels[labels=="death"] = "Abl."; - labels[labels=="death_PremiumFree"] = "Abl. prf"; - labels[labels=="benefits"] = "Abl.Lst."; - labels[labels=="benefitsAndRefund"] = "Abl. + RG"; - - labels[labels=="once"] = "einm." - labels[labels=="PremiumPeriod"] = "PD" - labels[labels=="PremiumFree"] = "Pr.Fr." - labels[labels=="PolicyPeriod"] = "LZ" - - - labels -} - -setInsuranceValuesLabels = function(vals) { - dimnames(vals) = lapply(dimnames(vals), labelsReplace); - vals -} - - -################################################################################ -# -# The actual export function -# -# exportInsuranceContract.xlsx(contract, filename) -# -################################################################################ - - -exportInsuranceContract.xlsx = function(contract, filename) { - # TODO: argument checking for contract and filename - - ### - nrrows = dim(contract$values$cashFlows)[[1]]; # Some vectors are longer (e.g. qx), so determine the max nr or rows - qp = contract$values$transitionProbabilities[1:nrrows,]; # extract the probabilities once, will be needed in every sheet - - ################################################ - # Style information - ################################################ - styles = list( - header = createStyle(border="TopBottomLeftRight", borderColour="#DA9694", borderStyle="medium", - fgFill="#C0504D", fontColour="#FFFFFF", - halign="center", valign="center", textDecoration="bold"), - tableHeader = createStyle(#border="TopLeftRight", borderColour="#DA9694", borderStyle="medium", - #bgFill="#C0504D", fontColour="#FFFFFF", - halign="center", valign="center", textDecoration="bold"), - hide0 = createStyle(numFmt="General; General; \"\""), - currency0 = createStyle(numFmt="[$€-C07] #,##0.00;[red]-[$€-C07] #,##0.00;\"\""), - cost0 = createStyle(numFmt="0.000%; 0.000%; \"\""), - pv0 = createStyle(numFmt="0.00000;-0.00000;\"\""), - qx = createStyle(numFmt="0.000000"), - wrap = createStyle(wrapText=TRUE), - center = createStyle(halign="center", valign="center") - ); - - ################################################ - # General Workbook setup - ################################################ - wb = openxlsx::createWorkbook(); - addWorksheet(wb, "Tarifinformationen"); - addWorksheet(wb, "Basisdaten"); - addWorksheet(wb, "Reserven"); - addWorksheet(wb, "abs.Barwerte"); - addWorksheet(wb, "abs.Cash-Flows"); - addWorksheet(wb, "Barwerte"); - addWorksheet(wb, "Cash-Flows"); - - # Print out general Contract and Tariff information, including results - sheet = "Tarifinformationen" - crow = 1; - writeData(wb, sheet, matrix(c( - "Tarif:", contract$tarif$tarif, - "Tarifname:", contract$tarif$name, - "Description:", contract$tarif$desc - ), 3, 2, byrow = TRUE), startCol=1, startRow=1, colNames=FALSE, rowNames=FALSE); - mergeCells(wb, sheet, cols=2:10, rows=1); - mergeCells(wb, sheet, cols=2:10, rows=2); - mergeCells(wb, sheet, cols=2:10, rows=3); - addStyle(wb, sheet, style=styles$wrap, rows=3, cols=2:10, stack=TRUE); - addStyle(wb, sheet, style=createStyle(valign="top"), rows=1:3, cols=1:10, gridExpand=TRUE, stack=TRUE); - setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE); - - crow = crow+4; - - ################################################ - # Basic parameters - ################################################ - values=c( - "Sum insured"=contract$params$sumInsured, - "Mortality table"=contract$tarif$mortalityTable@name, - "YOB"=contract$params$YOB, - "Age"=contract$params$age, - "Policy duration"=contract$params$policyPeriod, - "Premium period"=contract$params$premiumPeriod, - "Deferral"=contract$params$deferral, - "Guaranteed payments"=contract$params$guaranteed, - i=contract$tarif$i); - - writeData(wb, sheet, "Basisdaten des Vertrags und Tarifs", startCol=1, startRow=crow); - mergeCells(wb, sheet, cols=1:length(values), rows=crow:crow); - writeDataTable(wb, sheet, as.data.frame(t(values)), - startCol=1, startRow=crow+1, colNames=TRUE, rowNames=FALSE, - tableStyle="TableStyleMedium3", withFilter = FALSE, headerStyle = styles$tableHeader); - - crow = crow + 4; - - # Premiums - writeData(wb, sheet, "Prämien", startCol=1, startRow=crow); - mergeCells(wb, sheet, cols=1:length(contract$values$premiums), rows=crow:crow); - writeDataTable(wb, sheet, setInsuranceValuesLabels(as.data.frame(t(contract$values$premiums))), - startCol=1, startRow=crow+1, colNames=TRUE, rowNames=FALSE, - tableStyle="TableStyleMedium3", withFilter = FALSE, headerStyle = styles$tableHeader); - crow = crow + 4; - - # Cost structure: - costtable = as.data.frame.table(setInsuranceValuesLabels(contract$tarif$costs) ) - colnames(costtable) = c("Kostenart", "Basis", "Periode", "Kostensatz"); - costtable = costtable[costtable[,"Kostensatz"]!=0.0000,] - writeValuesTable(wb, sheet, costtable, crow=crow, ccol=1, tableName="Kosten", styles=styles, caption="Kosten"); - # writeDataTable(wb, sheet, costtable, startCol=1, startRow=crow+1, colNames=TRUE, rowNames=FALSE, - # tableStyle = "TableStyleMedium3", headerStyle = styles$tableHeader); - addStyle(wb, sheet, style=styles$cost0, rows=(crow+2):(crow+dim(costtable)[[1]]+1), cols=4, stack=TRUE); - setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE) - crow = crow + dim(costtable)[[1]] + 3; - - # Contract history - # time=t, comment=sprintf("Premium waiver at time %d", t), type="PremiumWaiver" - histtime = unlist(lapply(contract$history, function(xl) xl$time)); - histcomment = unlist(lapply(contract$history, function(xl) xl$comment)); - histtype = unlist(lapply(contract$history, function(xl) xl$type)); - writeValuesTable(wb, sheet, data.frame(time=histtime, Comment=histcomment, Type=histtype), - crow=crow, ccol=1, tableName="Vertragshistorie", styles=styles, - caption="Vertragshistorie"); - crow = crow + dim(histtime)[[1]] + 3; - - - - ################################################ - # Print out Basic contract data as time series - ################################################ - - # Age, death and survival probabilities - ccol = 1; - crow = 4; - sheet = "Basisdaten"; - tbl = qp[,"age", drop=FALSE]; - writeDataTable(wb, sheet, tbl, - startRow=crow+1, startCol = ccol, colNames = TRUE, rowNames = TRUE, - tableStyle = "TableStyleMedium3", withFilter = FALSE, headerStyle = styles$tableHeader); - freezePane(wb, sheet, firstActiveRow=crow+2, firstActiveCol = ccol+2) - addStyle(wb, sheet, style=styles$center, rows=(crow+2):(crow+1+dim(tbl)[[1]]), cols=ccol:(ccol+1), gridExpand = TRUE, stack=TRUE); - ccol = ccol + dim(tbl)[[2]] + 2; - - ccol = ccol + writeValuesTable(wb, sheet, as.data.frame(setInsuranceValuesLabels(contract$values$basicData)), - crow=crow, ccol=ccol, tableName="Grunddaten", styles=styles, - caption="Vertragsgrunddaten im Zeitverlauf", valueStyle=styles$currency0) + 1; - setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE) - - # TODO: Change PremiumPayment column to 0=prf. / 1=prpfl. / -1=außerplanm.prf. - # TODO: Change InterestRate column to percent format - - - - ################################################ - # Print out Reserves and premium decomposition - ################################################ - - # Age, death and survival probabilities - ccol = 1; - crow = 4; - sheet = "Reserven"; - - ccol = ccol + writeAgeQTable(wb, sheet, probs=qp, crow=crow, ccol=1, styles=styles); - ccol = ccol + writeValuesTable(wb, sheet, as.data.frame(setInsuranceValuesLabels(contract$values$reserves)), - crow=crow, ccol=ccol, tableName="Reserves", styles=styles, - caption="Reserven", valueStyle=styles$currency0) + 1; - ccol = ccol + writeValuesTable(wb, sheet, as.data.frame(setInsuranceValuesLabels(contract$values$premiumComposition)), - crow=crow, ccol=ccol, tableName="Premium_Decomposition", styles=styles, - caption = "Prämienzerlegung", valueStyle=styles$currency0) + 1; - setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE) - - - ################################################ - # Print out absolute values of present values - ################################################ - - # Age, death and survival probabilities - ccol = 1; - crow = 4; - sheet = "abs.Barwerte"; - ccol = ccol + writeAgeQTable(wb, sheet, probs=qp, crow=crow, ccol=1, styles=styles); - - ccol = ccol + writeValuesTable(wb, sheet, as.data.frame(setInsuranceValuesLabels(contract$values$absPresentValues)), - crow=crow, ccol=ccol, tableName="PresentValues_absolute", styles=styles, - caption = "abs. Leistungs- und Kostenbarwerte", valueStyle=styles$currency0) + 1; - setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE) - - - ################################################ - # Print out absolute values for cash flows - ################################################ - - # Age, death and survival probabilities - ccol = 1; - crow = 4; - sheet = "abs.Cash-Flows"; - ccol = ccol + writeAgeQTable(wb, sheet, probs=qp, crow=crow, ccol=1, styles=styles); - ccol = ccol + writeValuesTable(wb, sheet, as.data.frame(setInsuranceValuesLabels(contract$values$absCashFlows)), - crow=crow, ccol=ccol, tableName="CashFlows_absolute", styles=styles, - caption="abs. Leistungs- und Kostencashflows", withFilter=TRUE, valueStyle=styles$currency0) + 1; - setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE) - - - ################################################ - # Print out present values - ################################################ - - # Age, death and survival probabilities - costPV = as.data.frame(contract$tarif$costValuesAsMatrix(setInsuranceValuesLabels(contract$values$presentValuesCosts))); - ccol = 1; - crow = 4; - sheet = "Barwerte"; - # We add six lines before the present values to show the coefficients for the premium calculation - ccol = ccol + writeAgeQTable(wb, sheet, probs=qp, crow=crow+6, ccol=1, styles=styles); - - # Store the start/end columns of the coefficients, since we need them later in the formula for the premiums! - w1 = writePremiumCoefficients(wb, sheet, contract$values$premiumCoefficients, type="benefits", crow=crow, ccol=ccol-2, tarif=contract$tarif); - area.premiumcoeff = paste0(int2col(ccol), "%d:", int2col(ccol+w1-1), "%d"); - area.premiumvals = paste0("$", int2col(ccol), "$", crow+6+2, ":$", int2col(ccol+w1-1), "$", crow+6+2); - ccol = ccol + writeValuesTable(wb, sheet, as.data.frame(setInsuranceValuesLabels(contract$values$presentValues)), - crow=crow+6, ccol=ccol, tableName="PresentValues_Benefits", styles=styles, - caption = "Leistungsbarwerte", valueStyle=styles$pv0) + 1; - - w2 = writePremiumCoefficients(wb, sheet, contract$values$premiumCoefficients, type="costs", crow=crow, ccol=ccol-2, tarif=contract$tarif); - area.costcoeff = paste0(int2col(ccol), "%d:", int2col(ccol+w2-1), "%d"); - area.costvals = paste0("$", int2col(ccol), "$", crow+6+2, ":$", int2col(ccol+w2-1), "$", crow+6+2); - ccol = ccol + writeValuesTable(wb, sheet, as.data.frame(costPV), - crow=crow+6, ccol=ccol, tableName="PresentValues_Costs", styles=styles, - caption = "Kostenbarwerte", valueStyle=styles$cost0) + 1; - - # Now print out the formulas for premium calculation into the columns 2 and 3: - writeData(wb, sheet, as.data.frame(c("Nettoprämie", contract$values$premiums[["net"]],"Zillmerprämie", contract$values$premiums[["Zillmer"]], "Bruttoprämie", contract$values$premiums[["gross"]])), startCol = 1, startRow=crow, colNames = FALSE, borders = "rows"); - for (i in 0:5) { - writeFormula(wb, sheet, paste0("SUMPRODUCT(", sprintf(area.premiumcoeff, crow+i, crow+i), ", ", area.premiumvals, ") + SUMPRODUCT(", sprintf(area.costcoeff, crow+i, crow+i), ", ", area.costvals, ")"), startCol = 3, startRow = crow+i); - addStyle(wb, sheet, style=styles$pv0, rows = crow+i, cols = 3, stack = TRUE); - } - for (i in c(0,2,4)) { - writeFormula(wb, sheet, paste0(int2col(3), crow+i, "/", int2col(3), crow+i+1), startCol=2, startRow = crow+i); - addStyle(wb, sheet, style=styles$pv0, rows = crow+i, cols = 2, stack = TRUE); - } - for (i in c(1,3,5)) { - writeFormula(wb, sheet, paste0(int2col(2), crow+i-1, "*", contract$params$sumInsured), startCol=2, startRow = crow+i); - addStyle(wb, sheet, style=styles$currency0, rows = crow+i, cols = 1:2, stack = TRUE, gridExpand = TRUE); - } - setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE) - - - ################################################ - # Print out cash flows - ################################################ - - # Age, death and survival probabilities - costCF = as.data.frame(contract$tarif$costValuesAsMatrix(setInsuranceValuesLabels(contract$values$cashFlowsCosts))); - ccol = 1; - crow = 4; - sheet = "Cash-Flows"; - ccol = ccol + writeAgeQTable(wb, sheet, probs=qp, crow=crow, ccol=1, styles=styles); - ccol = ccol + writeValuesTable(wb, sheet, setInsuranceValuesLabels(contract$values$cashFlows), - crow=crow, ccol=ccol, tableName="CashFlows_Benefits", styles=styles, - caption="Leistungscashflows", withFilter=TRUE, valueStyle=styles$hide0) + 1; - ccol = ccol + writeValuesTable(wb, sheet, costCF, - crow=crow, ccol=ccol, tableName="CashFlows_Costs", styles=styles, - caption="Kostencashflows", withFilter=TRUE, valueStyle=styles$cost0) + 1; - setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE) - - - - openxlsx::saveWorkbook(wb, filename, overwrite = TRUE) - - - # #### Contract - # premiumPayments = PaymentTimeEnum("in advance"), - # benefitPayments = PaymentTimeEnum("in advance"), - # premiumFrequency = 1, - # benefitFrequency = 1, # Only for annuities! - # loadings = list(), # Allow overriding the tariff-defined loadings (see the InsuranceTariff class for all possible names) - # premiumSum = 0, - # - # - # #### TARIF: - # tariffType = TariffTypeEnum("wholelife"), # possible values: annuity, wholelife, endowment, pureendowment, terme-fix - # premiumFrequencyOrder = 0, - # benefitFrequencyOrder = 0, - # widowFactor = 0, - # premiumRefund = 0, - # premiumRefundLoading = 0, # Mindesttodesfallrisiko soll damit erreicht werden, z.B. 105% der einbezahlten Prämien - # costs = list(), - # benefitFrequencyLoading = list("1" = 0.0, "2" = 0.0, "4" = 0.0, "12" = 0.0), # TODO: Properly implement this - # premiumFrequencyLoading = list("1" = 0.0, "2" = 0.0, "4" = 0.0, "12" = 0.0), # TODO: Implement this - # loadings = list( # Loadings can also be function(sumInsured, premiums) # TODO: Add other possible arguments - # "ongoingAlphaGrossPremium" = 0, # Acquisition cost that increase the gross premium - # "tax" = 0.04, # insurance tax, factor on each premium paid - # "unitcosts" = 0, # annual unit cost for each policy (Stückkosten), absolute value - # "security" = 0, # Additional security loading on all benefit payments, factor on all benefits - # "noMedicalExam" = 0, # Loading when no medicial exam is done, % of SumInsured - # "noMedicalExamRelative" = 0, # Loading when no medicial exam is done, % of gross premium - # "sumRebate" = 0, # gross premium reduction for large premiums, % of SumInsured - # "premiumRebate" = 0, # gross premium reduction for large premiums, % of gross premium # TODO - # "advanceProfitParticipation" = 0, # Vorweggewinnbeteiligung (%-Satz der Bruttoprämie) - # "advanceProfitParticipationInclUnitCost" = 0, # Vorweggewinnbeteiligung (%-Satz der Prämie mit Zu-/Abschlägen, insbesondere nach Stückkosten) - # "partnerRebate" = 0 # Partnerrabatt auf Prämie mit Zu-/Abschlägen, wenn mehr als 1 Vertrag gleichzeitig abgeschlossen wird, additiv mit advanceBonusInclUnitCost and premiumRebate - # ), - -} diff --git a/R/plotValuationTables.R b/R/plotValuationTables.R new file mode 100644 index 0000000..e319174 --- /dev/null +++ b/R/plotValuationTables.R @@ -0,0 +1,73 @@ +makeQxDataFrame = function(..., YOB=1972, Period=NA) { + data=list(...); + names(data) = lapply(data, function(t) t@name); + if (missing(Period)) { + cat("Year of birth: ", YOB, "\n"); + data = lapply(data, function(t) cbind(x=ages(t), y=deathProbabilities(t, YOB=YOB))) + } else { + cat("Period: ", Period,"\n"); + data = lapply(data, function(t) cbind(x=ages(t), y=periodDeathProbabilities(t, Period=Period))) + } + + list.names = names(data) + lns <- sapply(data, nrow) + data <- as.data.frame(do.call("rbind", data)) + data$group <- rep(list.names, lns) + data +} + +#' Plot multiple valuation tables (life tables) in one plot +#' +#' \code{plotValuationTables} prints multiple life tables (objects of child classes of \code{valuationTable}) in one log-linear plot, with a legend showing the names of the tables. +#' +#' @param data First life table to be plotted. Either a \code{data.frame} generated by \code{makeQxDataFrame} or a \code{valuationTable} object +#' @param ... Additional life tables to be plotted (if \code{data} is a \code{valuationTable} object) +#' @param title The plot title +#' @param legend.position The position of the legend (default is \code{c(0.9,0.1)}) +#' @param legend.key.width The keywith of the lines in the legend (default is \code{unit(25,"mm")}) +#' +#' @export +plotValuationTables = function(data, ..., title = "", legend.position=c(0.9,0.1), legend.key.width = unit(25, "mm")) { + if (!is.data.frame(data)) { + data = makeQxDataFrame(data, ...); + } + + pl = ggplot(data, aes(x = x, y = y, colour = data$group)) + + theme_bw() + + theme( + plot.title = element_text(size=18, face="bold"), + legend.title = element_text(size=14, face="bold.italic"), + # legend in bottom right corner of the plot + legend.justification=c(1,0), legend.position=legend.position, + # No box around legend entries + legend.key = element_blank(), + legend.key.width = legend.key.width, + legend.background = element_rect(colour="gray50", linetype="solid") + ) + + geom_line() + + scale_y_log10( + name=expression(paste("Sterbewahrscheinlichkeit ", q[x])), + breaks = scales::trans_breaks('log10', function(x) 10^x), + labels = scales::trans_format('log10', scales::math_format(10^.x)) + #minor_breaks = log(c(sapply(x, function(x) seq(0, x, x/10))), 10) + ) + + scale_x_continuous( + name="Alter", + #breaks = function (limits) scales::trans_breaks('', function(x) 10^x), + breaks = function (limits) seq(max(min(limits),0),max(limits),5), + minor_breaks = function (limits) seq(max(round(min(limits)),0),round(max(limits)),1), + #labels = scales::trans_format('log10', scales::math_format(10^.x)) + + ) + + annotation_logticks(sides="lr") + + xlab("Alter") + labs(colour="Sterbetafel"); + if (title != "") { + pl = pl + ggtitle(title); + } + pl +} +# +# 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/ValuationTables.Rproj b/ValuationTables.Rproj index d603dfc..d4713ef 100644 --- a/ValuationTables.Rproj +++ b/ValuationTables.Rproj @@ -16,4 +16,6 @@ AutoAppendNewline: Yes StripTrailingWhitespace: Yes BuildType: Package +PackageUseDevtools: Yes PackageInstallArgs: --no-multiarch +PackageRoxygenize: rd,collate,namespace diff --git a/man/ValuationTables-package.Rd b/man/ValuationTables-package.Rd index d41e96b..be62d48 100644 --- a/man/ValuationTables-package.Rd +++ b/man/ValuationTables-package.Rd @@ -1,40 +1,11 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ValuationTables.R +\docType{package} \name{ValuationTables-package} -\alias{ValuationTables-package} \alias{ValuationTables} -\docType{package} -\title{ -What the package does (short line) -~~ package title ~~ -} +\alias{ValuationTables-package} +\title{Provide life table classes for life insurance purposes} \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 +Provide life table classes for life insurance purposes } -~~ 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 ~~ -} diff --git a/man/plotValuationTables.Rd b/man/plotValuationTables.Rd new file mode 100644 index 0000000..2d855be --- /dev/null +++ b/man/plotValuationTables.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/plotValuationTables.R +\name{plotValuationTables} +\alias{plotValuationTables} +\title{Plot multiple valuation tables (life tables) in one plot} +\usage{ +plotValuationTables(data, ..., title = "", legend.position = c(0.9, 0.1), + legend.key.width = unit(25, "mm")) +} +\arguments{ +\item{data}{First life table to be plotted. Either a \code{data.frame} generated by \code{makeQxDataFrame} or a \code{valuationTable} object} + +\item{...}{Additional life tables to be plotted (if \code{data} is a \code{valuationTable} object)} + +\item{title}{The plot title} + +\item{legend.position}{The position of the legend (default is \code{c(0.9,0.1)})} + +\item{legend.key.width}{The keywith of the lines in the legend (default is \code{unit(25,"mm")})} +} +\description{ +\code{plotValuationTables} prints multiple life tables (objects of child classes of \code{valuationTable}) in one log-linear plot, with a legend showing the names of the tables. +} + diff --git a/man/valuationTable-class.Rd b/man/valuationTable-class.Rd new file mode 100644 index 0000000..49e5016 --- /dev/null +++ b/man/valuationTable-class.Rd @@ -0,0 +1,106 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ValuationTables.R +\docType{class} +\name{valuationTable-class} +\alias{baseTable,valuationTable-method} +\alias{baseYear,valuationTable-method} +\alias{getCohortTable,valuationTable-method} +\alias{getPeriodTable,valuationTable-method} +\alias{lifeTable,valuationTable-method} +\alias{valuationTable} +\alias{valuationTable-class} +\title{Class valuationTable} +\usage{ +getOmega(object) + +ages(object, ...) + +deathProbabilities(object, ..., YOB = 1975) + +periodDeathProbabilities(object, ...) + +lifeTable(object, ...) + +\S4method{lifeTable}{valuationTable}(object, ...) + +baseYear(object, ...) + +\S4method{baseYear}{valuationTable}(object, ...) + +baseTable(object, ...) + +\S4method{baseTable}{valuationTable}(object, ...) + +getPeriodTable(object, Period, ...) + +\S4method{getPeriodTable}{valuationTable}(object, Period, ...) + +getCohortTable(object, YOB, ...) + +\S4method{getCohortTable}{valuationTable}(object, YOB, ...) +} +\arguments{ +\item{...}{Parameters to be handed to the \code{deathProbabilities} method of the life table} + +\item{YOB}{The birth year for which the death probabilities should be calculated} + +\item{Period}{The observation year for which the period death probabilities should be determined} + +\item{...}{Parameters to be handed to the \code{deathProbabilities} method of the life table} + +\item{Period}{The observation year, for which the death probabilities should be determined} + +\item{Period}{The observation year, for which the death probabilities should be determined} + +\item{YOB}{The birth year for which the life table should be calculated} + +\item{YOB}{The birth year for which the life table should be calculated} +} +\description{ +Class \code{valuationTable} is the (virtual) base class for all valuation +tables. It contains the name and some general values applying to all +types of tables, but does not contain any data itself. Use a child class +to create actual valuation tables. + +Return the maximum age of the life table + +Return the defined ages of the life table + +Return the (cohort) death probabilities of the life table given the birth year (if needed) + +Return the (period) death probabilities of the life table for a given observation year + +Return the lifetable object (package lifecontingencies) for the cohort life table + +Return the lifetable object (package lifecontingencies) for the cohort life table + +Return the base year of the life table + +Return the base year of the life table + +Return the base table of the life table + +Return the base table of the life table + +Return the period life table as a \code{valuationTable_period} object + +Return the period life table as a \code{valuationTable_period} object + +Return the cohort life table as a \code{valuationTable_period} object + +Return the cohort life table as a \code{valuationTable_period} object +} +\section{Slots}{ + +\describe{ +\item{\code{name}}{The human-readable name of the valuation table} + +\item{\code{baseYear}}{The base year of the valuation table (e.g. for tables with trend projection)} + +\item{\code{modification}}{A function that will be called with the final death probabilities +to give the user a way to modify the final probabilities} + +\item{\code{loading}}{Additional security loading on the resulting table (single numeric +value, e.g. 0.05 adds 5% security margin to the probabilities)} +}} + diff --git a/man/valuationTable_ageShift-class.Rd b/man/valuationTable_ageShift-class.Rd new file mode 100644 index 0000000..6e7857a --- /dev/null +++ b/man/valuationTable_ageShift-class.Rd @@ -0,0 +1,47 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ValuationTables.R +\docType{class} +\name{valuationTable_ageShift-class} +\alias{ageShift,valuationTable_ageShift-method} +\alias{deathProbabilities,valuationTable_ageShift-method} +\alias{periodDeathProbabilities,valuationTable_ageShift-method} +\alias{valuationTable_ageShift} +\alias{valuationTable_ageShift-class} +\title{A cohort life table, obtained by age-shifting from a given base table (death probabilities} +\usage{ +ageShift(object, YOB = 1975, ...) + +\S4method{ageShift}{valuationTable_ageShift}(object, YOB = 1975, ...) + +\S4method{deathProbabilities}{valuationTable_ageShift}(object, ..., + YOB = 1975) + +\S4method{periodDeathProbabilities}{valuationTable_ageShift}(object, ..., + Period = 1975) +} +\arguments{ +\item{YOB}{The birth year for which the age shift should be determined.} + +\item{Period}{The observation year for which the period death probabilities should be determined} + +\item{YOB}{The birth year for which the age shift should be determined.} + +\item{YOB}{The birth year for which the death probabilities should be calculated} +} +\description{ +A cohort life table, obtained by age-shifting from a given base table (death probabilities + +Return the age shift of the age-shifted life table given the birth year + +Return the age shift of the age-shifted life table given the birth year + +Return the (cohort) death probabilities of the life table given the birth year (if needed) + +Return the (period) death probabilities of the life table for a given observation year +} +\section{Slots}{ + +\describe{ +\item{\code{ageShifts}}{A \code{data.frame} with columns \code{YOB} and \code{shifts} giving the age shifts for each birth year} +}} + diff --git a/man/valuationTable_improvementFactors-class.Rd b/man/valuationTable_improvementFactors-class.Rd new file mode 100644 index 0000000..6dd7d59 --- /dev/null +++ b/man/valuationTable_improvementFactors-class.Rd @@ -0,0 +1,38 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ValuationTables.R +\docType{class} +\name{valuationTable_improvementFactors-class} +\alias{deathProbabilities,valuationTable_improvementFactors-method} +\alias{periodDeathProbabilities,valuationTable_improvementFactors-method} +\alias{valuationTable_improvementFactors} +\alias{valuationTable_improvementFactors-class} +\title{A cohort life table, obtained by an improvment factor projection +from a given base table (PODs for a given observation year).} +\usage{ +\S4method{deathProbabilities}{valuationTable_improvementFactors}(object, ..., + YOB = 1975) + +\S4method{periodDeathProbabilities}{valuationTable_improvementFactors}(object, + ..., Period = 1975) +} +\arguments{ +\item{YOB}{The birth year for which the death probabilities should be calculated} + +\item{Period}{The observation year for which the period death probabilities should be determined} +} +\description{ +A cohort life table, obtained by an improvment factor projection +from a given base table (PODs for a given observation year). + +Return the (cohort) death probabilities of the life table given the birth year (if needed) + +Return the (period) death probabilities of the life table for a given observation year +} +\section{Slots}{ + +\describe{ +\item{\code{baseYear}}{The base year for the improvements (\code{baseTable} describes the death probabilities in this year)} + +\item{\code{improvement}}{Yearly improvement factors per age} +}} + diff --git a/man/valuationTable_joined-class.Rd b/man/valuationTable_joined-class.Rd new file mode 100644 index 0000000..ccfc977 --- /dev/null +++ b/man/valuationTable_joined-class.Rd @@ -0,0 +1,37 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ValuationTables.R +\docType{class} +\name{valuationTable_joined-class} +\alias{ages,valuationTable_joined-method} +\alias{getOmega,valuationTable_joined-method} +\alias{valuationTable_joined} +\alias{valuationTable_joined-class} +\title{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)} +\usage{ +\S4method{getOmega}{valuationTable_joined}(object) + +\S4method{ages}{valuationTable_joined}(object, ...) +} +\description{ +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) + +Return the maximum age of the joined life table + +Return the defined ages of the life table +} +\section{Slots}{ + +\describe{ +\item{\code{table1}}{The first \code{valuationTable}, valid for years given in \code{yearRange1}} + +\item{\code{yearRange1}}{The years, for which \code{table1} describes the death probabilities} + +\item{\code{table2}}{The second \code{valuationTable}, valid for years given in \code{yearRange2}} + +\item{\code{yearRange2}}{The years, for which \code{table2} describes the death probabilities} +}} + diff --git a/man/valuationTable_mixed-class.Rd b/man/valuationTable_mixed-class.Rd new file mode 100644 index 0000000..208f3bb --- /dev/null +++ b/man/valuationTable_mixed-class.Rd @@ -0,0 +1,56 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ValuationTables.R +\docType{class} +\name{valuationTable_mixed-class} +\alias{ages,valuationTable_mixed-method} +\alias{baseYear,valuationTable_mixed-method} +\alias{deathProbabilities,valuationTable_mixed-method} +\alias{getOmega,valuationTable_mixed-method} +\alias{periodDeathProbabilities,valuationTable_mixed-method} +\alias{valuationTable_mixed} +\alias{valuationTable_mixed-class} +\title{A cohort life table obtained by mixing two life tables with the given weights} +\usage{ +\S4method{getOmega}{valuationTable_mixed}(object) + +\S4method{ages}{valuationTable_mixed}(object, ...) + +\S4method{deathProbabilities}{valuationTable_mixed}(object, ..., YOB = 1975) + +\S4method{periodDeathProbabilities}{valuationTable_mixed}(object, ..., + Period = 1975) + +\S4method{baseYear}{valuationTable_mixed}(object, ...) +} +\arguments{ +\item{YOB}{The birth year for which the death probabilities should be calculated} + +\item{Period}{The observation year for which the period death probabilities should be determined} +} +\description{ +A cohort life table obtained by mixing two life tables with the given weights + +Return the maximum age of the mixed life table + +Return the defined ages of the life table + +Return the (cohort) death probabilities of the life table given the birth year (if needed) + +Return the (period) death probabilities of the life table for a given observation year + +Return the base year of the life table +} +\section{Slots}{ + +\describe{ +\item{\code{table1}}{The first \code{valuationTable}} + +\item{\code{table2}}{The second \code{valuationTable}} + +\item{\code{weight1}}{The weight of the first valuation table} + +\item{\code{weight2}}{The weight of the second valuation table} + +\item{\code{loading}}{Additional security loading} +}} + diff --git a/man/valuationTable_observed-class.Rd b/man/valuationTable_observed-class.Rd new file mode 100644 index 0000000..14b5261 --- /dev/null +++ b/man/valuationTable_observed-class.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ValuationTables.R +\docType{class} +\name{valuationTable_observed-class} +\alias{valuationTable_observed} +\alias{valuationTable_observed-class} +\title{A cohort life table described by actual observations (data frame of PODs +per year and age)} +\description{ +A cohort life table described by actual observations (data frame of PODs +per year and age) +} +\section{Slots}{ + +\describe{ +\item{\code{data}}{The observations} +}} + diff --git a/man/valuationTable_period-class.Rd b/man/valuationTable_period-class.Rd new file mode 100644 index 0000000..401788b --- /dev/null +++ b/man/valuationTable_period-class.Rd @@ -0,0 +1,51 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ValuationTables.R +\docType{class} +\name{valuationTable_period-class} +\alias{ages,valuationTable_period-method} +\alias{baseTable,valuationTable_period-method} +\alias{deathProbabilities,valuationTable_period-method} +\alias{getOmega,valuationTable_period-method} +\alias{periodDeathProbabilities,valuationTable_period-method} +\alias{valuationTable_period} +\alias{valuationTable_period-class} +\title{A period life table, giving death probabilities for each age, up to +maximum age omega. Optionally apply selection factors to the probabilities} +\usage{ +\S4method{getOmega}{valuationTable_period}(object) + +\S4method{ages}{valuationTable_period}(object, ...) + +\S4method{deathProbabilities}{valuationTable_period}(object, ..., YOB = 1975) + +\S4method{periodDeathProbabilities}{valuationTable_period}(object, ...) + +\S4method{baseTable}{valuationTable_period}(object, ...) +} +\arguments{ +\item{YOB}{The birth year for which the death probabilities should be calculated} + +\item{Period}{The observation year for which the period death probabilities should be determined} +} +\description{ +A period life table, giving death probabilities for each age, up to +maximum age omega. Optionally apply selection factors to the probabilities + +Return the maximum age of the period life table + +Return the defined ages of the life table + +Return the (cohort) death probabilities of the life table given the birth year (if needed) + +Return the (period) death probabilities of the life table for a given observation year + +Return the base table of the life table +} +\section{Slots}{ + +\describe{ +\item{\code{ages}}{The ages corresponding to the entries of the deathProbs} + +\item{\code{deathProbs}}{The one-year death probabilities for the ages} +}} + diff --git a/man/valuationTable_trendProjection-class.Rd b/man/valuationTable_trendProjection-class.Rd new file mode 100644 index 0000000..48bf30d --- /dev/null +++ b/man/valuationTable_trendProjection-class.Rd @@ -0,0 +1,57 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ValuationTables.R +\docType{class} +\name{valuationTable_trendProjection-class} +\alias{deathProbabilities,valuationTable_trendProjection-method} +\alias{periodDeathProbabilities,valuationTable_trendProjection-method} +\alias{undampenTrend,valuationTable_trendProjection-method} +\alias{valuationTable_trendProjection} +\alias{valuationTable_trendProjection-class} +\title{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} +\usage{ +\S4method{deathProbabilities}{valuationTable_trendProjection}(object, ..., + YOB = 1975) + +\S4method{periodDeathProbabilities}{valuationTable_trendProjection}(object, ..., + Period = 1975) + +undampenTrend(object) + +\S4method{undampenTrend}{valuationTable_trendProjection}(object) +} +\arguments{ +\item{YOB}{The birth year for which the death probabilities should be calculated} + +\item{Period}{The observation year for which the period death probabilities should be determined} +} +\description{ +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 + +Return the (cohort) death probabilities of the life table given the birth year (if needed) + +Return the (period) death probabilities of the life table for a given observation year + +Return a \code{valuationTable_trensProjection} object with the trend damping removed. + +Return a \code{valuationTable_trensProjection} object with the trend damping removed. +} +\section{Slots}{ + +\describe{ +\item{\code{baseYear}}{The base year of the trend projection (\code{baseTable} describes the death probabilities in this year)} + +\item{\code{trend}}{The yearly improvements of the log-death probabilities (per age)} + +\item{\code{dampingFunction}}{A possible damping of the trend. This is a function \code{damping(delta_years)} that gets a vector of years from the baseYear and should return the dampened values.} + +\item{\code{trend2}}{The alternate trend. If given, the damping function interpolates between \code{trend} and \code{trend2}, otherwise the dumping function simply modifies the coefficients of \code{trend}.} +}} + -- GitLab