关于数据挖掘:R语言对巨灾风险下的再保险合同定价研究案例广义线性模型和帕累托分布Pareto-distributions分析

41次阅读

共计 3447 个字符,预计需要花费 9 分钟才能阅读完成。

原文链接: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 2005                 Cindy    LA        1          320,000,000
203 2005                Dennis    FL        3        2,230,000,000
204 2005               Katrina LA,MS        3       81,000,000,000
205 2005               Ophelia    NC        1        1,600,000,000
206 2005                  Rita    TX        3       10,000,000,000
207 2005                 Wilma    FL        3       20,600,000,000
    Normalized.PL05 Normalized.CL05  X X.1
202     320,000,000     320,000,000 NA  NA
203   2,230,000,000   2,230,000,000 NA  NA
204  81,000,000,000  81,000,000,000 NA  NA
205   1,600,000,000   1,600,000,000 NA  NA
206  10,000,000,000  10,000,000,000 NA  NA
207  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.Damage
202 2005                 Cindy    LA        1             3.20e+08
203 2005                Dennis    FL        3             2.23e+09
204 2005               Katrina LA,MS        3             8.10e+10
205 2005               Ophelia    NC        1             1.60e+09
206 2005                  Rita    TX        3             1.00e+10
207 2005                 Wilma    FL        3             2.06e+10
    Normalized.PL05 Normalized.CL05
202        3.20e+08        3.20e+08
203        2.23e+09        2.23e+09
204        8.10e+10        8.10e+10
205        1.60e+09        1.60e+09
206        1.00e+10        1.00e+10
207        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 counts
88  2003      3
89  2004      6
90  2005      6
91  1902      0
92  1905      0
93  1907      0

均匀而言,咱们每年大概蒙受 2 次(次要)飓风,

> mean(db$counts)
\[1\] 1.95283

狭义线性模型预测

在预测模型中(此处,咱们心愿为 2014 年的再保险合同定价),咱们可能须要思考飓风产生频率的某些可能趋势。咱们能够思考用 glm 预测线性趋势或指数趋势

咱们能够绘制这三个预测,并预测 2014 年(次要)飓风的数量,

    constant   linear exponential
126  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 亿,咱们当初能够计算再保险合同的预期价值,

%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 个。

正文完
 0