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

数学建模强化宝典(13)M-K检验法

前言

       M-K检验法,全称为Mann-Kendall检验法,是一种非参数的假设检验方法,广泛应用于时间序列数据的趋势性变化检验,特别是气候序列中的趋势分析和突变点检测。以下是对M-K检验法的详细介绍:

一、定义与背景

       M-K检验法由Frank Mann和Donald R. Kendall提出并发展,因此得名Mann-Kendall检验法。该方法不依赖于数据的具体分布形式,能够处理含有异常值和非正态分布的数据,非常适合于气候、水文、环境等领域的时间序列数据分析。

二、基本原理

       M-K检验法的基本原理是通过比较每个数据点与其之前数据点的大小,来检测时间序列数据中的单调趋势(上升、下降或没有趋势)。具体步骤如下:

  1. 构造秩序列:对于时间序列中的每一个数据点,计算其之前所有数据中比它大或小的数据点个数,从而构造出一个秩序列。
  2. 计算统计量:基于秩序列,计算统计量UFk(正向序列)和UBk(反向序列),这两个统计量用于评估时间序列的趋势性和突变点。
  3. 显著性检验:将UFk和UBk与设定的显著性水平(如0.05)对应的临界值进行比较,判断趋势是否显著,以及是否存在突变点。

三、应用领域

M-K检验法广泛应用于以下领域:

  1. 气候变化研究:用于检测气候序列中的趋势变化和突变点,如气温、降水等气候要素的变化趋势。
  2. 水文水资源研究:分析河流流量、地下水位等水文要素的时间序列数据,评估其变化趋势和突变情况。
  3. 环境科学研究:在环境监测和评估中,利用M-K检验法分析污染物浓度、环境质量等指标的变化趋势。

四、优点与局限性

优点:
  1. 非参数检验:不依赖于数据的具体分布形式,适用于各种类型的时间序列数据。
  2. 抗干扰能力强:对异常值不敏感,能够较好地处理非正态分布的数据。
  3. 计算简便:计算过程相对简单,易于实现自动化处理。
局限性:
  1. 无法确定趋势形式:M-K检验法只能判断时间序列是否存在单调趋势,但无法确定趋势的具体形式(如线性、非线性等)。
  2. 对周期性变化不敏感:对于存在周期性变化的时间序列数据,M-K检验法的检测效果可能不佳。

五、实现 

       下面是一个简单的MATLAB函数,用于执行Mann-Kendall趋势检验,并计算统计量UFk(正向序列)以及可选的UBk(反向序列,用于确定突变点): 

function [UF, UB, pValue] = mannKendall(x)  % 输入:  % x - 时间序列数据向量  %  % 输出:  % UF - 正向序列的Mann-Kendall统计量  % UB - 反向序列的Mann-Kendall统计量(可选)  % pValue - 对应的p值(此函数不直接计算,通常需要查表或使用其他方法)  n = length(x);  s = 0;  varS = 0;  UF = zeros(1, n);  % 初始化  for k = 2:n  for j = 1:k-1  if x(k) > x(j)  s = s + 1;  elseif x(k) < x(j)  s = s - 1;  end  end  UF(k) = (s - k * (k - 1) / 2) / sqrt(k * (k - 1) * (2 * k + 5) / 18);  varS = varS + s^2;  s = 0;  end  % UB的计算需要反向序列  UB = zeros(1, n);  if nargout > 2  % 计算方差  varS = (n * (n - 1) * (2 * n + 5) / 18) - varS;  if varS == 0  varS = 1; % 避免除以零  end  % 反向序列  y = fliplr(x);  for k = 2:n  UB(k) = -UF(n+1-k); % 利用正向序列的结果  % 注意:这里直接利用UF的结果进行转换,实际上UB的计算需要完整重复上述过程,  % 但对于标准Mann-Kendall测试,通常只关注UF,UB用于确定突变点  end  % 标准化UB  UB = UB / sqrt(varS / 18);  end  % 注意:此函数不直接计算p值,通常需要查表或使用统计软件  pValue = NaN; % 占位符  
end

注意

  1. 上述代码主要计算了UF统计量,并可选地计算了UB统计量(虽然UB的计算是基于UF的简化,实际中可能需要独立计算)。
  2. p值的计算通常不是直接通过M-K统计量本身进行的,而是需要参考相应的统计表或使用专门的统计软件/函数。
  3. 对于趋势的显著性判断,通常需要将UF或UB的值与一定的显著性水平(如α=0.05对应的临界值)进行比较。
  4. 在实际应用中,你可能还需要对时间序列进行预处理,如去趋势、季节性调整等,以提高M-K检验的准确性。

六、结论

       M-K检验法作为一种非参数的假设检验方法,在气候、水文、环境等领域的时间序列数据分析中发挥着重要作用。其优点在于不依赖于数据的具体分布形式且抗干扰能力强,但也存在无法确定趋势形式和对周期性变化不敏感的局限性。在实际应用中,应根据具体研究目的和数据特点选择合适的分析方法。

 结语 

成功是优点的发挥

失败是缺点的累积

!!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【系统架构设计师】状态模式
  • matlab实现kaiser窗+时域采样序列(不管原信号拉伸成什么样子)是一样的,变到频谱后再采样就是一样的频域序列。
  • CCPC网络预选赛感想
  • 深入了解以太坊
  • COD论文笔记 Adaptive Guidance Learning for Camouflaged Object Detection
  • EmguCV学习笔记 VB.Net 11.2 DNN推理流程
  • iPhone的安全模式如何操作
  • 嵌入式OpenHarmony源码基本原理详解
  • 内网安全-横向移动【3】
  • 检查Index对象是否单调递减pandas.Index.is_monotonic_decreasing
  • 【学习笔记】3GPP WG SA5 Rel-19标准化工作管理和编排
  • 衡石分析平台使用手册-单机安装及启动
  • vue3实现打飞机(雷电)
  • HTML 超链接
  • 常见的正则化方法以及L1,L2正则化的简单描述
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Angular 响应式表单之下拉框
  • CSS居中完全指南——构建CSS居中决策树
  • ES学习笔记(12)--Symbol
  • node-glob通配符
  • Objective-C 中关联引用的概念
  • 阿里云购买磁盘后挂载
  • 工作中总结前端开发流程--vue项目
  • 那些被忽略的 JavaScript 数组方法细节
  • 前端相关框架总和
  • 如何优雅地使用 Sublime Text
  • 算法-插入排序
  • 推荐一个React的管理后台框架
  • 正则与JS中的正则
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # Redis 入门到精通(一)数据类型(4)
  • #NOIP 2014# day.1 T2 联合权值
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (55)MOS管专题--->(10)MOS管的封装
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (ibm)Java 语言的 XPath API
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (十)T检验-第一部分
  • (四)React组件、useState、组件样式
  • (转)大型网站架构演变和知识体系
  • (自用)gtest单元测试
  • .Net - 类的介绍
  • .NET基础篇——反射的奥妙
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • [012-1].第12节:Mysql的配置文件的使用
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [BZOJ1053][HAOI2007]反素数ant