当前位置: 首页 > news >正文

机器学习数学基础:46.Mann-Kendall 序贯检验(Sequential MK Test)

Mann-Kendall 序贯检验(Sequential MK Test)详解

Mann-Kendall 序贯检验与整体趋势检验同属 MK 方法体系,但应用场景和计算目标不同。整体检验聚焦“整个序列是否有显著趋势”,而序贯检验则用于检测趋势的“突变点”(即趋势何时开始显著),并追踪趋势的演变过程。

一、核心区别与联系

对比维度整体 MK 检验序贯 MK 检验
方法定位判断“整个时间序列是否存在显著趋势”不仅判断趋势,还追踪“趋势何时开始显著”及“突变点”(趋势转折时间点)
关键统计量统计量 S 和 Z正序统计量 UFₖ、逆序统计量 UBₖ
核心逻辑基于全局数据的相对大小比较基于正序、逆序数据的趋势交叉分析
联系均为非参数检验,不依赖数据分布;核心思想均基于成对数据的相对大小比较

二、序贯检验的统计量(以 UFₖ 为例)

1. 定义

  • mᵢ:第 i 个数据与前面所有数据(j≤i)比较时,xᵢ > xⱼ 的次数(即“正差异”次数)。
  • dₖ:前 k 个数据的累积正差异数,即所有 i≤k 的 mᵢ 之和:
    dₖ = Σ₍i=1⁾ᵏ mᵢ

2. 均值 E(dₖ) 和方差 Var(dₖ)

假设数据独立同分布(无趋势、无自相关):

  • 均值:前 k 个数据共 k(k-1)/2 对比较,每对 xᵢ > xⱼ 的概率为 0.5,因此:
    E(dₖ) = k(k-1)/4
  • 方差:需考虑“结”(相等值)和独立性,无结时公式为:
    Var(dₖ) = k(k-1)(2k+5)/72

3. 标准化统计量 UFₖ

将 dₖ 标准化以消除量纲影响:
UFₖ =
{0(k=1),dk−E(dk)Var(dk)(2≤k≤n).\begin{cases} 0 & (k=1), \\ \frac{dₖ - E(dₖ)}{\sqrt{Var(dₖ)}} & (2≤k≤n). \end{cases}{0Var(dk)dkE(dk)(k=1),(2kn).

  • 物理意义
    • UFₖ > 0:前 k 个数据呈现上升趋势;
    • UFₖ < 0:前 k 个数据呈现下降趋势;
    • 若 |UFₖ| 超过临界值(如 1.96,对应 α=0.05),则趋势显著。

三、序贯检验的完整逻辑:UF 与 UB 曲线

1. UBₖ 的计算

  • 逆序计算:将原序列倒序后,重复 UFₖ 的计算步骤,得到倒序统计量 UFₖ’;
  • 转换为 UBₖ:原序列的 UBₖ = -UF’ₙ₋ₖ₊₁(如 k=1 时,UB₁ = -UF’ₙ;k=n 时,UBₙ = -UF’₁)。

2. 突变点判断

通过 UFₖ 和 UBₖ 曲线的交叉点判断突变点:

  • 若两条曲线在临界值(如 ±1.96,对应 α=0.05)之间交叉,交叉年份即为趋势突变的时间点。

四、序贯检验的操作步骤

步骤 1:数据准备

  • 输入:时间序列 {xᵢ}(i=1~n,n≥10,建议无缺失值;若有重复值,需记录“结”的信息)。
  • 目标:计算 UFₖ(正序趋势)和 UBₖ(逆序趋势),通过曲线交叉定位突变点。

步骤 2:计算正序统计量 UFₖ

  1. 计算 mᵢ 和 dₖ:按定义逐点计算每个 i 的 mᵢ,再累积得到 dₖ;
  2. 计算 E(dₖ) 和 Var(dₖ):使用上述公式;
  3. 标准化得到 UFₖ:按 UFₖ 公式计算。

步骤 3:计算逆序统计量 UBₖ

  1. 倒序序列:将原序列反转,得到 {x’ᵢ} = {xₙ, xₙ₋₁, …, x₁};
  2. 计算倒序的 UFₖ’:对倒序序列重复步骤 2;
  3. 转换为 UBₖ:UBₖ = -UF’ₙ₋ₖ₊₁。

步骤 4:突变点与趋势判断(绘图分析)

  1. 绘图:横轴为时间(1~n),纵轴为 UFₖ(蓝色,正序)和 UBₖ(红色,逆序),并添加临界值线 ±1.96;
  2. 趋势判断
    • UFₖ > 1.96:显著上升趋势;
    • UFₖ < -1.96:显著下降趋势;
  3. 突变点判断:UFₖ 和 UBₖ 在临界值之间的交叉点,即为趋势突变的时间点(需结合专业知识解释是否为“真实突变”)。

五、示例:某地区年降水量的序贯检验分析

1. 数据准备

某地区 2013-2022 年的年降水量(单位:毫米):

年份2013201420152016201720182019202020212022
降水量800820780850830880900860920950

2. 计算正序统计量 UFₖ

  • 计算 mᵢ 和 dₖ

    • k=1:m₁=0,d₁=0;
    • k=2:x₂=820 > x₁=800 → m₂=1,d₂=0+1=1;
    • k=3:x₃=780 < x₁、x₂ → m₃=0,d₃=1+0=1;
    • 以此类推,得到所有 dₖ。
  • 计算 E(dₖ)、Var(dₖ) 和 UFₖ
    例如 k=3 时:
    E(d₃)=3×2/4=1.5,Var(d₃)=3×2×11/72≈0.917,
    UF₃=(1-1.5)/√0.917≈-0.52。

3. 计算逆序统计量 UBₖ

  • 倒序序列:950,920,860,900,880,830,850,780,820,800;
  • 重复步骤 2 计算倒序的 UFₖ’,再转换为 UBₖ(UBₖ = -UF’ₙ₋ₖ₊₁)。

4. 结果分析

  • 趋势判断:UFₖ > 0 表示上升趋势,UFₖ < 0 表示下降趋势;
  • 显著性判断:|UFₖ| > 1.96 时,趋势显著;
  • 突变点判断:UFₖ 与 UBₖ 在临界值之间的交叉点即为突变点(如交叉年份为 2018 年,需结合气候事件、政策等分析原因)。

六、关键注意事项

  1. 结的处理:若数据有重复值,需用修正方差公式(加入 Σtₚ(tₚ-1)(2tₚ+5) 项,tₚ 为第 p 组重复值的长度),否则可能低估方差,导致假阳性;
  2. 样本量:n<10 时,正态近似不成立,需用精确概率表判断显著性;
  3. 突变解释:交叉点仅表示趋势显著性的转折,需结合专业知识判断是否为“真实突变”。

通过序贯 MK 检验,可深入挖掘时间序列的趋势动态,为气候、环境等领域的决策提供支持。

http://www.dtcms.com/a/324556.html

相关文章:

  • Java集合框架、Collection体系的单列集合
  • 有限元方法中的数值技术:追赶法求解三对角方程
  • 【鸿蒙/OpenHarmony/NDK】什么是NDK? 为啥要用NDK?
  • PCB知识07 地层与电源层
  • LLIC:基于自适应权重大感受野图像变换编码的学习图像压缩
  • 每日一题:使用栈实现逆波兰表达式求值
  • Redis高级
  • AAAI 2025丨具身智能+多模态感知如何精准锁定目标
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘ray’问题
  • Python数据分析常规步骤整理
  • Mysql系列--5、表的基本查询(下)
  • Speaking T2 - Dining Hall to CloseDuring Spring Break
  • 机器学习 DBScan
  • 一键复制产品信息到剪贴板
  • 【接口自动化】初识pytest,一文讲解pytest的安装,识别规则以及配置文件的使用
  • 网闸技术解析:如何实现对国产数据库(达梦/金仓)的深度支持
  • AI 代理框架:使用正确的工具构建更智能的系统
  • 网络小工具发布 IPPw
  • 机器学习之K-means(K-均值)算法
  • 七、CV_模型微调
  • SpringBoot学习日记(三)
  • P1152 欢乐的跳
  • 从零开始实现Qwen3(MOE架构)
  • C语言基础05——指针
  • Pinia 状态管理库
  • Redis - 使用 Redis HyperLogLog 进行高效基数统计
  • 无人机集群协同三维路径规划,采用梦境优化算法(DOA)实现,Matlab代码
  • strace的常用案例
  • 基于Qt/QML 5.14和YOLOv8的工业异常检测Demo:冲压点智能识别
  • VSCODE+GDB+QEMU调试内核