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)/1e698.66667% 15.34579 > abline(h=quantile(db$COUTSIN,1-32/2400),col="blue")
因此,考虑一些免赔额为1500万的再保险合同。让我们假设再保险公司同意这种免赔额,但承保范围为3500万。平均成本(为再保险公司)是E(g(X))
第一个想法是查看我们投资组合中的第一个成本,即该赔偿的经验平均值。
检查一些损失
> 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 数组属性和方法
- Prometheus 如何做到“活学活用”,大牛总结的避坑指南
- 文档驱动 —— 表单组件(一):表单元素组件 优点缺点选择文本类的Inputcheck 多选value的类型问题
- Vue3.0源码结构分析
- 【每周一库】- cached - 缓存结构型、辅助函数记忆化
- meta生成器 —— 表单元素组件 meta表单代码meta的模板data变幻
- 不用写代码也能做表单 —— 加载meta即可 菜单表单加载json运行效果。ModelAbout
- 从0到1,手把手教你入门 etcd
- 数据结构:手把手带你了解 ”图“ 所有知识!(含DFS、BFS)
- 设计模式之单例模式
- AndroidStudio创建JNI 工程与调用
- Java 版植物大战僵尸思路和源码分享!
- 你好MyBatis 入门篇
- 你好MyBatis 中级篇
- 你好MyBatis 中高级篇
- Nginx反代理获取真实IP