figure(3)
subplot(2,1,1)
autocorr(z); % 一 阶 差 分 序 列 z 自 相 关 函 数 图 MA(q), 观 察 系 数 是 否 在 区 间
(-2T^(1/2),-2T^(1/2))内
subplot(2,1,2)
parcorr(z); % 一 阶 差 分 序 列 z 偏 相 关 函 数 图 AR(p) , 观 察 系 数 是 否 在 区 间
(-2T^(1/2),-2T^(1/2))内
%---------------------------------------------------模型定阶或识别-------------------
%扩充 ADF 单位根检验,检验序列 z 平稳性
[H,PValue,TestStat,CriticalValue] = ... %Augmented Dickey-Fuller unit root test based on
AR model withdrift
dfARDTest(z,[],0.05,'T')
%确定 ARMA 模型阶数,选择相关度大、下降幅度大的阶数作测试,在此选择|ACF|>0.05
的阶为 q,|PACF|>0.05 的阶为 p,邻近的阶数也参与测试
u = iddata(z);
test = [];
%p = [0 1 2 3 4 5 6 7 8 9 10 11 12]; %自回归对应 PACF,给定滞后长度上限 p 和 q,一般取为
T/10、ln(T)或 T^(1/2),这里取 T/10=12
%q = [0 1 2 3 4 5 6 7 8 9 10 11 12]; %移动平均对应 ACF
for p = 0:12 %自回归对应 PACF,给定滞后长度上限 p 和 q,一般取为 T/10、ln(T)或
T^(1/2),这里取 T/10=12
for q = 0:12 %移动平均对应 ACF
m = armax(u,[p q])
AIC = aic(m) %armax(p,q),选择对应 FPE 最小,AIC 值最小的模型
%[H, P, Qstat, CV] = lbqtest(z, [p;q], 0.05) %Ljung-Box Q-statistic lack-of-fit hypothesis
test
test = [test;p q AIC];
end
end
for k = 1:size(test,1)
if test(k,3) == min(test(:,3)) %选择 AIC 值最小的模型
p_test = test(k,1)
q_test = test(k,2)
break;
end
end
%------------------------------------------模型参数估计--------------------------
m = armax(u,[p_test q_test]) %armax(p,q),[p_test q_test]对应 AIC 值最小
AIC = aic(m) %选择 AIC 值最小的模型
%----------------------------------------这段拟合程序有问题??????????????
uu = iddata([],idinput(size(z,1)));
评论11