基于GEV与L-moments法的洪水频率分析重现期分位数估计问题咨询
extRemes包GEV拟合后续操作指南
一、拟合优度检验方法
- 图形化直观检验
直接调用extRemes包内置的plot()方法即可输出4种常用检验图:
plot(fitevd)
输出包含经验累积分布与理论GEV分布对比图、QQ图、PP图、重现水平拟合图,若观测点整体贴近对角线则说明拟合效果良好,是水文领域论文中最常用的拟合效果展示方法。
- Kolmogorov-Smirnov(K-S)数值检验
你已计算得到各样本点对应的理论累积概率df,若GEV拟合合理,该序列应服从均匀分布,直接调用K-S检验即可:
ks.test(df, "punif")
检验结果p值大于设定的显著性水平(通常为0.05)时,可接受“GEV分布拟合效果合格”的原假设。
- Anderson-Darling(A-D)检验
对极值分布的尾部拟合效果更敏感,适合水文极值检验,调用goftest包的对应函数即可:
library(goftest) ad.test(df, "punif")
判断逻辑与K-S检验一致,p值越大说明拟合效果越好。
二、5/10/20年重现期分位数(重现水平)估算
你使用的ci()函数可直接批量计算多个重现期的点估计值及置信区间,仅需修改return.period参数为目标重现期向量即可:
# 计算3个目标重现期的重现水平及95%置信区间 rl_result <- ci(fitevd, alpha = 0.05, type = "return.level", return.period = c(5,10,20), R = 502) # 输出结果 print(rl_result)
- 输出结果会依次给出每个重现期对应的重现水平估计值、置信区间下限、置信区间上限,参数
R为bootstrap重复抽样次数,可调整为1000以提高置信区间精度。 - 若仅需重现水平点估计,可直接调用
return.level()函数:
rl_point <- return.level(fitevd, return.period = c(5,10,20))
现有代码优化建议
你手动录入参数计算df的操作容易出现抄录错误,可直接从拟合结果对象中提取参数:
df <- pevd(Potomac$Flow, loc = fitevd$par[["location"]], scale = fitevd$par[["scale"]], shape = fitevd$par[["shape"]], type = "GEV")
内容的提问来源于stack exchange,提问作者JOHN WILLIAM VEDEJA
相关产品推荐
相关产品推荐

