[R] How to implement an iterative unit root test
Gabor Grothendieck
ggrothendieck at gmail.com
Sat Apr 8 21:53:53 CEST 2006
That's a warning, not an error. I get it or don't get it with and
without rollFun in the same circumstances. If you have a situation
where that is not so please provide it in a reproducible way.
> library(fMultivar)
> set.seed(1)
> x <- rnorm(25)
> # these give no warning
> 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
> adf.test(x[1:15])$statistic
Dickey-Fuller
-3.185471
> # these give warning
> rollFun(x, 10, FUN = function(x) adf.test(x)$p.statistic)
NULL
Warning messages:
1: p-value smaller than printed p-value in: adf.test(x)
2: p-value smaller than printed p-value in: adf.test(x)
3: p-value smaller than printed p-value in: adf.test(x)
4: p-value smaller than printed p-value in: adf.test(x)
5: p-value greater than printed p-value in: adf.test(x)
6: p-value greater than printed p-value in: adf.test(x)
7: p-value greater than printed p-value in: adf.test(x)
> # this gives warning
> adf.test(x[1:10])$statistic
Dickey-Fuller
-5.316689
Warning message:
p-value smaller than printed p-value in: adf.test(x[1:10])
On 4/8/06, Bernd Dittmann <herrdittmann at yahoo.co.uk> wrote:
> Thank you for the suggestion.
>
> I ran it and oddly enough I am getting contradicting results:
>
>
> > rollFun(x[1:100], 10, FUN = function(x) adfTest(x)$statistic)
> NULL
> Warning messages:
> 1: p-value smaller than printed p-value in: adfTest(x)
> .......
> .......
> .......
>
> These error messages appear for each single calculation.
>
>
> However, performing the unit root test for that very interval (although not
> repetitive) the results are:
>
> > adfTest(x[1:100])
>
> Title:
> Augmented Dickey-Fuller Test
>
> Test Results:
> PARAMETER:
> Lag Order: 1
> STATISTIC:
> Dickey-Fuller: -0.1627
> P VALUE:
> 0.5612
>
> Description:
> Sat Apr 08 19:11:40 2006
>
>
> I checked with the help pages of the adfTest and fMultivar, but can simply
> not figure out why I am receiving these error messages above.
>
>
> How could I fix this?
>
> Many thanks!
>
> Sincerely,
>
> Bernd Dittmann
>
> Gabor Grothendieck schrieb:
> 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