[R] Basic R timeseries data manipulation
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Nov 20 19:33:13 CET 2006
On Mon, 20 Nov 2006, Benjamin Dickgiesser wrote:
> To elaborate a bit, I fitted a AR(2)-Garch(1,1) model to the Dow Jones
> log returns and am now trying to calculate the variance suggested by
> the model.
>
> #Get log returns
> rt <- diff(log(getStock(1)$value))
> #Fit Garch(1,1) and AR(2)
> fit = garchFit(~arma(2,0), ~garch(1,1), series = rt)
>
> #Coefficient(s):
> # mu ar1 ar2 omega alpha1
> beta1
> # 3.75101e-04 9.61877e-02 -2.48071e-02 7.86872e-07 7.37382e-02
> 9.20691e-01
>
> Now I was trying to something in the lines of:
> n <- length(rt) - 2
> at <- vector(length = n)
That line does nothing useful: 'at' is discarded at the next.
> at <- rt - (3.75101e-04 + 9.61877e-02 rt[-1] - 2.48071e-02 rt[-2])
> var <- 7.86872e-07 + 7.37382e-02 sigma[-1] + 9.20691e-01 rt[-1]
>
> which doesn't work..
Since in R you write a*b and not a b, you will get a syntax error. Beyond
that, for a time series rt[-1] may not be what you expect (it is not a
time series, for example), rt[-2] is not a lagged version of the
original series, and sigma is undefined.
I suggest you explore filter(), lag() and ts.intersect().
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list