但是,用累计距平验证,总觉得突变的时间点不对,我觉得这个突变时间应该在1997年左右,但是Pettitt做出来太靠后,而且不明显
程序如下:
function [Ut,chg_point]=pettitt_change(x,data)
%
% Pettitt test for detection of change point
A=textread('气温年值.txt')
x=A(:,1)%时间
data=A(:,2)%年平均气温
n=length(data);
s=0;
Ut=zeros(n-1,1);
for i=1:n-1;
for j=i+1:n;
s=s+sign(data(i)-data(j));
end
Ut(i)=s;
end
Kmax=max(abs(Ut));
chg_point=find(abs(Ut)==Kmax);%找出最大值对应的序列号
coef=2*exp(-6*Kmax^2/(n^3+n^2));
figure(1)
hold on
plot(x(1:n-1),Ut,'K-','linewidth',1.5);%画出整个曲线的变化趋势
plot([x(chg_point),x(chg_point)],[-Kmax,Kmax],'r--','linewidth',1.5);%画出该竖线即为突变点
Klim=Kmax-Kmax*0.1
plot([x(1),x(n)],[-Klim,-Klim],'b-');
plot([x(1),x(n)],[Klim,Klim],'b-');
end