Date: Nov 9, 2011 7:24 AM Author: Tikkuhirvi Tietavainen Subject: Re: Predicting ARMA model: where does the delay come from? "Aino" <aino.tietavainen@removeThis.helsinki.fi> wrote in message <j90j6b$l0v$1@newscl01ah.mathworks.com>...

> Rune Allnor <allnor@tele.ntnu.no> wrote in message <6234421e-b5bd-4ecd-b9b3-b9f0b9638587@h34g2000yqd.googlegroups.com>...

> > On 4 Nov, 12:00, "Aino" <aino.tietavai...@removeThis.helsinki.fi>

> > wrote:

> > > 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:end-251);

> > > y=y-mean(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.OutputData-yp.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

> >

> > I don't have the toolbox or functions you use in your

> > simulation, but I see that you in the second example

> > use a noiseless sinusoidal, whereas you in the first

> > example use a random signal.

> >

> > From a prediction POV that makes all the difference:

> >

> > 1) Sinusoidals are perfectly predictable at the outset.

> > 2) There is no noise to messthings up.

> >

> > So the second example is so perfect that it is totally

> > useless for anything other than a test of concept or

> > implementation.

> >

> > The results from your first example are far more

> > representative for how the method will work with

> > random signals.

> >

> > Rune

>

> Thank you for your quick reply.

>

> The sine wave is indeed almost perfectly predicted, and obviously the noisy signal cannot be so perfectly predicted, but what I cannot understand is that why is there a _delay_ in the prediction with the noisy signal? In other words, if I move the prediction signal by 25 steps and calculate the prediction error, sqrt(sum((data.OutputData(1:end-25+1)-yp.OutputData(25:end)).^2)), it is a lot smaller smaller than without moving it, sqrt(sum((data.OutputData(25:end)-yp.OutputData(25:end)).^2)). With the sine wave this is not true.

>

> Should I for example use the 'predict' with the time-reversed signal as well and calculate the average of the two predictions or should I just calculate the prediction error as above or what should I do?

>

> ~Aino

I still haven't figured this one out, but I have a little question about the model. What exactly is the loss function that the armax function gives out? How is it calculated?

Thanks,

Aino