predict a MA timeseries

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

predict a MA timeseries

user84
Hi,
could anyone tell me how predict() predicts the new value(s), of a MA(1) arima-modell.
its really easy to make it with an AR(1), knowing the last term, but how can i or R know the last error?

It would also help if somebody could tell me how to find the "open" source of the function predict().

Thanks and sorry for my poor english.
Reply | Threaded
Open this post in threaded view
|

Re: predict a MA timeseries

Rolf Turner-3
On 24/05/11 01:24, user84 wrote:
> Hi,
> could anyone tell me how predict() predicts the new value(s), of a MA(1)
> arima-modell.
> its really easy to make it with an AR(1), knowing the last term, but how can
> i or R know the last error?

I think what you're asking here is this:

     Suppose X_t = a_t + theta * a_{t-1} where {a_t} is ``white noise''.
     If you have observed X_1, ..., X_n, the ``prediction'' of X_{n+1}
     is theta * a_n, since E(a_{n+1}) = 0.

     But how do you get a_n?  Recursively.

     Set a_0 = 0 (its expected value).  This gives a_1 = X_1.
     Then you can get a_2 = X_2 - theta*a_1.

     Repeat until you get up to a_n.

This is all a bit naive, and there are traps and problems that
are avoided by more sophisticated procedures, I believed.

A simple answer to the ``how to'' bit, is:  Use predict.Arima().

If you want to know what's actually going on in the software that
makes this prediction .... that's a bit harder.  I think that reading a
basic introductory time series book might help.  Jonathan Cryer's
``Time Series Analysis'' (out of print but available from ABE Books)
is pretty good, and quite gentle.  I suspect that the newer ``Time
Series Analysis with Applications in R'' by Cryer and Chan would also
be good, but I haven't read it.  For something a bit deeper and
more mathematical, Brockwell and Davis (``Time Series:  Theory
and Methods'') is to my mind the gold standard.
> It would also help if somebody could tell me how to find the "open" source
> of the function predict().

Note that ``predict()'' is generic, with many ``methods''.  You are
really interested in the predict.Arima() method as I indicated above.

You can get started by executing:

     stats:::predict.Arima

But that will lead you to KalmanForecast() which will lead you into C code.
You can look at *that* by downloading the source of R from CRAN and
digging around in the appropriate "src" subdirectories --- but figuring
out what's actually going on is likely to be a ***very*** daunting task.
I wouldn't want to try it myself!
> Thanks and sorry for my poor english.

No need to apologize.  Your English is better than my Deutsch.
(The ``.at'' address *does* mean ``Austria'', nicht wahr?)

HTH

     cheers,

         Rolf Turner

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.