• 大小: 1KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Matlab
  • 标签: Matlab  MK检验  

资源简介

用来检验时间序列的突变性。把文件名改成英文的,修改路径可以直接运行。

资源截图

代码片段和文件信息

 load (‘Book1.mat‘ ‘VarName3‘)
X=VarName3;
%计算UF统计量
N=length(X);
UF=zeros(N1);
for t=2:N
    x=X(1:t);
    S=0;
    n=length(x);
    for k=1:(n-1)
        for j=(k+1):n
            if x(j)>x(k)
                S=S+1;
            else
                S=S+0;
            end
        end
    end
    ES=n*(n+1)/4;
    VarS=n*(n-1)*(2*n+5)/72;
    Z=(S-ES)/sqrt(VarS);
    UF(t)=Z;
end
%计算UB统计量
Y=flipud(X);
UB=zeros(N1);
for t=2:N
    x=Y(1:t);
    S=0;
    n=length(x);
    for k=1:(n-1)
        for j=(k+1):n
            if x(j)>x(k)
                S=S+1;
            else
                S=S+0;
            end
        end
    end
    ES=n*(n+1)/4;
    VarS=n*(n-1)*(2*n+5)/72;
    Z=(S-ES)/sqrt(VarS);
    UB(t)=-Z;
UB2=zeros(size(Y));
% 也可以使用UBk2=flipud(UBk);或者UBk2=flipdim(UBk1);
for i=1:n
  UB2(i)=UB(n-i+1);
end;
end
%绘图
figure(2)
plot(1:(N)UF‘r-‘‘linewidth‘1.5);
hold on
plot(1:(N)UB2‘b-.‘‘linewidth‘1.5);
plot(1:(N)1.96*ones(N1)‘:‘‘linewidth‘1);
axis([1N-44]);
legend(‘UF统计量‘‘UB统计量‘‘0.05显著水平‘);
xlabel(‘t (year)‘‘FontName‘‘TimesNewRoman‘‘FontSize‘12);
ylabel(‘统计量‘‘FontName‘‘TimesNewRoman‘‘Fontsize‘12);
%grid on
hold on
plot(1:(N)0*ones(N1)‘-.‘‘linewidth‘1);
plot(1:(N)1.96*ones(N1)‘:‘‘linewidth‘1);
plot(1:(N)-1.96*ones(N1)‘:‘‘linewidth‘1)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1279  2015-04-01 11:36  突变.m
     文件        1391  2017-11-02 16:18  M好的突变.m

评论

共有 条评论