Presentation is loading. Please wait.

Presentation is loading. Please wait.

孟生旺 中国人民大学统计学院 http://blog.sina.com.cn/mengshw R 在精算中的应用 第5届中国R会议 孟生旺 中国人民大学统计学院 http://blog.sina.com.cn/mengshw.

Similar presentations


Presentation on theme: "孟生旺 中国人民大学统计学院 http://blog.sina.com.cn/mengshw R 在精算中的应用 第5届中国R会议 孟生旺 中国人民大学统计学院 http://blog.sina.com.cn/mengshw."— Presentation transcript:

1 孟生旺 中国人民大学统计学院 http://blog.sina.com.cn/mengshw
R 在精算中的应用 第5届中国R会议 孟生旺 中国人民大学统计学院

2 概述 统计 精算 统计软件:R,SAS,…… 精算软件 寿险:定价、准备金、分类 非寿险:定价、准备金、分类
Prophet,MoSes,VIP, IGLOO, EMBlem

3 统计软件在非寿险精算中的应用 Source Palisade 2006 ):

4 EXCEL,SAS,R的简单比较 EXCEL:简单易学,容易出错,结果不稳定,计算效率低,统计功能有限。

5 精算应用中的R包 利息理论和寿险精算:lifecontigencies 损失模型:actuar 非寿险准备金评估:ChainLadder
非寿险定价:glm,glm.nb (在MASS包中), cplm,gamlss 数据处理和绘图:plyr,reshape,ggplot2

6 利息理论与寿险精算:lifecontigencies
功能: 人口统计、利息理论和精算数学的计算 寿险保单的定价、准备金评估 不足: 目前只能处理单减因表 不能处理连续时间。 Bug?

7 Lifecontigencies示例 > library(lifecontingencies) > nominal2Real(i=0.12, k = 12, type="interest") > #现值计算 > cf=c(10,20,30) #现金流 > t=1:3 #付款时间 > p=c(0.5,0.6,0.8) #付款概率 > i=0.03 #年实际利率 > presentValue(cashFlows=cf, timeIds=t, interestRates=i, probabilities=p) [1] > #30岁,10年定期寿险,年利率4% > Axn(soa08Act, 30, 10, i=0.04) [1]

8 A bug? > library(lifecontingencies) > cf=c(10,10,10,10,10,110) > t=1:6 > duration(cf, t, i=0.03,macaulay=F) #得到macaulay久期? [1] > sum(t*cf*1.03^(-t))/sum(cf*1.03^(-t)) #直接计算macaulay久期 > convexity(cf, t, i=0.03) #计算凸度 [1] > sum(t*(t+1)*cf*(1+0.03)^(-t-2))/sum(cf*1.03^(-t)) 直接计算凸度

9 损失模型:actuar 分布计算和参数估计:d, p, q, r, m, lev 信度模型 累积损失的计算 破产概率的计算
分层损失模型的随机模拟 注:CAS的LSM可以模拟保险公司的损失发生过程及其进展:

10 Actuar:BS信度模型示例 > library(actuar) > mydata
policy loss1 loss2 loss3 w1 w2 w3 4 NA NA NA NA 348 > myfit=cm(~policy,mydata,ratios=loss1:loss3, weights=w1:w3)

11 > summary(myfit) Call: cm(formula = ~policy, data = mydata, ratios = loss1:loss3, weights = w1:w3) Structure Parameters Estimators Collective premium: Between policy variance: Within policy variance: Detailed premiums Level: policy policy Indiv. mean Weight Cred. factor Cred. premium

12 #分层信度模型 > mydata1 type policy loss1 loss2 loss3 w1 w2 w3 1 A 2 B 3 A 4 B NA NA NA NA 348 > myfit1=cm(~type+type:policy, mydata1, ratios=loss1:loss3, weights=w1:w3, method='iterative')

13 > summary(myfit1) Call: cm(formula = ~type + type:policy, data = mydata1, ratios = loss1:loss3, weights = w1:w3, method = "iterative") Structure Parameters Estimators Collective premium: Between type variance: Within type/Between policy variance: Within policy variance: Detailed premiums Level: type type Indiv. mean Weight Cred. factor Cred. premium A B Level: policy type policy Indiv. mean Weight Cred. factor Cred. premium A B A B

14 Actuar:累积损失计算示例 S = X1 + X2 + … + XN library(actuar) fx=discretize(pgamma(x, 2, 1), from = 0, to = 22, step = 0.5, method = "unbiased", lev = levgamma(x, 2, 1)) #单次损失分布的离散化 Fs=aggregateDist("recursive", model.freq = "poisson", model.sev = fx, lambda = 10, x.scale = 0.5) #累积损失的计算 > VaR(Fs,seq(0.9,1,0.02)) 90% 92% 94% 96% 98% 100% > CTE(Fs,seq(0.9,1,0.02)) 90% 92% 94% 96% 98% 100% NaN

15 par(mfrow=c(1,2)) plot(Fs,verticals=T,do
par(mfrow=c(1,2)) plot(Fs,verticals=T,do.points=F,col=2,main='分布函数') #分布函数 plot(diff(Fs),type='l',col=2,main='密度函数') #密度函数

16 非寿险准备金评估:ChainLadder
基于流量三角形 适用于常见的准备金评估方法: 确定性模型 随机模型:bootstrap,GLM

17 Chainladder:基于GLM的准备金评估示例
> dat dev origin NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > fit=glmReserve(dat,var.power=2,mse.method='bootstrap')

18

19 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) < 2e-16 *** factor(origin) factor(origin) factor(origin) factor(origin) factor(origin) factor(origin) factor(origin) factor(origin) factor(origin) factor(dev) * factor(dev) * factor(dev) factor(dev) factor(dev) factor(dev) * factor(dev) * factor(dev) ** factor(dev) **

20 > fit$summary Latest Dev.To.Date Ultimate IBNR S.E CV total

21 可以用于非寿险定价的R包 glm glm.nb cplm gamlss

22 gamlss的应用示例 拟合损失次数, 数据来源:de Jong(2008) > dat claims freq 1 0 63232

23

24 > library(gamlss) > fam=c('PO','NBI','NBII','PIG','DEL','SICHEL','ZIP','ZINBI') > m1=m2=list() > for (i in 1:8) {m1[[fam[i]]]=GAIC(gamlss(claims~1,weights=freq,data=dat,family=fam[i],n.cyc=100,trace=F)) + m2[[fam[i]]]=GAIC(gamlss(claims~1,weights=freq,data=dat,family=fam[i],n.cyc=100,trace=F),k=log(sum(dat$freq)))} > sort(unlist(m1)) #AIC比较 PIG NBI NBII SICHEL DEL ZINBI ZIP PO > sort(unlist(m2)) #SBC比较 PIG NBI NBII ZIP SICHEL DEL ZINBI PO

25 claims freq PIG PO

26 R与SAS在精算应用中的几个比较 优化: GLM: GLMM: R:optim,nlm …… SAS:NLMIXED
R:glm,glm.nb, gamlss SAS:GENMOD GLMM: R:lme4 SAS:GLIMMIX,NLMIXED

27 小结 R和SAS需要互补 R的精算包:需要进一步完善和优化 R对精算学习的影响


Download ppt "孟生旺 中国人民大学统计学院 http://blog.sina.com.cn/mengshw R 在精算中的应用 第5届中国R会议 孟生旺 中国人民大学统计学院 http://blog.sina.com.cn/mengshw."

Similar presentations


Ads by Google