Cómo utilizar matlab para determinar el orden del modelo ARMA de series temporales
Adopte si está satisfecho
Lo siguiente es ajustar y predecir la secuencia después de la diferencia, y encontrar el mejor orden
z=[DX; ceros (12,1)];
z=iddata(z);
test=[];
para p=1:12
para q=1:12
m=armax(z(1:200),[p q]);
AIC=aic(m);
prueba=[prueba; p q AIC]
fin
fin
para k=1: tamaño(prueba, 1)
si prueba(k, 3)==min(prueba(:, 3))
p_test=prueba(k, 1);
q_test=prueba(k , 2);
rotura;
fin
fin
Montaje
m1=armax(z( 1:200), [p_test q_test]);
figura(5);
e = resid(m1, z); ;
set(gca,'Xlim',[0 ls]);
figura(6);
subtrama(2, 1, 1)
autocorr(e.outputdata)
subplot(2, 1, 2)
parcorr(e.outputdata)
set(gca ,'Xlim',[0 ls]);
Proceso de predicción
pr=predict(m1, z, 12);
po=pr.outputdata ;
figura(7)
plot(po, 'r')
espera
plot(y, 'b' );
set(gca,'Xlim',[0 ls]);