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 at 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 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
> and provide commented, minimal, self-contained, reproducible code.
>