clc, clear,clc;
b=[8394
8122
13300
18784
24173
32332
41704
47269
43192
50034
48523
46865
51097
58129
66122
71920
95538
96960
93066
90171
90002
];
a=b';
Rt=tiedrank(a) %求原始时间序列的秩
t0=2001;
n=length(a); t=t0:t0-1+n;
Qs=1-6/(n*(n^2-1))*sum((t-Rt).^2) %计算Qs的值
T=Qs*sqrt(n-2)/sqrt(1-Qs^2) %计算T统计量的值
t_0=tinv(0.975,n-2) %计算上alpha/2分位数
b=diff(a); %求原始时间序列的一阶差分
m=ar(b,2,'ls') %利用最小二乘法估计模型的参数
bhat=predict(m,b') %求预测值,第二个参数必须为列向量
bhat(end+1)=forecast(m,b',1) %计算1个预测值,第二个参数必须为列向量
ahat=[a(1), a+bhat'] %求原始数据的预测值,并计算t=n+1的预测值
bhat(end+2)=forecast(m,b',1) %计算2个预测值,第二个参数必须为列向量???????????
ahat=[a(1), a+bhat'] %求原始数据的预测值,并计算t=n+2的预测值??????
t2=t0:t0-1+n+1;
plot(t2,ahat)
hold on
delta=abs((ahat(1:end-1)-a)./a) %计算原始数据预测的相对误差
delta2=delta+a;
plot(t,delta2,'x')
legend('预测值','原始数据');
title('人均水资源量');
ahat(n+1)
%writematrix(ahat, 'anli15_1.xlsx')
%writematrix(delta,'anli15_1.xlsx', 'Sheet', 1, 'Range', 'A3')