zoukankan      html  css  js  c++  java
  • 拓端数据tecdat|R语言极值理论EVT:基于GPD模型的火灾损失分布分析

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

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

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

    火灾损失数据

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

    1.  
      base1=read.table( "dataunivar.txt",
    2.  
      header=TRUE)
    3.  
      base2=read.table( "datamultiva.txt",
    4.  
      header=TRUE)

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

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

    图表如下:

    然后一个自然的想法是可视化

    http://freakonometrics.hypotheses.org/files/2015/12/hill01.gif

    例如

    1.  
       
    2.  
      > plot(log(Xs),log((n:1)/(n+1)))

    线性回归

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

    1.  
       
    2.  
      lm(formula = Y ~ X, data = B)
    3.  
      lm(Y~X,data=B[(n-500):n,])
    4.  
      lm(formula = Y ~ X, data = B[(n - 100):n, ])

    重尾分布

    这里的斜率与分布的尾部指数有关。考虑一些重尾分布

    由于自然估计量是阶次统计量,因此直线的斜率与尾部指数相反 http://freakonometrics.hypotheses.org/files/2015/12/hill98.gif. 斜率的估计值为(仅考虑最大的观测值)

     

    希尔估算量

    希尔估算量基于以下假设:上面的分母几乎为1(即等于)。

    http://freakonometrics.hypotheses.org/files/2015/12/hill02.gif

    那么可以得到收敛性假设。进一步

    基于这个(渐近)分布,可以得到一个(渐近)置信区间 http://freakonometrics.hypotheses.org/files/2015/12/hill98.gif

    1.  
      > xi=1/(1:n)*cumsum(logXs)-logXs
    2.  
      > xise=1.96/sqrt(1:n)*xi
    3.  
       
    4.  
      > polygon(c(1:n,n:1),c(xi+xise,rev(xi-xise)),

    增量方法

    与之类似(同样还有关于收敛速度的附加假设) 

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

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

    Deckers-einmal-de-Haan估计量

    然后(再次考虑收敛速度的条件,即),

    Pickands估计

     由于 ,

    代码

    1.  
      > xi=1/log(2)*log( (Xs[seq(1,length=trunc(n/4),by=1)]-
    2.  
      + Xs[seq(2,length=trunc(n/4),by=2)])/
    3.  
       
    4.  
      > xise=1.96/sqrt(seq(1,length=trunc(n/4),by=1))*
    5.  
      +sqrt( xi^2*(2^(xi+1)+1)/((2*(2^xi-1)*log(2))^2))
    6.  
       
    7.  
      > polygon(c(seq(1,length=trunc(n/4),by=1),rev(seq(1,

    拟合GPD分布

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

    1.  
       
    2.  
      > gpd
    3.  
      $n
    4.  
      [1] 2167
    5.  
       
    6.  
      $threshold
    7.  
      [1] 5
    8.  
       
    9.  
      $p.less.thresh
    10.  
      [1] 0.8827873
    11.  
       
    12.  
      $n.exceed
    13.  
      [1] 254
    14.  
       
    15.  
      $method
    16.  
      [1] "ml"
    17.  
       
    18.  
      $par.ests
    19.  
      xi beta
    20.  
      0.6320499 3.8074817
    21.  
       
    22.  
      $par.ses
    23.  
      xi beta
    24.  
      0.1117143 0.4637270
    25.  
       
    26.  
      $varcov
    27.  
      [,1] [,2]
    28.  
      [1,] 0.01248007 -0.03203283
    29.  
      [2,] -0.03203283 0.21504269
    30.  
       
    31.  
      $information
    32.  
      [1] "observed"
    33.  
       
    34.  
      $converged
    35.  
      [1] 0
    36.  
       
    37.  
      $nllh.final
    38.  
      [1] 754.1115
    39.  
       
    40.  
      attr(,"class")
    41.  
      [1] "gpd"

    或等效地

    1.  
      > gpd.fit
    2.  
      $threshold
    3.  
      [1] 5
    4.  
       
    5.  
      $nexc
    6.  
      [1] 254
    7.  
       
    8.  
      $conv
    9.  
      [1] 0
    10.  
       
    11.  
      $nllh
    12.  
      [1] 754.1115
    13.  
       
    14.  
      $mle
    15.  
      [1] 3.8078632 0.6315749
    16.  
       
    17.  
      $rate
    18.  
      [1] 0.1172127
    19.  
       
    20.  
      $se
    21.  
      [1] 0.4636270 0.1116136

    它可以可视化尾部指数的轮廓似然性,

    > gpd.prof

    或者

    > gpd.prof

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

    1.  
      Vectorize(function(u){gpd(X,u)$par.ests[1]})
    2.  
       
    3.  
      plot(u,XI,ylim=c(0,2))
    4.  
      segments(u,XI-1.96*XIS,u,XI+

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

    1.  
      gev.fit
    2.  
      $conv
    3.  
      [1] 0
    4.  
       
    5.  
      $nllh
    6.  
      [1] 3392.418
    7.  
       
    8.  
      $mle
    9.  
      [1] 1.4833484 0.5930190 0.9168128
    10.  
       
    11.  
      $se
    12.  
      [1] 0.01507776 0.01866719 0.03035380

    尾部指数的估计值是在这里最后一个系数。


    最受欢迎的见解

    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模型的不同类型的脉冲响应分析

    ▍关注我们 【大数据部落】第三方数据服务提供商,提供全面的统计分析与数据挖掘咨询服务,为客户定制个性化的数据解决方案与行业报告等。 ▍咨询链接:http://y0.cn/teradat ▍联系邮箱:3025393450@qq.com
  • 相关阅读:
    Memcached 笔记与总结(4)memcache 扩展的使用
    Excel函数学习:HLOOKUP函数
    因子分析spss怎么做 spss因子分析教程及结果解释
    因子分析spss怎么做 spss因子分析教程及结果解释
    R语言中如何使用最小二乘法
    R语言中如何使用最小二乘法
    SPSS详细操作:样本均数间的多重比较
    SPSS详细操作:样本均数间的多重比较
    从萌芽到绽放 大数据释放大能量
    从萌芽到绽放 大数据释放大能量
  • 原文地址:https://www.cnblogs.com/tecdat/p/14609397.html
Copyright © 2011-2022 走看看