R语言巨灾风险下再保险合同定价研究案例:广义线性模型和帕累托分布分析
原文链接:http://tecdat.cn/?p=13854
本文为非人寿保险课程的一部分,该示例对1900 -2005年间的“ 美国标准化飓风损失 ”数据集进行研究(2008),我们使用了广义线性模型和帕累托分布Pareto distributions分析。该数据集以xls格式提供,首先我们来导入它,
数据导入和清理
> library(gdata)> db=read.xls(data.xls",sheet=1)
excel电子表格的问题在于某些列可能具有预先指定的格式(例如,损失为000,000,000格式)
> tail(db) Year Hurricane.Description State Category Base.Economic.Damage202 2005 Cindy LA 1 320,000,000203 2005 Dennis FL 3 2,230,000,000204 2005 Katrina LA,MS 3 81,000,000,000205 2005 Ophelia NC 1 1,600,000,000206 2005 Rita TX 3 10,000,000,000207 2005 Wilma FL 3 20,600,000,000 Normalized.PL05 Normalized.CL05 X X.1202 320,000,000 320,000,000 NA NA203 2,230,000,000 2,230,000,000 NA NA204 81,000,000,000 81,000,000,000 NA NA205 1,600,000,000 1,600,000,000 NA NA206 10,000,000,000 10,000,000,000 NA NA207 20,600,000,000 20,600,000,000 NA NA
要获取我们可以使用的格式的数据,考虑以下函数,
> stupidcomma = function(x){+ x=as.character(x)+ for(i in 1:10){x=sub(",","",as.character(x))}+ return(as.numeric(x))}
然后将这些值转换为数字,
> base=db[,1:4]> base$Base.Economic.Damage=Vectorize(stupidcomma)(db$Base.Economic.Damage)> base$Normalized.PL05=Vectorize(stupidcomma)(db$Normalized.PL05)> base$Normalized.CL05=Vectorize(stupidcomma)(db$Normalized.CL05)
从现在开始,这是我们将使用的数据集,
> tail(base) Year Hurricane.Description State Category Base.Economic.Damage202 2005 Cindy LA 1 3.20e+08203 2005 Dennis FL 3 2.23e+09204 2005 Katrina LA,MS 3 8.10e+10205 2005 Ophelia NC 1 1.60e+09206 2005 Rita TX 3 1.00e+10207 2005 Wilma FL 3 2.06e+10 Normalized.PL05 Normalized.CL05202 3.20e+08 3.20e+08203 2.23e+09 2.23e+09204 8.10e+10 8.10e+10205 1.60e+09 1.60e+09206 1.00e+10 1.00e+10207 2.06e+10 2.06e+10
数据探索
我们可以直观地看到1900年至2005年的207次飓风的成本(这里的x轴不是时间,它只是损失的指数)
> plot(base$Normalized.PL05/1e9,type="h",ylim=c(0,155))
通常,计算保险合同的纯保费时有两个部分。索赔数量(或此处的飓风)以及每项索赔的个人损失。我们已经看到了个人损失,现在让我们集中讨论年度频率。
> db[88:93,] years counts88 2003 389 2004 690 2005 691 1902 092 1905 093 1907 0
平均而言,我们每年大约遭受2次(主要)飓风,
> mean(db$counts)[1] 1.95283
广义线性模型预测
在预测模型中(此处,我们希望为2014年的再保险合同定价),我们可能需要考虑飓风发生频率的某些可能趋势。我们可以考虑用glm预测线性趋势或指数趋势
我们可以绘制这三个预测,并预测2014年(主要)飓风的数量,
constant linear exponential126 1.95283 3.573999 4.379822> points(rep((1890:2030)[126],3),prediction,col=c("black","red","blue"),pch=19)
观察到改变模型将改变纯粹的溢价:如果预测不变,我们预计飓风将少于2(主要),但是随着指数趋势的发展,我们预计将超过4。
这是预期的频率。现在,我们应该找到一个合适的模型来计算再保险条约的纯保费,并具有(高)免赔额和有限(但大)赔付额。合适的模型是一个帕累托分布(见Hagstrœm(1925年)。
估计帕累托分布尾部指数
显然,主要飓风造成的损失惨重。
现在,考虑一家拥有5%市场份额的保险公司。我们将考虑 tilde Y_i = Y_i / 20。损失如下。考虑一个再保险条约,其免赔额为2(十亿),有限承保范围为4(十亿),
对于我们的帕累托模型,仅考虑5亿美元以上的损失,
xi beta 0.4424669 0.6705315
八分之一的飓风达到了该水平
[1] 0.1256039
计算再保险合同的预期价值
鉴于损失超过5亿,我们现在可以计算再保险合同的预期价值,
现在,我们预计每年的飓风会少于2(主要)
> predictions[1][1] 1.95283
每个飓风给我们的保险公司带来超过5亿的损失的机率是12.5%,
> mean(base$Normalized.PL05/1e9/20>.5)[1] 0.1256039
并假设飓风造成的损失超过5亿美元,那么再保险公司的预期还款额(百万)
> E(2,6,gpd.PL[1],gpd.PL[2])*1e3[1] 330.9865
所以再保险合同的纯保费就是
[1] 81.18538
覆盖40亿,超过2个。
- 关于oracle session的简单测试(r2笔记95天)
- 使用utl_file走选择性数据导出(r2笔记95天)
- 使用Linux命令发送邮件(r2笔记94天)
- 如何用python轻松破解wifi密码( 源码 )
- 海量数据迁移之通过shell估算数据量 (r2笔记93天)
- 使用sklearn进行数据挖掘
- 批量转换分区表为普通表(r2笔记92天)
- 使用sklearn做特征工程
- 【专业技术】CSS作用及用法
- 生产环境sql语句调优实战第六篇(r2笔记91天)
- 关于分区表的move操作(r2笔记90天)
- 简单分析oracle的数据存储(r2笔记89天)
- 机器学习线性分类算法:感知器原理
- 通过shell脚本来查看Undo中资源消耗高的sql(r2笔记88天)
- 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 数组属性和方法
- 原生node处理get和post请求
- 如何在Vue中自己实现v-model
- 【STM32F429】第1章 当前主流的小型嵌入式GUI
- 【Unity游戏开发】升级Unity2019后,资源管线后处理采坑记录
- Angular @Effect监听指定Action类型的实现原理
- SAP Spartacus shipping address页面请求1 - Address
- SAP Spartacus shipping address页面请求2.1 - setDefaultAddress
- SAP Spartacus只执行指定单元测试的小技巧
- SAP CDS view里将Date和time连接成timestamp的函数
- SAP CDS view里计算两个date & time字段间包含的seconds秒数
- SAP CDS view里的日期操作函数(往后推算X天得到新日期)
- SAP CDS view的日期格式转换,比如从YYYYMMDD转到DD/MM/YYYY
- SAP CDS view如何取得当前系统日期和系统时间戳
- Vue 父组件如何监听子组件的生命周期
- Django3+websocket+paramiko实现web页面实时输出