mk突变点检测_(案例)时间序列分析之MK突变检测

Mann-Kendall突变检测基本原理与技术实践

mk突变点检测_(案例)时间序列分析之MK突变检测_第1张图片

01

Mann-Kendall突变检测基本原理

mk突变点检测_(案例)时间序列分析之MK突变检测_第2张图片

mk突变点检测_(案例)时间序列分析之MK突变检测_第3张图片

mk突变点检测_(案例)时间序列分析之MK突变检测_第4张图片

02

Mann-Kendall突变检测Matlab函数

function [UFk,UBk] = MKTest(y)%y:原时间序列%UFk:顺序结果;UBk:逆序结果n=length(y);% 正序列计算---------------------------------r=zeros(n,1); for i=2:n    for j=1:i        if y(i)>y(j)            r(i)=r(i)+1;        end    endendsk=zeros(n,1); for i=2:n    for j=1:i        sk(i)=sk(i)+r(j);    endendUFk=zeros(n,1);  % 定义统计量UFk=(sk-E)/sqrt(var)for i=2:n    E=i*(i-1)/4; % Sk(i)的均值    Var=i*(i-1)*(2*i+5)/72; % Sk(i)的方差    UFk(i)=(sk(i)-E)/sqrt(Var);end% 正序列计算结束---------------------------------% 逆序列计算---------------------------------y2=flipud(y);r2=zeros(n,1);for i=2:n    for j=1:i        if y2(i)>y2(j)            r2(i)=r2(i)+1;        end    endendsk2=zeros(n,1);for i=2:n    for j=1:i        sk2(i)=sk2(i)+r2(j);    endendUFk2=zeros(n,1);for i=2:n    E=i*(i-1)/4; % Sk(i)的均值    Var=i*(i-1)*(2*i+5)/72; % Sk(i)的方差    UFk2(i)=(sk2(i)-E)/sqrt(Var);endUBk=zeros(n,1); UBk=flipud(-UFk2);% 逆序列计算结束---------------------------------%绘图plot(1:n,UFk,'r-','linewidth',1.5);hold on;plot(1:n,UBk,'b-','linewidth',1.5);plot(1:n,0*ones(n,1),'-.','linewidth',1);  %绘制横轴0值线plot(1:n,1.96*ones(n,1),':','linewidth',1); %绘制95%置信区间界限plot(1:n,-1.96*ones(n,1),':','linewidth',1);%绘制95%置信区间界限axis([1,n,-4,8]);%设置横坐标范围和纵坐标范围legend('UF','UB','95%显著区间'); %设置图例xlabel('t','FontName','TimesNewRoman','FontSize',12);%设置x轴标签ylabel('统计量','FontName','TimesNewRoman','Fontsize',12);%设置y轴标签%plot(1:n,2.32*ones(n,1),':','linewidth',1); %绘制99%置信区间界限%plot(1:n,-2.32*ones(n,1),':','linewidth',1);%绘制99%置信区间界限%MK检验统计量绝对数值≥1.28/1.96/2.32分别表明90%/95%/99%的置信区间% 把UF、UB计算结果写入xlsx文件:C:\test.xls% 目标表单:Sheet1% 目标区域:UFk从A1开始,UBk从B1开始xlswrite('C:\test.xlsx',UFk,'Sheet1','A1');xlswrite('C:\test.xlsx',UBk,'Sheet1','B1');end

03

Mann-Kendall突变检测算例

1900-1990上海年平均气温时间序列.csv:

mk突变点检测_(案例)时间序列分析之MK突变检测_第5张图片

MK突变检测结果:

mk突变点检测_(案例)时间序列分析之MK突变检测_第6张图片

某水文站1955-2005逐月监测含沙量时间序列.csv

mk突变点检测_(案例)时间序列分析之MK突变检测_第7张图片

MK突变检测结果:

mk突变点检测_(案例)时间序列分析之MK突变检测_第8张图片

代码随便使用,不用授权,心存感激即可~~~

你可能感兴趣的:(mk突变点检测)