R语言对巨灾风险下的再保险合同定价研究案例(广义线性模型和帕累托分布Pareto distributions分析)
原文链接: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.Damage
202 2005CindyLA1320,000,000
203 2005DennisFL32,230,000,000
204 2005Katrina LA,MS381,000,000,000
205 2005OpheliaNC11,600,000,000
206 2005RitaTX310,000,000,000
207 2005WilmaFL320,600,000,000
Normalized.PL05 Normalized.CL05X X.1
202320,000,000320,000,000 NANA
2032,230,000,0002,230,000,000 NANA
20481,000,000,00081,000,000,000 NANA
2051,600,000,0001,600,000,000 NANA
20610,000,000,00010,000,000,000 NANA
20720,600,000,00020,600,000,000 NANA
要获取我们可以使用的格式的数据,考虑以下函数,
> stupidcomma = function(x){
+ x=as.character(x)
+ for(i in 1:10){x=sub(",","",as.character(x))}
+ return(as.numeric(x))}
【R语言对巨灾风险下的再保险合同定价研究案例(广义线性模型和帕累托分布Pareto distributions分析)】然后将这些值转换为数字,
> 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.Damage
202 2005CindyLA13.20e+08
203 2005DennisFL32.23e+09
204 2005Katrina LA,MS38.10e+10
205 2005OpheliaNC11.60e+09
206 2005RitaTX31.00e+10
207 2005WilmaFL32.06e+10
Normalized.PL05 Normalized.CL05
2023.20e+083.20e+08
2032.23e+092.23e+09
2048.10e+108.10e+10
2051.60e+091.60e+09
2061.00e+101.00e+10
2072.06e+102.06e+10
数据探索
我们可以直观地看到1900年至2005年的207次飓风的成本(这里的_x_轴不是时间,它只是损失的指数)
> plot(base$Normalized.PL05/1e9,type="h",ylim=c(0,155))
文章图片
通常,计算保险合同的纯保费时有两个部分。索赔数量(或此处的飓风)以及每项索赔的个人损失。我们已经看到了个人损失,现在让我们集中讨论年度频率。
> db\[88:93,\]
years counts
8820033
8920046
9020056
9119020
9219050
9319070
平均而言,我们每年大约遭受2次(主要)飓风,
> mean(db$counts)
\[1\] 1.95283
广义线性模型预测
在预测模型中(此处,我们希望为2014年的再保险合同定价),我们可能需要考虑飓风发生频率的某些可能趋势。我们可以考虑用glm预测线性趋势或指数趋势
我们可以绘制这三个预测,并预测2014年(主要)飓风的数量,
constantlinear exponential
1261.95283 3.5739994.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亿美元以上的损失,
xibeta
0.4424669 0.6705315
八分之一的飓风达到了该水平
\[1\] 0.1256039
计算再保险合同的预期价值
鉴于损失超过5亿,我们现在可以计算再保险合同的预期价值,
文章图片
%5C%20dF_%7B(%5Cxi,%5Cmu,%5Csigma)%7D(x))
现在,我们预计每年的飓风会少于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个。
文章图片
推荐阅读
- linux如何通过parted命令对磁盘进行分区
- 后缀表示法
- C语言实现动态开辟存储杨辉三角
- 小程序对移动app市场有怎样的冲击
- 如何在Python中使用OpenCV和PyTorch实现YOLO对象检测()
- PS对称渐变工具怎么用
- Android Studio怎样加入工程(project)为library(针对非gradle)
- Python使用Huggingface Transformers实现对话式AI聊天机器人
- u盘低级格式化,教您如何对U盘进行低格化
- 编译器简介