[R] How to implement an iterative unit root test

Gabor Grothendieck ggrothendieck at gmail.com
Sat Apr 8 17:16:24 CEST 2006


Try this:

> library(fMultivar)
> set.seed(1)
> x <- rnorm(25)
> rollFun(x, 15, FUN = function(x) adf.test(x)$p.value)
 [1] 0.1207730 0.3995849 0.3261577 0.4733004 0.5776586 0.6400228 0.6758550
 [8] 0.6897812 0.3792858 0.6587171 0.5675147
> rollFun(x, 15, FUN = function(x) adf.test(x)$statistic)
 [1] -3.185471 -2.453590 -2.646336 -2.260086 -1.986146 -1.822440 -1.728381
 [8] -1.691824 -2.506875 -1.773368 -2.012774

Also, rapply in the zoo package and running in the gtools package are two other
rolling routines.

On 4/8/06, Bernd Dittmann <herrdittmann at yahoo.co.uk> wrote:
> Thank you for your suggestion, Andy.
>
> Luckily, the fMultivar package has already implemented such a "rolling"
> function: "rollFun".
>
> Thus I tried the following:
>
>
> myfunction <- function(x, n = 5)
> {
>    rollFun(x = x, n = n, FUN = adfTest)
> }
>
>
> This however does not return the tau values (or alternatively, the
> p.values) I am looking for.
> How do I need to define the function FUN to obtain these values?
>
>
> Many thanks!
>
> Sincerely,
>
> Bernd
>
>
>
> Andy Bunn schrieb:
> > Does this get you started?
> >
> > library(tseries)
> > ?adf.test
> > foo <- matrix(rnorm(1000),ncol=10,nrow=100)
> > bar <- apply(foo,2,adf.test)
> > sapply(bar, "[[", "statistic")
> > sapply(bar, "[[", "p.value")
> >
> >
> > HTH, Andy
> >
> > -----Original Message-----
> > From: r-help-bounces at stat.math.ethz.ch
> > [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Bernd Dittmann
> > Sent: Wednesday, April 05, 2006 8:58 PM
> > To: r-help at stat.math.ethz.ch
> > Subject: [R] How to implement an iterative unit root test
> >
> >
> > Hello,
> >
> > How can an interative unit root test be implemented in R?
> > More specifically, given a time series, I wish to perform the Dickey
> > Fuller Test on a daily basis for say the last 100 observations. It would
> > be interative in the sense that this test would be repeated each day for
> > the last 100 observations.
> > Given the daily Dickey Fuller estimates of delta for the autoregressive
> > process
> >
> > d(Y(t)) = delta * Y(t-1) + u(t)
> >
> > , the significance of delta would be computed. If possible, I would like
> > to extract that value and record it in a table, that is a table
> > containing the tau-values of a each day's calculations.
> >
> >
> > How can such a test be done in R? More specifically, how can it be
> > programmed to iteratively perform the test and also how to extract the
> > t-values on a daily basis?
> >
> >
> > Thank you.
> >
> > Sincerely,
> >
> > Bernd Dittmann
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide!
> > http://www.R-project.org/posting-guide.html
> >
> >
> >
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>




More information about the R-help mailing list