clc;clear;
series=[10.93 9.34 11.00 10.98 11.29 11.84...
10.62 10.90 12.77 12.15 12.24 12.30...
9.91 10.24 10.41 10.47 11.51 12.45...
11.32 11.73 12.61 13.04 13.14 14.15...
10.85 10.30 12.74 12.73 13.08 14.27...
13.18 13.75 14.42 13.95 14.53 14.91...
12.94 11.43 14.36 14.57 14.25 15.86...
15.18 15.94 16.54 16.90 16.88 18.10...
13.70 10.88 15.79 16.36 17.22 17.75...
16.62 16.96 17.69 16.40 17.51 19.73...
13.73 12.85 15.68 16.79 17.59 18.51...
16.80 17.27 20.83 19.18 21.40 23.76...
15.73 13.14 17.24 17.93 18.82 19.12...
17.70 19.87 21.17 21.44 22.14 22.45...
17.88 16.00 20.29 21.03 21.78 22.51...
21.55 22.01 22.68 23.02 24.55 24.67...
19.61 17.15 22.46 23.19 23.40 26.26...
22.91 24.03 23.94 24.12 25.87 28.25];
t=1:numel(series)-12;
%plot(t,series);%可见数据有明显的周期性,做一次差分Y(t)=Z(t)-Z(t-12)及均值化
series1=series(13:numel(series));
series1=series1-series(1:numel(series)-12);
ma=mean(series1);
series1=series1-ma;
Series=iddata(series1');%转换为matlab数据类型iddata
%%%%%%%%%%%%%%%%Box-Jenkins方法建模过程%%%%%%%%%%%%%%%%%%%%%%%
%subplot(2,2,1);
%plot(t,series1);%从图中可以看出周期性明显被消除掉且均值为0
%%%%%%%%%%%%%%%%Box-Jenkins方法建模过程%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%Pandit-Wu方法建模过程%%%%%%%%%%%%%%%%%%%%%%%
%%%%一、模型定阶(残差图定阶法)
for n=1:6
m=armax(Series,[2*n,2*n-1]);
e=resid(m,Series);
residual(n)=sum((e.outputdata).^2);%模型残差
estx(n)=sum((e.outputdata).^2)/((96-2*n)-(2*n+2*n-1));sum((e.outputdata).^2);%每种AR(k)模型残差方差
end;residual(1:2)
%subplot(2,2,2);
%plot(estx);%残差方差图
%xlabel('n');ylabel('残差方差');
%%%%很明显可以看出ARMA(4,3)及ARMA(2,1)残差方差差别很小
%%%%模型定阶F检验法
F=((residual(1)-residual(2))/4)/(residual(2)/(96-2*2-2*2+1));
if F<finv(1-0.05,4,120)
%disp('ARMA(2,1)与ARMA(4,3)无显著差异!');
else %disp('ARMA(2,1)与ARMA(4,3)有显著差异!')
end;
m1=armax(Series,[2*1,2*1-1]);p=predict(m1,Series,1);p.outputdata
m2=armax(Series,[2*2,2*2-1]);
%%%%输出适合的AR(2)模型
m=ar(Series,2,'ls');
e=resid(m,Series);
estx=sum((e.outputdata).^2)/(96-2*2);
%%%%%%%%%%%%%%%%Pandit-Wu方法建模过程%%%%%%%%%%%%%%%%%%%%%%%
- 1
- 2
- 3
前往页