
Predicting ARMA model: where does the delay come from?
Posted:
Nov 4, 2011 7:00 AM


Hello all!
I am trying to model my time series with ARMA model and then predict the signal with 'predict'. Here's an example:
close all;clear all;clc; k=25;%prediction step mAR=10;%AR order mMA=10;%MA order
%First signal: y=smooth(rand(1500,1),100); y=y(250:end251); y=ymean(y); data=iddata(y,[],0.01); m=armax(data,[mAR,mMA]); yp=predict(m,data,k); figure;plot(y);hold on;plot(yp.OutputData,'r')
%Second signal: y=sin(1:0.01:10)'; data=iddata(y,[],0.01); m=armax(data,[mAR,mMA]); yp=predict(m,data,k); figure;plot(y);hold on;plot(yp.OutputData,'r')
The prediction signal (yp.OutputData) seems to have no delay with the second signal (sine wave), but compared to the first signal it is delayed about the prediction step. The signals I use look more like the first one, so this certainly will affect my prediction error, something like sqrt(sum((data.OutputDatayp.OutputData).^2)).
Where does this delay come from and how can I get rid of it? Why does it only affect the first signal?
Thank you, Aino

