R语言POT超阈值模型在洪水风险频率分析中的应用研究

简介: R语言POT超阈值模型在洪水风险频率分析中的应用研究

结合POT模型的洪水风险评估能够从有限的实测资料中获取更多的洪水风险信息,得到更贴近事实的风险评估结果,能为决策者提供更多的依据,从而使决策结果更加可靠实用

对于这些同样面临挑战的人,我希望这个博客将有助于简化工作。

案例POT序列在47年的记录期内提供了高于74 m 3 / s 阈值的47个峰值。

我们的目标是将概率模型拟合到这些数据并估算洪水分位数。

我从获取了每次洪水的日期,并将其包含在文件中。有趣的是,最早的洪水流量是1943年,而最后一次是1985年,是43年的记录,而不是47年。这是因为1939年至1943年的洪水都小于74 m 3 / s的阈值。

首先计算这些数据点的绘制位置。

 

  • T给定排放超标之间的平均间隔(年)
  • R是POT系列中的流量等级(最大流量是等级1)
  • n是数据的年数。

请注意,这是记录的年数,而不是峰值数。

同样,重要的是要认识到,方程式1对POT系列的作用与年度系列不同。让我们看一个显示这种差异的示例。考虑以下情况:我们根据47年的数据分析了POT系列的94个峰。在这种情况下,最小的峰的等级为94。重复间隔为:

这大约是半年或6个月,这似乎是合理的(47年中有94个高峰,因此平均每年有2个高峰,平均相隔约6个月)。

将绘图位置解释为年度超出概率将得出以下结果:

也就是说,概率大于1,这没有意义。因此,我们不能使用绘图位置公式来计算阈值峰值序列中的数据的AEP。取而代之的是,方程式1的逆可以解释为EY,即每年的预期超出次数。

ARR示例将指数分布拟合为概率模型。

为了计算L2,我们使用QJ Wang(Wang,1996)的公式



L2 <- function(q){
  q <- sort(q)
  n <- length(q)
  0.5*(1/choose(n,2))*sum((0:(n-1) - (n-1):0)*q)
}
  • qi从最小到最大的顺序是流量(POT)
  • n是流的数量


L2 = 79.12

指数分布的参数可以用L矩表示。我们使用的是广义帕累托(GP)公式。

对于指数分布:

这些参数估计值的置信区间可以使用bootstrapping计算得出。

Beta的95%置信区间是(37.4,89.4)和 (120.6,244.7)。参数之间的相关性约为-0.5。参数的不确定性如图1所示。



param_errors_df %>%
ggplot(aes(x = V1, y = V2)) +
geom_point(size = 0.1) +
scale_x_continuous(name = 'beta') +
scale_y_continuous(name = bquote('q'['*'])) +
stat_ellipse(colour = 'red') + # 95% 置信区间
theme_gray(base_size = 7)

图1:参数的不确定性。椭圆显示置信限度为95%

指数分布将超出概率与流的大小相关。在这种情况下,在任何POT事件中 ,峰值流量超过某个值的概率 为:

这是针对超额概率的。在水文学中,我们通常使用超出概率(洪水大于特定值的概率),因此所需方程式为一个减去所示方程式。

通过将每年超过阈值的洪峰平均数乘以POT概率,我们可以将POT概率转换为每年的预期超标次数。

74 m 3 / s阈值,POT系列中有47个值,并且有47年的数据,因此每年的平均峰值数为1。因此,EY可以表示为:

其中,q是每年POT洪水的平均数量,

w也可以与EY以下内容相关  :

我们还可以EY通过以下公式与年度超出概率相关:

因此,通过以下等式,洪水幅度可以与AEP相关,而AEP可以与洪水幅度相关。

这些方程式可用于估计标准EY值的分位数。使用bootstrap自举法估计了置信区间(95%)(表1)。




res



EY AEP AEP (1 IN X) ARI Q LWR UPR
1.00 0.63 1.6 1.0 68 39 90
0.69 0.50 2.0 1.4 127 106 150
0.50 0.39 2.5 2.0 178 151 215
0.22 0.20 5.1 4.5 308 253 404
0.20 0.18 5.5 5.0 323 267 427
0.11 0.10 9.6 9.1 417 335 565
0.05 0.05 20.5 20.0 542 434 754
0.02 0.02 50.5 50.0 687 548 965
0.01 0.01 100.5 100.0 797 627 1167

 

现在绘制数据和拟合度(图2)。x值是根据等式1的逆计算的EY;y值是流量。拟合基于等式6。使用bootstrap自举法计算分位数的置信区间。

图2:河流的部分序列显示契合度和置信区间

我个人更希望该图向右增加,这通常是洪水频率曲线的绘制方式。这仅涉及使用ARI作为纵坐标(图3)。

图3:河流部分序列显示契合度和置信区间

相关文章
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
24天前
|
存储 数据可视化 数据挖掘
R语言在生物信息学中的应用
【10月更文挑战第21天】生物信息学是生物学、计算机科学和信息技术相结合的交叉学科,主要研究生物大分子信息的存储、处理、分析和解释。R语言作为一种强大的统计分析工具,被广泛应用于生物信息学领域。本文将介绍R语言在生物信息学中的应用,包括基因组学、转录组学、蛋白质组学、代谢组学等方面,帮助读者了解R语言在生物信息学中的重要性和应用前景。
46 4
|
24天前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
41 3
|
24天前
|
机器学习/深度学习 数据采集 人工智能
R语言是一种强大的编程语言,广泛应用于统计分析、数据可视化、机器学习等领域
R语言是一种广泛应用于统计分析、数据可视化及机器学习的强大编程语言。本文为初学者提供了一份使用R语言进行机器学习的入门指南,涵盖R语言简介、安装配置、基本操作、常用机器学习库介绍及实例演示,帮助读者快速掌握R语言在机器学习领域的应用。
50 3
|
24天前
|
机器学习/深度学习 并行计算 数据挖掘
R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域
【10月更文挑战第21天】R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域。本文将介绍R语言中的一些高级编程技巧,包括函数式编程、向量化运算、字符串处理、循环和条件语句、异常处理和性能优化等方面,以帮助读者更好地掌握R语言的编程技巧,提高数据分析的效率。
41 2
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
2月前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
2月前
|
机器学习/深度学习 算法 数据挖掘
R语言中的支持向量机(SVM)与K最近邻(KNN)算法实现与应用
【9月更文挑战第2天】无论是支持向量机还是K最近邻算法,都是机器学习中非常重要的分类算法。它们在R语言中的实现相对简单,但各有其优缺点和适用场景。在实际应用中,应根据数据的特性、任务的需求以及计算资源的限制来选择合适的算法。通过不断地实践和探索,我们可以更好地掌握这些算法并应用到实际的数据分析和机器学习任务中。
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
3月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。

热门文章

最新文章