生命表和转换函数是寿险精算完成计算的基础. 2016年12月28日,中国保监会发布了我国保险业第三套生命表——《中国人身保险业经验生命表(2010- 2013)》. 此次发布的新版生命表于2017年1月1日正式启用. 生命表是人身保险业的基石和核心基础设施,是一个国家或地区保险精算技术水平高低的重要标志,广泛用于产品定价、准备金评估、现金价值计算等各个方面.
实验1.1利用Excel的函数计算功能,不需使用专业的精算软件,就可以解决生命表和基本函数的计算. 下面以第三套生命表中非养老类业务一表女表CL2为例进行计算演示实验,假设. 由构成的生命表成为最基本生命表,根据最基本生命表可以计算整个生命表和转换函数表.
实验1.2用北美精算师协会的生命表,评估:
1. 65岁的被保险人在85岁之前死亡的概率.
2. 25岁的投保人存活到65岁的概率.
北美精算师协会阐述的生命表可以用下命令调用:
>data(soa08Act)
因为它是一个S4类对象,所以使用@符号获得其中元素.例如,65岁的幸存者人数将是:
>soa08Act@lx[soa08Act@x==65]
[1] 75339.63
为了计算实验中第一个概率,我们可以用
>#example1.2.1
>(soa08Act@lx[soa08Act@x==65]-soa08Act@lx[soa08Act@x==85])/soa08Act@lx[soa08Act@x==65]
[1] 0.6869847
或者,更简单地,可以使用pxt和qxt函数:
>qxt(soa08Act,65,20)
[1] 0.6869847
> #example 1.2.2
> pxt(soa08Act, 25,40)
[1] 0.7876582
实验1.3用精算师协会生命表,计算:
1. 生命表中的新生儿的平均余命.
2. 生命表中50到60岁人的平均余命.
>#example1.3.1
> sum(soa08Act@lx[soa08Act@x%in%(1:110)]/soa08Act@lx[soa08Act@x==0])
[1] 71.30788
>sum(soa08Act@lx/soa08Act@lx[soa08Act@x==0])-1
[1] 71.30789
> exn(object = soa08Act)
[1] 71.30789
对于50岁到60岁之间的平均余寿,我们还可以通过求和一些的方法计算平均余寿:
>#example1.3.2
> sum(soa08Act@lx[soa08Act@x%in%(51:60)]/soa08Act@lx[soa08Act@x==50])
[1] 9.583979
> exn(object = soa08Act,x=50,n=60-50,type="curtate")
[1] 9.583979
实验1.4评估年龄在80岁,1/4的保单持有人将在半年内死亡的概率,假设:
1. 线性死亡插值;
2. 恒定的死亡率.
>#example 1.4.1
>pxt(object=soa08Act,x=80.25,t=0.5, fractional="linear")
[1] 0.959027
> #example 1.4.2
>pxt(object=soa08Act,x=80.25,t=0.5, fractional="constant force")
[1] 0.9590095
实验1.5假设SOA生命表适用于年龄分别为60和65岁的两名保单持有人,分别计算:
1. 两个保单持有人在20年后仍然存活的概率
2. 20年后至少有一个人存活的概率
3. 联合预期的寿命
在这里妻子和丈夫考虑同样的生命表(但也可以考虑不同的生命表).
>maleTable <-soa08Act; femaleTable <- soa08Act;
> tables <-list(male=maleTable,female=femaleTable
对于联合概率,如果我们假定寿命独立,那么概率是
>#example 1.5.1
>pxt(tables$male,x=65,t=20)*pxt(tables$female,x=60,t=20)
[1] 0.1496391
还可以用pxyzt函数计算:
> pxyzt(tablesList=tables,x=c(65,60),t=20,status="joint")
[1] 0.1496391
> #example 1.5.2
>pxyzt(tablesList=tables, x=c(65,60),t=20,status="last")
[1] 0.641433
> #example 1.5.3
>exyzt(tablesList=tables, x=c(65,60),t=20,status="joint")
[1] 11.08887
对于两个个体,可以分开计算生存概率,计算当x = 65且y = 60时,最后的幸存概率和联合生存概率.
> probjoint <-function(t){pxyzt(tablesList=tables, x=c(65,60),t,status="joint")}
> problast <-function(t){pxyzt(tablesList=tables, x=c(65,60),t=20,status="last")}
> vecT <- seq(0,45)
> plot(vecT, Vectorize(probjoint)(vecT),type="l", lty=2, ylab="Survival probability", xlab=" ")
>lines(vecT,Vectorize(problast)(vecT),col="grey",lwd=2)

