# Re: [R] predict a MA timeseries

From: Rolf Turner <rolf.turner_at_xtra.co.nz>
Date: Tue, 24 May 2011 10:03:29 +1200

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

R-help_at_r-project.org 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. Received on Mon 23 May 2011 - 22:07:43 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 23 May 2011 - 22:40:09 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.