MannKendall
突变检测算法
MATLAB
源码
题目:
MannKendall
突变检测算法
MATLAB
源码
%%
以下是单边
MannKendall
突变检测算法
% GreenSim
团队原创作品,转载请注明
% Email:greensim@163.com
% GreenSim
团队主页:
http://blog.sina.com.cn/greensim
% [color=red]
欢迎访问
GreenSim
——算法仿真团队
→[url=http://blog.sina.com.cn/greensim]http://blog.sina.com.cn/green
sim[/url][/color]
clear
load data
X=MJL;
N=length(X);
U=zeros(N-1,1);
for t=2:N
x=X(1:t);
S=0;
n=length(x);
for k=1:(n-1)
for j=(k+1):n
S=S+sign(x(j)-x(k));
end
end
VarS=n*(n-1)*(2*n+5)/18;
if S>0
Z=(S+1)/sqrt(VarS);
elseif S==0
Z=0;
else
Z=(S-1)/sqrt(VarS);
end
U(t-1)=Z;
end
figure(1)
plot(1:(N-1),U,'linewidth',1.5);
hold on
plot(1:(N-1),1.96*ones(N-1,1),':','linewidth',1);
legend('
统计量
','0.05
显著水平
');
hold on
plot(1:(N-1),0*ones(N-1,1),'-.','linewidth',1);
plot(1:(N-1),1.96*ones(N-1,1),':','linewidth',1);