R语言极值分析:GEV与GPD模型与MCMC的海洋观测数据极值模拟可视化研究

全文链接:https://tecdat.cn/?p=37007

原文出处:拓端数据部落公众号

在海洋科学领域,极端天气和海洋事件如极端海浪、风暴潮和海啸等,对沿海社区、基础设施及生态环境构成了重大威胁。准确预测和评估这些极端事件的强度和频率,对于制定有效的防灾减灾策略至关重要。极值分析作为统计学的一个重要分支,专门用于处理和分析极端值的出现规律,近年来在海洋观测数据的处理中得到了广泛应用。

GEV分布是一个包含三种基本极值分布(Gumbel、Fréchet和Weibull)的通用框架,能够适用于广泛的极值数据场景。而GPD分布则在阈值超量建模中表现出色,特别适用于超过某一特定阈值的极值数据分析。结合这两种模型,研究人员可以更全面地理解和模拟海洋观测数据中的极值行为。

此外,马尔可夫链蒙特卡洛(Markov Chain Monte Carlo, MCMC)方法作为一种强大的统计模拟技术,在复杂分布的参数估计和预测中发挥着重要作用。将MCMC与GEV或GPD模型相结合,不仅可以提高参数估计的精度,还能够生成符合特定分布规律的模拟数据,为海洋极值事件的情景分析和风险评估提供有力支持。

本文旨在帮助客户探讨R语言环境下,实现GEV与GPD模型结合MCMC方法在海洋观测数据极值模拟可视化研究中的应用课题研究。通过具体案例,展示如何构建这些模型,进行参数估计,并利用MCMC方法进行模拟数据生成和可视化分析。本文的研究不仅有助于深入理解海洋极值事件的统计规律,还为海洋灾害的预警和应对提供了科学依据和技术支持。

数据清理与统计分析

在本文中,我们首先对一组海洋观测数据进行了预处理,随后进行了基本的统计分析和可视化展示。这些数据包含了不同时间点的海浪高度(Hs)、最大海浪高度(Hmax)、水温(SST)以及其他海洋环境参数,如潮汐(Tz)、波峰周期(Tp)和波峰方向(Dir_Tp.TRUE)。数据的时间跨度为1996年11月21日的多个时间点,每行数据代表一个观测点。

在这里插入图片描述

数据预处理

为了确保数据分析的准确性和可靠性,我们首先对数据进行了清理,移除了任何可能存在的缺失值。在R语言中,使用na.omit()函数可以轻松实现这一步骤,该函数能够自动删除包含NA值的行。

 
  data <- na.omit(data)  

  
  summary_stats <- c("Mean", "Median", "Sd")
  data_summary <- sapply(data[, c("Hs")], function(x) summary(x)[summary_stats])
  data_summary

可视化分析

为了进一步直观展示海浪高度的分布情况,我们采用了箱线图和直方图两种可视化方法。

箱线图

箱线图是一种用于展示数据分布情况的图表,它能够清晰地显示数据的四分位数、中位数以及异常值。在本例中,我们绘制了Hs的箱线图,并通过设置outlier.shape = NA来隐藏异常值的标记,使图表更加简洁。在这里插入图片描述

直方图

直方图则是另一种常用的数据分布展示方式,它通过条形图的形式展示了数据的频数分布。在本例中,我们设置了30个分组来绘制Hs的直方图,并通过设置颜色和填充样式来增强图表的可读性。

在这里插入图片描述

通过上述分析和可视化展示,我们可以对海浪高度(Hs)的分布情况有一个较为全面的了解,为后续的研究和预测提供了有力的数据支持。

GPD-MCMC模型在极端海浪高度分析中的应用

在本文中,我们利用广义帕累托分布(Generalized Pareto Distribution, GPD)模型对极端海浪高度数据(Hs)进行了详细的分析与拟合。GPD模型因其能够灵活捕捉极端值分布的特性,在极端事件统计分析中得到了广泛应用。

模型拟合

首先,我们使用fevd函数从extRemes或类似R包中拟合GPD模型至海浪高度数据(Hs)。在拟合过程中,我们指定了类型为"GP"(即广义帕累托分布),并设置了阈值(threshold)为6,以筛选出极端海浪高度数据进行专门分析。

模型诊断与可视化

为了评估GPD模型的拟合效果,我们进行了多个诊断步骤和可视化展示。通过distill函数,我们提取了模型的关键统计信息,以便进一步分析。

在这里插入图片描述

接着,我们使用mrlplot函数绘制了超出量均值剩余寿命(Mean Residual Life, MRL)图,以检查数据是否满足GPD模型的假设。通过设定xlim参数,我们专注于海浪高度在0到12米范围内的分析。

在这里插入图片描述

置信区间与极值预测

为了评估模型参数的不确定性,我们计算了参数的置信区间(CI)。这有助于我们理解模型估计的稳健性。
在这里插入图片描述
进一步地,我们利用ci函数预测了不同重现期(return period)下的极端海浪高度及其置信区间。这对于海洋工程设计和风险评估尤为重要。

阈值敏感性分析

为了探究阈值选择对模型结果的影响,我们进行了阈值范围分析。通过threshrange.plot函数,我们绘制了不同阈值下的模型拟合效果,并特别关注了阈值在-75.5到-68.5范围内(注意:这里假设的阈值范围可能基于特定数据集或分析需求,实际应用时需根据数据特性调整)的变化情况,采用“PP”(Pickands Plot)类型进行展示。

在这里插入图片描述

MCMC 采样

我们开发了MCMC采样函数,通过提议分布(如正态分布)生成新的参数候选值,并根据Metropolis-Hastings算法接受或拒绝这些候选值。对数似然函数用于计算候选值和当前值的接受概率。

我们使用R语言实现了GPD的对数似然函数、提议分布和MCMC采样函数。具体实现细节已在前文给出。

# 定义 GPD 的概率密度函数
  gpd_pdf <- function(x, shape, scale) {
    if (shape == 0) {
      return(exp(-x / scale) / scale)
    } else {
      return((1 + shape * x / scale)^(-1 - 1 / shape) * shape / scale)
    }
  }
  
  # 定义提议分布(这里使用正态分布)
  proposal_dist <- function(theta, var) {
    return(rnorm(length(theta), theta, var))
  }
  
  # MCMC 采样函数
  mcmc_sample <- function(log_likelihood, initial_theta, data, n_iter, var) {
    theta <- initial_theta


接下来,我们分别为形状参数和尺度参数绘制直方图和密度曲线,以便更直观地了解它们的分布特性。
在这里插入图片描述

广义极值分布(GEV)在极端海况分析中的应用

在本研究中,我们采用了广义极值分布(Generalized Extreme Value, GEV)模型来拟合和分析极端海况数据,特别是针对显著波高(Hs)数据集的极端值进行建模。GEV分布因其能够灵活捕捉极端事件分布特性而被广泛应用于气候科学和工程领域。

数据拟合与模型评估

首先,我们使用fevd函数从extRemes或类似包中,以GEV分布类型对显著波高数据集data$Hs进行了拟合,设定阈值为6,以排除非极端值的影响。

随后,我们输出了拟合结果以查看模型参数:

在这里插入图片描述

为了进一步简化和解读模型结果,我们使用distill函数提取了关键的模型摘要信息:

在这里插入图片描述

为了直观地展示GEV模型的拟合效果,我们绘制了拟合结果的图形,包括拟合曲线和原始数据的散点图:

在这里插入图片描述

此外,我们还通过函数绘制了边际剩余寿命(Marginal Return Level, MRL)图,以分析不同阈值下的极端值分布特性,特别设定了x轴的范围为0到7米:

模型诊断与有效性验证

为了验证模型的拟合质量,我们进一步绘制了拟合过程的“trace”图,该图提供了模型迭代过程中的收敛性和稳定性信息:

极端重现水平分析

基于拟合的GEV模型,我们计算了不同重现期(2年、20年和100年)下的有效重现水平(Effective Return Level, ERL)及其95%置信区间(CI)。这些信息对于评估极端海况的潜在风险和制定相应的防护措施至关重要:

在这里插入图片描述
在这里插入图片描述

多项式逼近方法在显著波高数据分析中的应用

我们采用多项式逼近方法(Polynomial Approximation Method)对显著波高(Hs)数据进行了建模与分析。多项式模型因其灵活性高,能够较好地捕捉数据中的非线性趋势,被广泛应用于数据拟合领域。

多项式模型构建

首先,我们定义了自变量x为数据集的行索引,从1到nrow(data),以便将时间序列或顺序数据映射到多项式模型中。随后,我们使用线性模型(lm)函数,将显著波高(data$Hs)作为因变量,对x进行6次多项式变换后的自变量进行拟合,构建模型如下:

在这里插入图片描述

通过summary(model),我们获得了模型的详细统计摘要,包括系数估计、标准误、t值和p值等,这些信息有助于评估模型的拟合效果和各个多项式项的显著性。

预测与置信区间

为了评估模型预测的准确性,我们计算了预测值及其99%置信区间。

随后,我们绘制了观测数据点,并计划(但未直接执行)将预测曲线及其置信区间叠加到图上,以便直观地比较模型预测与观测数据之间的差异。

在这里插入图片描述

极端值分布探索

为了进一步研究显著波高数据的极端值分布特性,我们引入了极值理论(EVT)中的几种工具,特别是与广义极值分布(GEV)相关的函数。

综上所述,本文通过多项式逼近方法和极值理论对显著波高数据进行了全面的分析与探索,为相关领域的研究提供了有益的参考。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/801376.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Golang中读写锁的底层实现

目录 Sync.RWMutex 背景与机制 接口简单介绍 sync.RWMutex 数据结构 读锁流程 RLock RUnlock RWMutex.rUnlockSlow 写锁流程 Lock Unlock Sync.RWMutex 背景与机制 从逻辑上&#xff0c;可以把 RWMutex 理解为一把读锁加一把写锁&#xff1b; 写锁具有严格的排他性&…

Qt程序图标更改以及程序打包

Qt程序图标更改以及程序打包 1 windows1.1 cmake1.1.1 修改.exe程序图标1.1.2 修改显示页面左上角图标 1.2 qmake1.2.1 修改.exe程序图标1.2.2 修改显示页面左上角图标 2 程序打包2.1 MinGW2.2 Visual Studio 3 参考链接 1 windows 1.1 cmake 1.1.1 修改.exe程序图标 获得一个…

【Linux】进程控制的详细介绍

前言 在此之前&#xff0c;我们学过进程的概念&#xff0c;进程的状态&#xff0c;进程地址空间等一系列进程相关的问题。本章我们继续学习进程&#xff0c;我们要来学习一下进程的控制&#xff0c;关于进程等待&#xff0c;等问题。 目录 1.再次认识Fork函数1.1 fork()之后操…

搜集日志。

logstash 负责&#xff1a; 接收数据 input — 解析过滤并转换数据 filter(此插件可选) — 输出数据 output input — decode — filter — encode — output elasticsearch 查询和保存数据 Elasticsearch 去中心化集群 Data node 消耗大量 CPU、内存和 I/O 资源 分担一部分…

数据结构进阶:使用链表实现栈和队列详解与示例(C, C#, C++)

文章目录 1、 栈与队列简介栈&#xff08;Stack&#xff09;队列&#xff08;Queue&#xff09; 2、使用链表实现栈C语言实现C#语言实现C语言实现 3、使用链表实现队列C语言实现C#语言实现C语言实现 4、链表实现栈和队列的性能分析时间复杂度空间复杂度性能特点与其他实现的比较…

启动yarn后,其他节点没有NodeManager

写在前面&#xff1a; 这个问题虽然折磨了我两天&#xff0c;但是原因特别蠢&#xff0c;可能与各位不一定一样&#xff0c;我是因为ResourceManager的节点的"/etc/hadoop/workers"文件没有配置好&#xff08;没有配hadoop102和hadoop104&#xff09;&#xff0c;但排…

MySQL日期和时间相关函数

目录 1. 获取当前时间和日期 2. 获取当前日期 3. 获取当前时间 4. 获取单独的年/月/日/时/分/秒 5. 添加时间间隔 date_add ( ) 6. 格式化日期 date_format ( ) 7. 字符串转日期 str_to_date () 8. 第几天 dayofxx 9. 当月最后一天 last_day ( ) 10. 日期差 datedif…

Java中的线程同步

为什么要实现线程同步 线程的同步是为了保证多个线程按照特定的顺序、协调地访问共享资源&#xff0c;避免数据不一致和竞争条件等问题。 线程同步的方式 1.synchronized关键字 &#xff08;1&#xff09;同步方法 public synchronized void save(){} 注&#xff1a; syn…

网络编程+文件上传操作的理解

前言&#xff1a; 概述:在网络通信协议下,不同计算机上运行的程序,进行数据传输 比如:通信,视频通话,网游,邮件等 只要是计算机之间通过网络进行数据传输,就有网络编程的存在 &#xff08;下面单纯是在Java基础中了解了一下网络编程&#xff0c;感觉理…

如何保证数据库和redis的数据一致性

1、简介 在客户端请求数据时&#xff0c;如果能在缓存中命中数据&#xff0c;那就查询缓存&#xff0c;不用在去查询数据库&#xff0c;从而减轻数据库的压力&#xff0c;提高服务器的性能。 2、问题如何保证两者的一致性 先更新数据库在删除缓存 难点&#xff1a;如何保证…

Classifier-Free Guidance (CFG) Scale in Stable Diffusion

1.Classifier-Free Guidance Scale in Stable Diffusion 笔记来源&#xff1a; 1.How does Stable Diffusion work? 2.Classifier-Free Diffusion Guidance 3.Guide to Stable Diffusion CFG scale (guidance scale) parameter 1.1 Classifier Guidance Scale 分类器引导是…

vite配置环境变量和使用,配置正确后import.meta.env.VITE_APP_BASE_URL编译报错的解决方法

一、配置&#xff1a; 1.新增四个环境文件 .env.development .env.test .env.production .env.pre 内容为不同环境的不同参数变量必须以VITE_APP开头&#xff0c;如&#xff1a; #接口地址 VITE_APP_BASE_URL"&#xffe5;&#xffe5;&#xffe5;&#xffe5;&#xff…

嵌入式人工智能(6-树莓派4B按键输入控制LED)

1、按键 按键的原理都是一样&#xff0c;通过按键开关的按下导通&#xff0c;抬起断开的情况&#xff0c;GPIO引脚来检测其是否有电流流入。GPIO有input()方法&#xff0c;对于GPIO引脚检测电流&#xff0c;不能让其引脚悬空&#xff0c;否则引脚会受周边环境电磁干扰产生微弱…

获取欧洲时报中国板块前新闻数据(多线程版)

这里写目录标题 一.数据获取流程二.获取主页面数据并提取出文章url三.获取文章详情页的数据并提取整体代码展示 一.数据获取流程 我们首先通过抓包就能够找到我们所需数据的api 这里一共有五个参数其中只有第一个和第五个参数是变化的第一个参数就是第几页第五个是一个由时…

HCNA ICMP:因特网控制消息协议

ICMP&#xff1a;因特网控制消息协议 前言 Internet控制报文协议ICMP是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息&#xff0c;他对于手机各种网络信息、诊断和排除各种网络故障有至关重要的作用。使用基于ICMP的应用时&#xff0c;需要对ICMP的工…

中介者模式(行为型)

目录 一、前言 二、中介者模式 三、总结 一、前言 中介者模式&#xff08;Mediator Pattern&#xff09;是一种行为型设计模式&#xff0c;又成为调停者模式&#xff0c;用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地互相引用&#xff0c;从而使其耦合…

防火墙双机热备(接上一个NAT实验)

一、实验拓扑 二、实验需求 1、对现有网络进行改造升级&#xff0c;将当个防火墙组网改成双机热备的组网形式&#xff0c;做负载分担模式&#xff0c;游客区和DMZ区走FW3&#xff0c;生产区和办公区的流量走FW1 2、办公区上网用户限制流量不超过100M&#xff0c;其中销售部人员…

【深度学习】基于深度学习的模式识别基础

一 模式识别基础 “模式”指的是数据中具有某些相似特征或属性的事物或事件的集合。具体来说&#xff0c;模式可以是以下几种形式&#xff1a; 视觉模式 在图像或视频中&#xff0c;模式可以是某种形状、颜色组合或纹理。例如&#xff0c;人脸、文字字符、手写数字等都可以视…

【边缘计算网关教程】8.ModbusTCP采集存储Influxdb

前景回顾-【边缘计算网关教程】7.Modbus协议转MQTT协议-CSDN博客 需求概述 &#x1f4a1;注&#xff1a;使用Influxdb数据库节点&#xff0c;需要插上micro sd卡才可以 本章节主要实现一个流程&#xff1a;EG8200每10秒采集一次Modbus TCP数据存入Influxdb数据库,并且每分钟…

[日进斗金系列]用码上飞解决企微开发维修管理系统的需求

前言&#xff1a; 今天跟大家唠唠如何用小money生 大money的方法&#xff0c;首先我们需要准备一个工具。 这个工具叫码上飞CodeFlying&#xff0c;它是目前国内首发的L4级自动化智能软件开发平台。 它可以在短时间内&#xff0c;与AI进行几轮对话就能开发出一个可以解决实际…