Re: [R] Help on function adf.test

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Tue 29 Aug 2006 - 02:10:35 EST

Put your time series into a ts or zoo object. Now using EuStockMarkets which is builtin data set in R. (You might want to use align = "right" in rollapply.)

library(tseries)
library(zoo)
eu91 <- window(EuStockMarkets, end = 1992) # use portion for test data eu91.p.value <- rollapply(eu91, 61, function(x) adf.test(x)$p.value)

On 8/28/06, Spiros Mesomeris <mesomeris@yahoo.co.uk> wrote:
> Hello everybody,
>
> I've got a matrix called EUROPEDATA and I want to calculate the adf test statistic (part of the tseries package) on a rolling basis for window my.win on each column; i.e. each column of EUROPEDATA represents a particular variable; for the first column I calculate the adf test statistic for window my.win = 60 for example, roll forward one observation, calculate the adf again, and so on, until the end of the first column is reached and then I jump to the second column etc. The code for doing this is given below:
>
> adfroll <- sapply(1:(ncol(EUROPEDATA)), function(i, my.data, my.win)
> {
> sss <- sapply(1:(nrow(my.data)-my.win), function (j, my.data, my.win)
> { my.data <- as.matrix(my.data)
> ans <- adf.test(na.omit(my.data[j:(j+my.win)]))
> return(ans$p.value)
> },my.data=my.data[,i],my.win=my.win)
> },my.data=EUROPEDATA,my.win=60,simplify=T)
>
> The problem is that the adf test does not calculate this way. There is an error saying:
>
> "Error in embed(y, k) : wrong embedding dimension"
>
> This error is generated from within the adf.test function. The embed function is part of the stats package, which I load before doing the adf.test.
>
> I would be very obliged if anybody were to explain to me why this happens and how I can correct it/ estimate what I want in a different way that will not invoke this error.
>
> P.S. the function works fine if the adf.test on each column of the dataset is calculated, that is, without the rolling window for each column:
>
>
> summaryadf <- sapply(1:ncol(EUROPEDATA),function(i,my.data)
> {
> tt <- adf.test(na.omit(my.data[,i]))
> return(tt$p.value)
> },my.data=EUROPEDATA)
>
> Please note that the same error is generated with the pp.test function of the tseries package
>
> Thanks in advance,
> Spyros
>
>
> ---------------------------------
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@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
> and provide commented, minimal, self-contained, reproducible code.
>



R-help@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 and provide commented, minimal, self-contained, reproducible code. Received on Tue Aug 29 03:29:44 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Tue 29 Aug 2006 - 04:24:57 EST.

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