zoukankan      html  css  js  c++  java
  • 拓端tecdat|R语言有极值(EVT)依赖结构的马尔可夫链(MC)对洪水极值分析

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

    为了帮助客户正确使用POT模型,本指南包含有关使用此模型的实用示例。本文快速介绍了极值理论(EVT)、一些基本示例,最后则通过案例对河流的极值进行了具体的统计分析。


    EVT的介绍

    单变量情况


    假设存在归一化常数an> 0和bn使得:
     

    根据极值类型定理(Fisher和Tippett,1928年),G必须是Fr'echet,Gumbel或负Weibull分布。Jenkinson(1955)指出,这三个分布可以合并为一个参数族:广义极值(GEV)分布。GEV具有以下定义的分布函数:

    根据这一结果,Pickands(1975)指出,当阈值接近目标变量的端点µend时,阈值阈值的标准化超额的极限分布是广义Pareto分布(GPD)。也就是说,如果X是一个随机变量,则:

    基本用法
    随机数和分布函数

    首先,让我们从基本的东西开始。将R用于随机数生成和分布函数。

    1.  
      > rgpd(5, loc = 1, scale = 2, shape = -0.2)
    2.  
      [1] 1.523393 2.946398 2.517602 1.199393 2.541937
    3.  
      > rgpd(6, c(1, -5), 2, -0.2)
    4.  
      [1] 1.3336965 -4.6504749 3.1366697 -0.9330325 3.5152161 -4.4851408
    5.  
      > rgpd(6, 0, c(2, 3), 0)
    6.  
      [1] 3.1139689 6.5900384 0.1886106 0.9797699 3.2638614 5.4755026
    7.  
      > pgpd(c(9, 15, 20), 1, 2, 0.25)
    8.  
      [1] 0.9375000 0.9825149 0.9922927
    9.  
      > qgpd(c(0.25, 0.5, 0.75), 1, 2, 0)
    10.  
      [1] 1.575364 2.386294 3.772589
    11.  
      > dgpd(c(9, 15, 20), 1, 2, 0.25)
    12.  
      [1] 0.015625000 0.003179117 0.001141829


    使用选项lower.tail = TRUE或lower.tail = FALSE分别计算不超过或超过概率;
    指定分位数是否超过概率分别带有选项lower.tail = TRUE或lower.tail = FALSE;
    指定是分别使用选项log = FALSE还是log = TRUE计算密度或对数密度。
     

    阈值选择图

     
    此外,可以使用Fisher信息来计算置信区间。
     

    1.  
      > x <- runif(10000)
    2.  
      > par(mfrow = c(1, 2))


    结果如图所示。我们可以清楚地看到,将阈值设为0.98是合理的选择。

     

     可以将置信区间添加到该图,因为经验均值可以被认为是正态分布的(中心极限定理)。但是,对于高阈值,正态性不再成立,此外,通过构造,该图始终会收敛到点(xmax; 0)。
    这是另一个综合示例。

    1.  
      > x <- rnorm(10000)
    2.  
      plot(x, u.range = c(1, quantile(x, probs = 0.995)), col =

     L-矩图


    L-矩是概率分布和数据样本的摘要统计量。它们类似于普通矩{它们提供位置,离散度,偏度,峰度以及概率分布或数据样本形状的其他方面的度量值{但是是从有序数据值的线性组合中计算出来的(因此有前缀L)。
     

    这是一个简单的例子。

    > x <- c(1 - abs(rnorm(200, 0, 0.2)), rgpd(100, 1, 2, 0.25))
    


    我们发现该图形在真实数据上的性能通常很差。

    色散指数图

     

    在处理时间序列时,色散指数图特别有用。EVT指出,超出阈值的超出部分可以通过GPD近似。但是,EVT必须通过泊松过程来表示这些超额部分的发生。
     

    对于下一个示例,我们使用POT包中包含的数据集。此外,由于洪水数据是一个时间序列,因此具有很强的自相关性,因此我们必须“提取”极端事件,同时保持事件之间的独立性。

    1.  
      5, clust.max = TRUE)
    2.  
      > diplot(events, u.range = c(2, 20))


    色散指数图如图所示。从该图可以看出,大约5的阈值是合理的。
     

    拟合GPD


    单变量情况

     
    可以根据多个估算器拟合GPD。
    MLE是一种特殊情况,因为它是唯一允许变化阈值的情况。
    我们在此给出一些教学示例。

    1.  
       
    2.  
      scale shape
    3.  
      mom 1.9538076495 0.2423393
    4.  
      mle 2.0345084386 0.2053905
    5.  
      pwmu 2.0517348996 0.2043644
    6.  
      pwmb 2.0624399910 0.2002131
    7.  
      pickands 2.3693985422 -0.0708419
    8.  
      med 2.2194363549 0.1537701
    9.  
      mdpd 2.0732577511 0.1809110
    10.  
      mple 2.0499646631 0.1960452
    11.  
      ad2r 0.0005539296 27.5964097


    MLE,MPLE和MGF估计允许比例或形状参数。例如,如果我们要拟合指数分布:

    1.  
       
    2.  
      > fit(x, thresh = 1, shape = 0, est = "mle")
    3.  
      Estimator: MLE
    4.  
      Deviance: 322.686
    5.  
      AIC: 324.686
    6.  
      Varying Threshold: FALSE
    7.  
       
    8.  
       
    9.  
      Threshold Call: 1
    10.  
      Number Above: 100
    11.  
      Proportion Above: 1
    12.  
      Estimates
    13.  
      scale
    14.  
      1.847
    15.  
      Standard Error Type: observed
    16.  
      Standard Errors
    17.  
      scale
    18.  
      0.1847
    19.  
      Asymptotic Variance Covariance
    20.  
      scale
    21.  
      scale 0.03410
    22.  
      Optimization Information
    23.  
      Convergence: successful
    24.  
      Function Evaluations: 7
    25.  
      Gradient Evaluations: 1
    26.  
      > fitgpd(x, thresh = 1, scale = 2, est = "mle")
    27.  
      Estimator: MLE
    28.  
      Deviance: 323.3049
    29.  
      AIC: 325.3049
    30.  
      Varying Threshold: FALSE
    31.  
      Threshold Call: 1
    32.  
      Number Above: 100
    33.  
      Proportion Above: 1
    34.  
      Estimates
    35.  
      shape
    36.  
      0.0003398
    37.  
      Standard Error Type: observed
    38.  
      Standard Errors
    39.  
      shape
    40.  
      0.06685
    41.  
      Asymptotic Variance Covariance
    42.  
      shape
    43.  
      shape 0.004469
    44.  
      Optimization Information
    45.  
      Convergence: successful
    46.  
      Function Evaluations: 5
    47.  
      Gradient Evaluations: 1
    48.  
      If now, we want to fit a GPD with a varying threshold, just do:
    49.  
      > x <- rgpd(500, 1:2, 0.3, 0.01)
    50.  
      > fitgpd(x, 1:2, est = "mle")
    51.  
      Estimator: MLE
    52.  
      Deviance: -176.1669
    53.  
      AIC: -172.1669
    54.  
      Varying Threshold: TRUE
    55.  
      Threshold Call: 1:2
    56.  
      Number Above: 500
    57.  
      Proportion Above: 1
    58.  
      Estimates
    59.  
      scale shape
    60.  
      0.3261 -0.0556
    61.  
      Standard Error Type: observed
    62.  
      Standard Errors
    63.  
      scale shape
    64.  
      0.02098 0.04632
    65.  
      Asymptotic Variance Covariance
    66.  
      scale shape
    67.  
      scale 0.0004401 -0.0007338
    68.  
      shape -0.0007338 0.0021451
    69.  
      Optimization Information
    70.  
      Convergence: successful
    71.  
      Function Evaluations: 62
    72.  
      Gradient Evaluations: 11
    scale1 shape1 scale2 shape2 α
    6.784e-02 5.303e-02 2.993e​​-02 3.718e-02 2.001e-06
    1.  
      Asymptotic Variance Covariance
    2.  
      scale1 shape1 scale2 shape2 alpha
    3.  
      scale1 4.602e-03 -2.285e-03 1.520e-06 -1.145e-06 -3.074e-11
    4.  
      shape1 -2.285e-03 2.812e-03 -1.337e-07 4.294e-07 -1.843e-11
    5.  
      scale2 1.520e-06 -1.337e-07 8.956e-04 -9.319e-04 8.209e-12
    6.  
      shape2 -1.145e-06 4.294e-07 -9.319e-04 1.382e-03 5.203e-12
    7.  
      alpha -3.074e-11 -1.843e-11 8.209e-12 5.203e-12 4.003e-12
    8.  
      Optimization Information
    9.  
      Convergence: successful
    10.  
      Function Evaluations: 150
    11.  
      Gradient Evaluations: 21

    双变量情况

    拟合双变量POT。所有这些模型均使用最大似然估计量进行拟合。

    1.  
      vgpd(cbind(x, y), c(0, 2), model = "log")
    2.  
      > Mlog
    3.  
      Estimator: MLE
    4.  
      Dependence Model and Strenght:
    5.  
      Model : Logistic
    6.  
      lim_u Pr[ X_1 > u | X_2 > u] = NA
    7.  
      Deviance: 1313.260
    8.  
      AIC: 1323.260
    9.  
      Marginal Threshold: 0 2
    10.  
      Marginal Number Above: 500 500
    11.  
      Marginal Proportion Above: 1 1
    12.  
      Joint Number Above: 500
    13.  
      Joint Proportion Above: 1
    14.  
      Number of events such as {Y1 > u1} U {Y2 > u2}: 500
    15.  
      Estimates
    16.  
      scale1 shape1 scale2 shape2 alpha
    17.  
      0.9814 0.2357 0.5294 -0.2835 0.9993
    18.  
      Standard Errors


    在摘要中,我们可以看到lim_u Pr [X_1> u | X_2> u] = 0.02。这是Coles等人的χ统计量。(1999)。对于参数模型,我们有:

    对于自变量,χ= 0,而对于完全依存关系,χ=1。在我们的应用中,值0.02表示变量是独立的{这是显而易见的。从这个角度来看,可以固定一些参数。

    1.  
      vgpd(cbind(x, y), c(0, 2), model = "log"
    2.  
      Dependence Model and Strenght:
    3.  
      Model : Logistic
    4.  
      lim_u Pr[ X_1 > u | X_2 > u] = NA
    5.  
      Deviance: 1312.842
    6.  
      AIC: 1320.842
    7.  
      Marginal Threshold: 0 2
    8.  
      Marginal Number Above: 500 500
    9.  
      Marginal Proportion Above: 1 1
    10.  
      Joint Number Above: 500
    11.  
      Joint Proportion Above: 1
    12.  
      Number of events such as {Y1 > u1} U {Y2 > u2}: 500
    13.  
      Estimates
    14.  
      scale1 shape1 scale2 shape2
    15.  
      0.9972 0.2453 0.5252 -0.2857
    16.  
      Standard Errors
    17.  
      scale1 shape1 scale2 shape2
    18.  
      0.07058 0.05595 0.02903 0.03490
    19.  
      Asymptotic Variance Covariance


     

    1.  
      scale1 shape1 scale2 shape2
    2.  
      scale1 4.982e-03 -2.512e-03 -3.004e-13 3.544e-13
    3.  
      shape1 -2.512e-03 3.130e-03 1.961e-13 -2.239e-13
    4.  
      scale2 -3.004e-13 1.961e-13 8.427e-04 -8.542e-04
    5.  
      shape2 3.544e-13 -2.239e-13 -8.542e-04 1.218e-03
    6.  
      Optimization Information
    7.  
      Convergence: successful
    8.  
      Function Evaluations: 35
    9.  
      Gradient Evaluations: 9


    注意,由于所有双变量极值分布都渐近相关,因此Coles等人的χ统计量。(1999)始终等于1。
    检测依赖强度的另一种方法是绘制Pickands的依赖函数:

    > pickdep(Mlog)


    水平线对应于独立性,而其他水平线对应于完全相关性。请注意,通过构造,混合模型和非对称混合模型无法对完美的依赖度变量建模。

    使用马尔可夫链对依赖关系结构进行建模

    超越的马尔可夫链进行超过阈值的峰分析的经典方法是使GPD拟合最大值。但是,由于仅考虑群集最大值,因此存在数据浪费。主要思想是使用马尔可夫链对依赖关系结构进行建模,而联合分布显然是多元极值分布。这个想法是史密斯等人首先提出的。(1997)。在本节的其余部分,我们将只关注一阶马尔可夫链。因此,所有超出的可能性为:

     对于我们的应用程序,我们模拟具有极值依赖结构的一阶马尔可夫链。

    1.  
      mcgpd(mc, 2, "log")
    2.  
      Estimator: MLE
    3.  
      Dependence Model and Strenght:
    4.  
      Model : Logistic
    5.  
      lim_u Pr[ X_1 > u | X_2 > u] = NA
    6.  
      Deviance: 1334.847
    7.  
      AIC: 1340.847
    8.  
      Threshold Call:
    9.  
      Number Above: 998
    10.  
      Proportion Above: 1
    11.  
      Estimates
    12.  
      scale shape alpha
    13.  
      0.8723 0.1400 0.5227
    14.  
      Standard Errors
    15.  
      scale shape alpha
    16.  
      0.08291 0.04730 0.02345
    17.  
      Asymptotic Variance Covariance
    18.  
      scale shape alpha
    19.  
      scale 0.0068737 -0.0016808 -0.0009066
    20.  
      shape -0.0016808 0.0022369 -0.0004412
    21.  
      alpha -0.0009066 -0.0004412 0.0005501
    22.  
      Optimization Information
    23.  
      Convergence: successful
    24.  
      Function Evaluations: 70
    25.  
      Gradient Evaluations: 15

    置信区间

    拟合统计模型后,通常会给出置信区间。当前,只有mle,pwmu,pwmb,矩估计量可以计算置信区间。

    1.  
       
    2.  
      conf.inf.scale conf.sup.scale
    3.  
      2.110881 2.939282
    4.  
       
    5.  
      conf.inf.scale conf.sup.scale
    6.  
      1.633362 3.126838
    7.  
       
    8.  
      conf.inf.scale conf.sup.scale
    9.  
      2.138851 3.074945
    10.  
       
    11.  
      conf.inf.scale conf.sup.scale
    12.  
      2.149123 3.089090


    对于形状参数置信区间:

    1.  
      conf.inf conf.sup
    2.  
      2.141919 NA


     

    1.  
      conf.inf conf.sup
    2.  
      0.05757576 0.26363636


    分位数的置信区间也可用。

    1.  
      conf.inf conf.sup
    2.  
      2.141919 NA
    1.  
      conf.inf conf.sup
    2.  
      0.05757576 0.26363636


    1.  
       conf.inf conf.sup
    2.  
      8.64712 12.22558
    1.  
      conf.inf conf.sup
    2.  
      8.944444 12.833333

    1.  
       
    2.  
      conf.inf conf.sup
    3.  
      8.64712 12.22558
    1.  
      conf.inf conf.sup
    2.  
      8.944444 12.833333


    轮廓置信区间函数既返回置信区间,又绘制轮廓对数似然函数。

    模型检查

    要检查拟合的模型,用户必须调用函数图。

    1.  
       
    2.  
      > plot(fitted, npy = 1)


    图显示了执行获得的图形窗口。

     

     


    聚类技术

    在处理时间序列时,超过阈值的峰值可能会出现问题。确实,由于时间序列通常是高度自相关的,因此选择高于阈值可能会导致相关事件。
    该函数试图在满足独立性标准的同时识别超过阈值的峰。为此,该函数至少需要两个参数:阈值u和独立性的时间条件。群集标识如下:
    1.第一次超出会启动第一个集群;
    2.在阈值以下的第一个观察结果将“终止集群”,除非tim.cond不成立;
    3.下一个超过tim.cond的集群将启动新集群;
    4.根据需要进行迭代。
    一项初步研究表明,如果两个洪水事件不在8天之内,则可以认为两个洪水事件是独立的,请注意,定义tim.cond的单位必须与所分析的数据相同。
    返回一个包含已识别集群的列表。

     clu(dat, u = 2, tim.cond = 8/365)


    其他

    返回周期

    将返回周期转换为非超出概率,反之亦然。它既需要返回期,也需要非超越概率。此外,必须指定每年平均事件数。

    1.  
      npy retper prob
    2.  
      1 1.8 50 0.9888889
    3.  
      npy retper prob
    4.  
      1 2.2 1.136364 0.6


    无偏样本L矩

    函数samlmu计算无偏样本L矩。


    l_1
    l_2 t_3 t_4 t_5
    0.455381591 0.170423740 0.043928262 -0.005645249 -0.009310069
    3.7.3  

     

    河流阈值分析

    在本节中,我们提供了对河流阈值的全面和详细的分析。

    时间序列的移动平均窗口

    从初始时间序列ts计算“平均”时间序列。这是通过在初始时间序列上使用长度为d的移动平均窗口来实现的。

    1.  
       
    2.  
      > plot(dat, type = "l", col = "blue")
    3.  
      > lines(tsd, col = "green")


    执行过程如图所示。图描绘了瞬时洪水数量-蓝线。

    由于这是一个时间序列,因此我们必须选择一个阈值以上的独立事件。首先,我们固定一个相对较低的阈值以“提取”更多事件。因此,其中一些不是极端事件而是常规事件。这对于为GPD的渐近逼近选择一个合理的阈值是必要的。

    1.  
      > par(mfrow = c(2, 2))
    2.  
      > plot(even[, "obs"])
    3.  
      > abline(v = 6, col = "green"


    根据图,阈值6m3 = s应该是合理的。平均剩余寿命图-左上方面板-表示大约10m3 = s的阈值应足够。但是,所选阈值必须足够低,以使其上方具有足够的事件以减小方差,而所选阈值则不能过低,因为它会增加偏差3。
    因此,我们现在可以重新提取阈值6m3 = s以上的事件,以获得对象event1。注意,可以使用极值指数的估计。

    1.  
      > events1 <-365, clust.max = TRUE)
    2.  
      > np
    3.  
      time obs
    4.  
      Min. :1970 Min. : 0.022
    5.  
      1st Qu.:1981 1st Qu.: 0.236
    6.  
      Median :1991 Median : 0.542
    7.  
      Mean :1989 Mean : 1.024
    8.  
      3rd Qu.:1997 3rd Qu.: 1.230
    9.  
      Max. :2004 Max. :44.200
    10.  
      NA's : 1.000

    结果给出了估计器的名称(阈值,阈值以上的观测值的数量和比例,参数估计,标准误差估计和类型,渐近方差-协方差矩阵和收敛性诊断。
    图显示了拟合模型的图形诊断。可以看出,拟合模型“ mle”似乎是合适的。假设我们想知道与100年返回期相关的返回水平。

    1.  
      > rp2p
    2.  
      npy retper prob
    3.  
      1 1.707897 100 0.9941448
    4.  
      >
    5.  
      scale
    6.  
      36.44331

    考虑到不确定性,图描绘了与100年返回期相关的分位数的分布置信区间。

    1.  
      conf.inf conf.sup
    2.  
      25.56533 90.76633



    有时有必要知道指定事件的估计返回周期。让我们对较大事件进行处理。

    1.  
      > maxEvent
    2.  
      [1] 44.2
    3.  
       
    4.  
      shape
    5.  
      0.9974115
    6.  
      > prob
    7.  
      npy retper prob
    8.  
      1 1.707897 226.1982 0.9974115


    因此,2000年6月发生的最大事件的重现期大约为240年。
     

    1.  
      conf.inf conf.sup
    2.  
      25.56533 90.76633

    最受欢迎的见解

    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
  • 相关阅读:
    row_number() over(partition by的用法
    java基础之--动态代理
    Java中主要有一下三种类加载器;
    HBase基本shell命令
    IntelliJ IDE 基础经验备案 四-查找快捷键
    Docker:5 扩展学习之安装mysql并且将数据挂载到本地磁盘
    Docker:4 扩展学习之修改docker容器配置
    nginx安装部署《简单版》
    Redis基础学习: 与外部交互的数据类型
    Redis基础学习: 内部数据结构
  • 原文地址:https://www.cnblogs.com/tecdat/p/13858103.html
Copyright © 2011-2022 走看看