clear
A=xlsread('数据.xls');
%计算UF统计量
N=length(A);
UF=zeros(N-1,1);
for t=2:N
x=A(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-1)=Z;
end
%计算UB统计量
Y=flipud(A);
UB=zeros(N-1,1);
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-1)=-Z;
end
%绘图
figure(2)
plot(1:(N-1),UF,'r-','linewidth',1.5);
hold on
plot(1:(N-1),UB,'b-.','linewidth',1.5);
plot(1:(N-1),1.96*ones(N-1,1),':','linewidth',1);
axis([1,N-1,-4,8]);
legend('UF统计量','UB统计量','0.05显著水平');
xlabel('t (year)','FontName','TimesNewRoman','FontSize',12);
ylabel('统计量','FontName','TimesNewRoman','Fontsize',12);
%grid on
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);
plot(1:(N-1),-1.96*ones(N-1,1),':','linewidth',1);
GZM888888
- 粉丝: 515
- 资源: 3067