R语言再保险合同定价案例研究
原文链接:http://tecdat.cn/?p=13617
再保险案例研究目的是为业务中断索赔定价一些非比例再保险合同。考虑以下数据集,
> db=read.xls(
+ "PE.xls",
+ sheet=1)
Content type 'application/vnd.ms-excel' length 183808 bytes (179 Kb)
open URL
==================================================
downloaded 179 Kb
至于任何(标准)保险合同,定价中有两个部分
- 预期的索赔数量
- 个人索赔的平均费用
在这里,我们没有协变量(但是可以使用某些变量,例如行业的种类,地理位置等)。
让我们从每年的预期索赔数开始。这是每天的频率
是很久以前的数据,但是,这也是一件好事,因为十年后,我们可以预期大多数索赔已经解决。为了绘制上面的图,我们使用
> date=db$DSUR
> D=as.Date(as.character(date),format="%Y%m%d")
> vD=seq(min(D),max(D),by=1)
> sD=table(D)
> d1=as.Date(names(sD))
> d2=vD[-which(vD%in%d1)]
> vecteur.date=c(d1,d2)
> vecteur.cpte=c(as.numeric(sD),rep(0,length(d2)))
> base=data.frame(date=vecteur.date,cpte=vecteur.cpte)
> plot(vecteur.date,vecteur.cpte,type="h",xlim=as.Date(as.character(
+ c(19850101,20111231)),format="%Y%m%d"))
然后,我们可以使用(标准)Poisson回归来预测每日业务中断索赔的数量,例如,在2010年的任何一天(假设我们必须在几年前对再保险合同进行定价)
> pred2010 =predict(regdate,newdata=nd2010,type="response")
> sum(pred2010)
[1] 159.4757
观察使用旧数据有弊端,因为如果我们按时进行回归(包括一些可能的趋势),我们将面临更多不确定性。
假设我们在给定的一年中平均有160项声明。
> plot(D,db$COUTSIN,type="h")
现在让我们集中讨论这些索赔的费用。我们的数据集中有2,400个索赔要求适合模型(或至少估计了再保险合同可能给我们造成的损失)。假设我们想为我们的大额索赔购买再保险合同。在16年的时间里,该可执行文件的费用应接近1500万。
> quantile(db$COUTSIN,1-32/2400)/1e6
98.66667%
15.34579
> abline(h=quantile(db$COUTSIN,1-32/2400),col="blue")
因此,考虑一些免赔额为1500万的再保险合同。让我们假设再保险公司同意这种免赔额,但承保范围为3500万。
第一个想法是查看我们投资组合中的第一个成本,即该赔偿的经验平均值。
检查一些损失
> indemn(5)
[1] 0
> indemn(20)
[1] 5
> indemn(50)
[1] 35
现在,如果计算再保险公司在16年内的平均还款额,
> mean(indemn(db$COUTSIN/1e6))
[1] 0.1624292
因此,根据索赔,再保险公司将平均支付162,430。每年有160项索赔,纯保费应接近2600万
> mean(indemn(db$COUTSIN/1e6))*160
[1] 25.98867
(同样,对于3,500万份保险,平均每年应发生两次的某些索赔)。正如我们看到的,再保险的标准模型是帕累托分布(或更具体地说,是广义帕累托分布),
这里有三个参数
- 阈值(我们将其视为固定阈值,但会看到其对再保险定价的影响)
- 比例参数
- 尾部指数
策略是考虑一个低于我们免赔额的门槛,例如1200万。然后,假设损失超过1200万,我们就可以拟合广义Pareto分布,
> gpd.PL
xi beta
7.004147e-01 4.400115e+06
在这里,鉴于索赔超过1200万,平均还款额接近600万
> E(15e6,50e6,gpd.PL[1],gpd.PL[2],12e6)
[1] 6058125
现在,我们必须考虑达到1200万的概率
> mean(db$COUTSIN>12e6)
[1] 0.02639296
因此,如果总结一下,我们每年平均有160项索赔
> p
[1] 159.4757
只有2.6%将超过1200万
> mean(db$COUTSIN>12e6)
[1] 0.02639296
因此,每年发生1200万以上的频率为4.2
> p*mean(db$COUTSIN>12e6)
[1] 4.209036
对于超过1200万的索赔,平均还款额为
> E(15e6,50e6,gpd.PL[1],gpd.PL[2],12e6)
[1] 6058125
因此,纯溢价应接近
> p*mean(db$COUTSIN>12e6)*E(15e6,50e6,gpd.PL[1],gpd.PL[2],12e6)
[1] 25498867
接近我们获得的经验值。实际上,也可以查看阈值参数的影响,很明显,中间值可以更改。
我们可以将纯溢价绘制为该阈值的函数,
> seuils=seq(1e6,15e6,by=1e6)
> plot(seuils,Vectorize(esp)(seuils),type="b",col="red")
对于较大的阈值,该值在24到26之间。同样,这是第一步,我们可以为更高的再保险层定价,例如可抵扣额为5000万的再保险合同(我们之前有低于该门槛的索赔的再保险合同),而承保额为5000万。拥有参数模型变得有趣,该模型应该比经验平均值更健壮。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- mysql常用语句集合(仅供工作日常学习参考)
- 新一代Notebook神器出现,Jupyter危险了!
- vmstat 监视内存使用情况
- Android开发重写Animation实现下拉图片后弹射回去效果示例
- Android 中RxPermissions 的使用方法详解
- Android构建Material Design应用详解
- Android中DrawerLayout实现侧滑菜单效果
- Android获取系统储存以及内存信息的方法(一)
- Android开发实现读取excel数据并保存为xml的方法
- 详解Kotlin 中使用和配置 Dagger2
- Android开发使用自定义View将圆角矩形绘制在Canvas上的方法
- Android编程双重单选对话框布局实现与事件监听方法示例
- android调用H5显示加载中效果的示例代码
- Java工作中遇到的问题Method has too many Body parameters的处理办法SpringCloud Feign报错:Method has too many Body par
- Android view滑动悬浮固定效果实现代码示例