The Math Forum

Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Math Forum » Discussions » Software » comp.soft-sys.matlab

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Predicting ARMA model: where does the delay come from?
Replies: 3   Last Post: Nov 9, 2011 7:24 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Tikkuhirvi Tietavainen

Posts: 99
Registered: 4/22/08
Re: Predicting ARMA model: where does the delay come from?
Posted: Nov 4, 2011 7:44 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Rune Allnor <> wrote in message <>...
> On 4 Nov, 12:00, "Aino" <>
> 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?


Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum at NCTM 1994-2018. All Rights Reserved.