正在加载中...

展开本页目录
算法教程EVT-极值理论

EVT-极值理论

No.044 · 在线教程

极值理论(Extreme Value Theory, EVT)用于刻画随机变量尾部行为,核心目标是对罕见事件的发生强度与重现水平进行统计推断。对于工程风险、金融尾部损失、气象水文极端事件等问题,EVT 相比常规均值方差分析更能反映“极端区间”的规律。系统实现了两条主线:块极值法…

EVT-极值理论

1. 方法概述

极值理论(Extreme Value Theory, EVT)用于刻画随机变量尾部行为,核心目标是对罕见事件的发生强度与重现水平进行统计推断。对于工程风险、金融尾部损失、气象水文极端事件等问题,EVT 相比常规均值方差分析更能反映“极端区间”的规律。系统实现了两条主线:块极值法(GEV)与超阈值法(POT-GPD),并输出参数估计、显著性、信息准则、返回水平与诊断图表。

设观测序列为

$$ \{x_t\}_{t=1}^{n} \tag{1} $$

其中 \(x_t\) 为时刻 \(t\) 的观测值。

2. 尾部方向与数据预处理

当研究上尾极端(极大值)时,直接建模原序列;当研究下尾极端(极小值)时,可通过符号变换统一为上尾问题:

$$ y_t=s\,x_t,\quad s= \begin{cases} 1, & \text{上尾}\\ -1, & \text{下尾} \end{cases} \tag{2} $$

后续极值拟合在 \(y_t\) 空间进行,最终再映射回原始尺度。

3. GEV:块极值法(Block Maxima)

将序列按块长 \(m\) 划分,块数记为 \(B=\lfloor n/m\rfloor\),第 \(b\) 块极大值为

$$ M_b=\max\{y_{(b-1)m+1},\ldots,y_{bm}\},\quad b=1,\ldots,B \tag{3} $$

对 \(M_b\) 拟合广义极值分布(GEV),其分布函数可写为

$$ G(z)=\exp\left\{-\left[1+\xi\left(\frac{z-\mu}{\sigma}\right)\right]^{-1/\xi}\right\}, \quad 1+\xi\frac{z-\mu}{\sigma}>0, \ \sigma>0 \tag{4} $$

其中 \(\mu\) 为位置参数、\(\sigma\) 为尺度参数、\(\xi\) 为形状参数。

3.1 参数估计与信息准则

设对数似然为 \(\ell(\theta)\),参数个数为 \(k\),样本量为 \(N\)(这里通常为块数 \(B\)),则

$$ \text{AIC}=2k-2\ell(\hat\theta) \tag{5} $$

$$ \text{BIC}=k\ln N-2\ell(\hat\theta) \tag{6} $$

AIC/BIC 越小通常表示拟合与复杂度折中更优。

3.2 返回水平(Return Level)

若重现期为 \(T\)(以“块”为单位),则超越概率近似为 \(1/T\),对应分位概率为

$$ p_T=1-\frac{1}{T} \tag{7} $$

GEV 返回水平定义为

$$ z_T=G^{-1}(p_T) \tag{8} $$

若输入重现期以“年”为单位,需先换算为块尺度后再代入式(7)–式(8)。

4. POT:超阈值法(Peaks Over Threshold)

给定阈值 \(u\),定义超额样本

$$ Y_i=X_i-u,\quad X_i>u \tag{9} $$

在 EVT 条件下,超额 \(Y_i\) 近似服从广义帕累托分布(GPD):

$$ H(y)=1-\left(1+\xi\frac{y}{\beta}\right)^{-1/\xi}, \quad y\ge 0, \ 1+\xi\frac{y}{\beta}>0, \ \beta>0 \tag{10} $$

其中 \(\xi\) 为形状参数,\(\beta\) 为尺度参数。

4.1 阈值与超额率

设超额个数为 \(N_u\),总样本量为 \(n\),则经验超额率

$$ \lambda_u=\frac{N_u}{n} \tag{11} $$

阈值 \(u\) 可由固定值或高分位数(如 0.90、0.95、0.99)确定。

4.2 POT 返回水平

记重现期对应观测尺度为 \(m_T\)(可为点数或年化后点数),则返回水平可写为

$$ z_T=u+\frac{\beta}{\xi}\left[(m_T\lambda_u)^{\xi}-1\right],\quad \xi\neq 0 \tag{12} $$

当 \(\xi\to 0\) 时,退化为

$$ z_T=u+\beta\ln(m_T\lambda_u) \tag{13} $$

5. 拟合诊断与检验

为检验拟合合理性,系统给出 Kolmogorov-Smirnov 检验(KS):

$$ D=\sup_x \left|F_n(x)-F_\theta(x)\right| \tag{14} $$

其中 \(F_n\) 为经验分布,\(F_\theta\) 为拟合分布。配合 \(p\)-value 判断拟合偏差显著性,并结合 Q-Q 图、直方图与拟合密度曲线进行直观判断。

6. 符号说明表

符号 含义
\(x_t\) 原始观测值
\(y_t\) 尾部方向变换后的序列
\(m\) 块长度(GEV)
\(B\) 块数
\(M_b\) 第 \(b\) 块极值
\(u\) POT 阈值
\(N_u\) 超阈值样本数
\(\lambda_u\) 超额率
\(\mu,\sigma,\xi\) GEV 位置/尺度/形状参数
\(\beta,\xi\) GPD 尺度/形状参数
\(z_T\) 重现期 \(T\) 对应返回水平
\(\ell,\text{AIC},\text{BIC}\) 对数似然、信息准则

7. 结果输出与论文使用说明

本系统输出结果目录中包含 Excel 与图像文件,可直接用于论文中“模型结果”“诊断分析”“极端风险量化”三类内容。

7.1 Excel 工作表含义

Sheet 名称 主要内容 论文中的用途
Parameters 本次分析参数(方法、尾部方向、阈值/块长、重现期等) 实验设置表或方法复现说明
Raw_Preview 原始数据预览 数据来源与样本展示
Series_Info 样本量、缺失处理、统计量 数据描述统计
Summary 核心结论(参数、AIC/BIC、KS 等) 主结果表
Fit_params_scipy / Fit_params_evt / Fit_params 参数估计、标准误、z 值、p 值 参数显著性解释
Return_Levels 各重现期返回水平 极端事件强度评估
Diagnostics 诊断指标与检验结果 模型有效性说明
Data_block_maxima_preview / Data_exceed_preview 中间数据(块极值或超额样本) 方法过程可追溯
Charts_Index 图表路径索引 图表编号与引用管理

7.2 图表含义

图文件 含义 论文中的用途
series_*.png 原始序列变化 数据时序特征展示
hist_fit_*.png 直方图与拟合密度 分布拟合直观检验
qq_*.png 理论分位数与样本分位数对比 拟合一致性诊断
return_level_*.png 重现期-返回水平曲线 极端风险随重现期变化分析

8. 论文写作建议(正文组织)

正文建议按“方法设定—参数估计—诊断检验—返回水平解释”组织:先说明选择 GEV 或 POT 的依据,再给出参数估计与 AIC/BIC、KS 结果,随后用 Q-Q 图和拟合图验证模型可靠性,最后结合返回水平表与返回水平曲线解释不同重现期下的极端强度变化。若研究目标是工程安全阈值或金融尾部风险,可将 \(T=10,20,50,100\) 的返回水平作为核心结论并与实际管理阈值进行对照。

9. 实现说明与注意事项

就本项目当前可运行版本而言,EVT 模块的真实核心位于:

  • 具体的算法2/EVT-极值理论/core/calculator.py
  • 具体的算法2/EVT-极值理论/ui/results_widget.py

其中真正决定结果文件结构的是 core/calculator.py 的导出逻辑。

9.1 当前结果目录、图表与复现脚本

程序按统一产品口径把结果写入模块目录下的:

results/EVT分析结果_<YYYYMMDD_HHMMSS>/

结果目录中通常包含:

  • EVT分析结果_<时间戳>.xlsx
  • charts/series_<时间戳>.png
  • charts/hist_fit_<时间戳>.png
  • charts/qq_<时间戳>.png
  • charts/return_level_<时间戳>.png
  • repro_evt_<时间戳>.py
  • repro_inputs/sample_data.csv

因此,该模块当前已经形成“结果工作簿 + 诊断图 + 返回水平图 + 输入副本 + 可执行 repro”的完整复现实验链。

9.2 当前 Excel 工作簿的真实页签

根据 core/calculator.py 的实际实现,结果工作簿包含以下核心工作表:

  • Parameters
  • Raw_Preview
  • Series_Info
  • Summary
  • Fit_<name>
  • Return_Levels
  • Diagnostics
  • Data_<k>
  • Charts_Index

这里的 Fit_<name> 会根据当前拟合结果对象自动命名,例如不同分布或不同参数估计结果会展开成不同的 Fit_* 页;Data_<k> 则用于保存块极值样本或超阈值样本等中间数据。

因此,论文中关于参数估计、返回水平和诊断结果的说明,最稳妥的做法是直接对应:

  • 参数估计:Fit_*
  • 返回水平:Return_Levels
  • 诊断检验:Diagnostics
  • 图表路径管理:Charts_Index

9.3 当前图表与公式步骤的对应关系

程序当前固定导出四类图:

  • series_*.png:原始或尾部变换后的序列图
  • hist_fit_*.png:直方图与拟合密度
  • qq_*.png:Q-Q 图
  • return_level_*.png:返回水平曲线

因此,式(3)至式(13)得到的极值拟合与返回水平,不仅体现在 Fit_*Return_Levels 表,也会同步体现在 hist_fit_*qq_*return_level_* 图中。

9.4 当前 repro 的真实行为

结果页 ui/results_widget.py 支持导出 repro_evt_<时间戳>.py。该脚本会复用本次:

  • 数据文件路径
  • 尾部方向
  • 方法类型(GEV 或 POT)
  • 阈值或块长
  • 重现期参数

并再次调用核心计算逻辑生成新的结果文件。

9.5 当前项目实现的使用注意事项

EVT 适用于关注尾部行为而非整体均值趋势的场景。GEV 对块划分敏感,块太小会引入依赖性,块太大则样本量不足;POT 对阈值敏感,阈值过低会偏离渐近条件,阈值过高会导致超额样本过少。实际应用中应结合样本规模、业务频率与诊断结果综合确定参数,并在结论中说明不确定性来源。若论文要与本程序保持一致,应把 SummaryReturn_LevelsDiagnosticsCharts_Index 一并视为标准输出,而不是只引用最终返回水平数值。

10. 单篇终审补充

10.1 图题与表题对齐建议

  • Parameters 表可写为:表X EVT 参数设置与方法配置。
  • Raw_Preview 表可写为:表X EVT 原始数据预览。
  • Series_Info 表可写为:表X EVT 序列信息与样本概况。
  • Summary 表可写为:表X EVT 拟合摘要与核心统计量。
  • Fit_* 表可写为:表X EVT 参数估计结果。
  • Return_Levels 表可写为:表X EVT 不同重现期返回水平。
  • Diagnostics 表可写为:表X EVT 诊断检验结果。
  • Data_<k> 表可写为:表X EVT 中间数据或尾部样本表。
  • Charts_Index 表可写为:表X EVT 图表索引与路径。
  • series_*.png 建议写为:图X EVT 原始序列或尾部样本图。
  • hist_fit_*.png 建议写为:图X EVT 拟合密度图。
  • qq_*.png 建议写为:图X EVT Q-Q 诊断图。
  • return_level_*.png 建议写为:图X EVT 返回水平曲线。

10.2 终审说明

  • Fit_* 是按当前拟合对象动态展开的页签,不同分布或估计情形下具体页名会变化,正文应写“参数估计表 Fit_*”,不要强行写死单一表名。
  • Return_Levels 才是适合写入正文的返回水平主表;Summary 更适合用于概览参数、样本量和拟合摘要。
  • 当前程序固定导出四类诊断图,因此论文可以写“序列图、拟合密度图、Q-Q 图、返回水平图”四类结果,但不要扩写为更多未自动生成的图件。
  • repro_evt_<时间戳>.py 会沿用本次尾部方向、方法类型、阈值/块长和重现期设置重新生成结果,因此可复现性应表述为“参数级复现”,而不是只说“重新跑一次程序”。

10.3 全量强化补充

本次全量强化绑定的真实结果目录为 具体的算法2/EVT-极值理论/results/EVT分析结果_20260329_165524。该目录内主工作簿为 EVT分析结果_20260329_165524.xlsx,实际工作表为 ParametersRaw_PreviewSeries_InfoSummaryFit_params_scipyFit_params_evtReturn_LevelsDiagnosticsData_block_maxima_previewCharts_Index。其中 Charts_Index 实际存在,且对应 4 张真实图件,因此这篇文档现在可以把“工作簿主表 + 图表索引 + 图目录”作为同一轮结果链来引用。

同一目录下 charts/ 内实际图件为 series_20260329_165524.pnghist_fit_20260329_165524.pngqq_20260329_165524.pngreturn_level_20260329_165524.png,与前文建议的 4 类图题一一对应。若论文引用图件来源,宜直接注明该结果目录,而不要把其他时间戳目录中的图混写进同一轮实验说明。

该目录下还存在 repro_evt_20260329_165524.pyrepro_inputs/sample_data.csv。脚本内当前真实入口为 SRC_FILE = 'repro_inputs/sample_data.csv',并显式写入 METHODTAILRETURN_PERIODSGEV = {'block_size': 10}POT = {'threshold_mode': 'quantile', 'threshold_quantile': 0.95} 等参数。因此 EVT 当前已经具备“主结果目录内相对路径输入副本 + 可执行 repro 脚本 + 再生产物”的完整复现链,正文可直接按这一工程口径描述。

11. 软件实现核查补充(2026-07)

  • 当前实现的主结果目录应写作 具体的算法2/EVT-极值理论/results/EVT分析结果_20260329_165524,主工作簿为 EVT分析结果_20260329_165524.xlsx
  • 论文与说明正文应围绕 ParametersRaw_PreviewSeries_InfoSummaryFit_params_scipyFit_params_evtReturn_LevelsDiagnosticsCharts_Index 展开。
  • 当前目录只需要按 series_20260329_165524.pnghist_fit_20260329_165524.pngqq_20260329_165524.pngreturn_level_20260329_165524.png 这 4 类图写,不要扩成其他未落地图件。
  • repro_evt_20260329_165524.py + repro_inputs/sample_data.csv 已构成同目录复现链,文中可以直接按这个口径说明。