拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析

开滴滴
• 阅读 1773

原文链接:http://tecdat.cn/?p=21425 

极值理论关注风险损失分布的尾部特征,通常用来分析概率罕见的事件,它可以依靠少量样本数据,在总体分布未知的情况下,得到总体分布中极值的变化情况,具有超越样本数据的估计能力。因此,基于GPD(generalized pareto distribution)分布的模型可更有效地利用有限的巨灾损失数据信息,从而成为极值理论当前的主流技术。

针对巨灾发生频率低、损失高、数据不足且具有厚尾性等特点,利用GPD模型对火灾经济损失数据进行了统计建模;并对形状参数及尺度参数进行了估计。模型检验表明,GPD模型对巨灾风险厚尾特点具有较好的拟合效果和拟合精度,为巨灾风险估计的建模及巨灾债券的定价提供了理论依据。

火灾损失数据

本文使用的数据是在再保险公司收集的,包括1980年至1990年期间的2167起火灾损失。已对通货膨胀进行了调整。总索赔额已分为建筑物损失、利润损失。

base1=read.table( "dataunivar.txt",
 header=TRUE)
base2=read.table( "datamultiva.txt",
 header=TRUE)

考虑第一个数据集(到目前为止,我们处理的是单变量极值),

 > D=as.Date(as.character(base1$Date),"%m/%d/%Y")
> plot(D,X,type="h")

拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析

线性回归

这里的点在一条直线上。斜率可以通过线性回归得到,

 lm(formula = Y ~ X, data = B)
lm(Y~X,data=B[(n-500):n,])
lm(formula = Y ~ X, data = B[(n - 100):n, ]) 

拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析

> xi=1/(1:n)*cumsum(logXs)-logXs
> xise=1.96/sqrt(1:n)*xi

> polygon(c(1:n,n:1),c(xi+xise,rev(xi-xise)), 

拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析

(使用增量方法获得)。同样,我们可以使用该结果得出(渐近)置信区间

 > alphase=1.96/sqrt(1:n)/xi
> polygon(c(1:n,n:1),c(alpha+alphase,rev(alpha-alphase)), 

拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析

代码

> xi=1/log(2)*log( (Xs[seq(1,length=trunc(n/4),by=1)]-
+ Xs[seq(2,length=trunc(n/4),by=2)])/

> xise=1.96/sqrt(seq(1,length=trunc(n/4),by=1))*
+sqrt( xi^2*(2^(xi+1)+1)/((2*(2^xi-1)*log(2))^2))

> polygon(c(seq(1,length=trunc(n/4),by=1),rev(seq(1, 

拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析

拟合GPD分布

也可以使用最大似然方法来拟合高阈值上的GPD分布。

 > gpd
$n
[1] 2167

$threshold
[1] 5

$p.less.thresh
[1] 0.8827873

$n.exceed
[1] 254

$method
[1] "ml"

$par.ests
xi      beta
0.6320499 3.8074817

$par.ses
xi      beta
0.1117143 0.4637270

$varcov
[,1]        [,2]
[1,]  0.01248007 -0.03203283
[2,] -0.03203283  0.21504269

$information
[1] "observed"

$converged
[1] 0

$nllh.final
[1] 754.1115

attr(,"class")
[1] "gpd"

或等效地

> gpd.fit
$threshold
[1] 5

$nexc
[1] 254

$conv
[1] 0

$nllh
[1] 754.1115

$mle
[1] 3.8078632 0.6315749

$rate
[1] 0.1172127

$se
[1] 0.4636270 0.1116136

拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析

因此,可以绘制尾指数的最大似然估计量,作为阈值的函数(包括置信区间),

Vectorize(function(u){gpd(X,u)$par.ests[1]})

plot(u,XI,ylim=c(0,2))
segments(u,XI-1.96*XIS,u,XI+ 

拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析

最后,可以使用块极大值技术。

gev.fit
$conv
[1] 0

$nllh
[1] 3392.418

$mle
[1] 1.4833484 0.5930190 0.9168128

$se
[1] 0.01507776 0.01866719 0.03035380

拓端数据(tecdat)|R语言极值理论:基于GPD模型的火灾损失分布分析

最受欢迎的见解

1.R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究

2.R语言时变参数VAR随机模型

3.R语言时变参数VAR随机模型

4.R语言基于ARMA-GARCH过程的VAR拟合和预测

5.GARCH(1,1),MA以及历史模拟法的VaR比较

6.R语言时变参数VAR随机模型

7.R语言实现向量自动回归VAR模型

8.R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

9.R语言VAR模型的不同类型的脉冲响应分析

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这