R语言寿险精算(二):人寿保险
教材: Actuarial Mathematics for Life Contingent Risks
人寿保险和年金保险的区别
一般而言,年金保险在生存时给付,而人寿保险在死亡时给付。但其本质区别是年金保险是多笔现金流,人寿保险是一笔现金流,因此以生存为给付条件的Pure Endowment被归类为Assurance。
在计算上,
年金保险:$\sum$ 每一笔现金流 $\times$ 给付概率(生存概率 $_{k}p_x$) $\times$ 折现系数
人寿保险:$\sum$ 每一年的给付概率(当年死亡概率 $_{k|}q_x$)$\times$ 同一笔现金流 $\times$ 折现系数
可以看到年金和寿险具有相似的计算结构,如果现金流的金额完全相同,则价格差异来自于给付概率(生存/死亡概率)的差异。对于青中年,近期的折现系数大,权重高,是影响价格的主要部分。而其近期生存概率(0.99+)远高于近期内当年死亡的概率(0.00+)。反映到价格上,则是青中年的年金险价格远高于寿险,且定期寿险更加便宜。
另外,
年金根据现金流类型分为连续和离散,离散又分为期初给付和期末给付,连续年金没有实际意义(连续现金流等于每时每秒都在给钱,而实际上按周给付的产品都已经很少见,因此更常使用多期给付的计算技巧转化离散年金)。
寿险也分连续和离散,离散类型中,期初寿险没有实际意义(死亡当年的年初无法预见死亡),期末寿险即死亡当年年末给付,连续寿险为死亡时立即给付,有较强实际意义。
life_table: A life table with mortality rates $q_x$ from age 0.
age: The individual’s age at this moment.
i: A given constant interest rate.
n: A given period of temporary products.
终身寿险
死亡时一次性给付。
对于(x),死亡是一定会发生的事件,因此在此后各年当年死去的概率之和为1,等价于终身寿险必然会给付。对每一年当年死亡的mortality rate($_{k|}q_x$,即支出这1笔现金流的概率)乘以对应的discount factor求和,得到这1笔现金流的期望现值EPV。
1whole_life_insurance <- function(age, i, life_table){
2 qx <- life_table$qx
3 px <- 1-qx
4 kpx <- c(1,cumprod(px[(age+1):(length(px)-1)]))
5 k_qx <- kpx*qx[(age+1):length(qx)]
6 discount_factors <- (1+i) ^ - (1:(length(k_qx)))
7 sum(discount_factors * k_qx)
8}
定期寿险
在n年内死亡时一次性给付。
期望现值 $=$ $\sum_{0 or 1}^{n}$ 现金流 $\times$ 折现系数 $\times$ 当年死亡概率
1temporary_life_insurance <- function(age, n, i, life_table){
2 qx <- life_table$qx
3 px <- 1-qx
4 kpx <- c(1,cumprod(px[(age+1):(age+n-1)]))
5 k_qx <- kpx*qx[(age+1):(age+n)]
6 discount_factors <- (1+i) ^ - (1:(length(k_qx)))
7 sum(discount_factors * k_qx)
8}
生存保险
1pure_endowment <- function(age, n, i, life_table){
2 px <- 1-life_table$qx
3 npx <- prod(px[(age+1):(age+n)])
4 discount_factor <- (1+i) ^ (-n)
5 discount_factor * npx
6}
两全保险(生死合险)
在n年内存活则在第n年末一次性给付,在n年内死亡则在死亡时一次性给付。
$$A_{x:\overline n|} = A_{\mathop{1\ \ \ }\limits_{x:\overline n|}} + A_{\mathop{\ \ 1} \limits_{x:\overline n|}}$$
相当于一个定期寿险加一个定期生存的保障范围。目前英国仍在保的两全保险产品应用于个人房贷保障,保额随房贷还款金额逐年递减,如果个人在还款期间死亡,死亡保额用于偿还剩余贷款;如果一直存活到保障期限结束,生存保额用于结清贷款尾款。
1endowment_insurance <- function(age, n, i, life_table){
2 qx <- life_table$qx
3 px <- 1-qx
4 # temporary_life_insurance
5 kpx <- c(1,cumprod(px[(age+1):(age+n-1)]))
6 if ((age+1)>(age+n-1)) {kpx <- c(1)} # fix 1
7 k_qx <- kpx*qx[(age+1):(age+n)]
8 discount_factors <- (1+i) ^ - (1:(length(k_qx)))
9 # pure_endowment
10 npx <- prod(px[(age+1):(age+n)])
11 discount_factor <- (1+i) ^ (-n)
12 # output
13 discount_factor * npx + sum(discount_factors * k_qx)
14}
递延终身寿险
在前u年内死亡不给付,在u年后死亡时一次性给付。
建立benefits数组将递延期间的现金流置0以对应总和。
1deferred_life_insurance <- function(age, u, i, life_table){
2 qx <- life_table$qx
3 px <- 1-qx
4 kpx <- c(1,cumprod(px[(age+1):(length(px)-1)]))
5 k_qx <- kpx*qx[(age+1):(length(qx))]
6 discount_factors <- (1+i) ^ - (1:(length(k_qx)))
7 benefits <- c(rep(0,u),rep(1,(length(k_qx)-u)))
8 sum(benefits * discount_factors * k_qx)
9}
增额终身寿险
每年的现金流金额不固定,单独拟合现金流数组。
此处假设增额寿险起始保额为1,之后每年按1增长。
1increasing_life_insurance <- function(age, i, life_table){
2 qx <- life_table$qx
3 px <- 1-qx
4 kpx <- c(1,cumprod(px[(age+1):(length(px)-1)]))
5 k_qx <- kpx*qx[(age+1):length(qx)]
6 discount_factors <- (1+i) ^ - (1:(length(k_qx)))
7 benefits <- c(1:(length(k_qx)))
8 sum(benefits * discount_factors * k_qx)
9}