[R-SIG-Finance] Using adf.test to test time series stationarity of stock price
Adrian Trapletti
adrian at trapletti.org
Mon May 6 14:50:41 CEST 2013
Matthieu,
Thank you for the suggestion.We are going to revise the code.
Best regards
Adrian
On 05/04/2013 05:38 PM, Matthieu Stigler wrote:
> Hi Adrian!
>
> Well spotted! Indeed, the issue comes from the fact that diff.xts
> keeps the first NA (as has na.pad=TRUE), while diff.zoo does not
> (na.pad=FALSE), as well as na.ts ...
>
> A simple solution seems to be to add then:
> diff(y, na.pad=FALSE)
> or simply:
> y<- y[!is.na <http://is.na>(y)]
>
> which seems to lead to correct results in both cases, but I haven't
> tested thoroughly...
>
> Best
>
>
> 2013/5/4 Adrian Trapletti <adrian at trapletti.org
> <mailto:adrian at trapletti.org>>
>
> Hi Matthieu
>
> For me it looks like adf.test does not correctly handle xts and/or
> zoo inputs due to the subsetting code:
>
> > adf.test(stock2[,1])
>
> Augmented Dickey-Fuller Test
>
> data: stock2[, 1]
> Dickey-Fuller = 2.7174, Lag order = 12, p-value = 0.99
> alternative hypothesis: stationary
>
> Warning message:
> In adf.test(stock2[, 1]) : p-value greater than printed p-value
> > adf.test(unclass(stock2[,1]))
>
> Augmented Dickey-Fuller Test
>
> data: unclass(stock2[, 1])
> Dickey-Fuller = -2.4579, Lag order = 12, p-value = 0.3845
> alternative hypothesis: stationary
>
> At the time when adf.test was written neither xts nor zoo existed.
> A quick fix is to revise the documentation of adf.test: "x: a
> numeric vector."
>
> Best regards
> Adrian
>
> Date: Fri, 3 May 2013 10:25:31 +0200
> From: Matthieu Stigler<matthieu.stigler at gmail.com
> <mailto:matthieu.stigler at gmail.com>>
> To: "Brian G. Peterson"<brian at braverock.com
> <mailto:brian at braverock.com>>,yitaoz at stanford.edu
> <mailto:yitaoz at stanford.edu>,
> Kurt.Hornik at r-project.org <mailto:Kurt.Hornik at r-project.org>
> Cc:"r-sig-finance at r-project.org
> <mailto:r-sig-finance at r-project.org>"
> <r-sig-finance at r-project.org
> <mailto:r-sig-finance at r-project.org>>
> Subject: Re: [R-SIG-Finance] Using adf.test to test time series
> stationarity of stock price
> Message-ID:
>
> <CAEYvig+hrDqKGXaetr=H=vy1FYsXiuB60hSkZoDt6L3L31od8Q at mail.gmail.com
> <mailto:vy1FYsXiuB60hSkZoDt6L3L31od8Q at mail.gmail.com>>
> Content-Type: text/plain
>
> Hi
>
> With our stated background in stats, we should have realised
> that the
> result you obtain is indeed surprising, since your t-stat is
> large, but
> positive! A positive t-stat implies actually that your rho is
> bigger than
> 1... So in this case, you will not reject the alternative of
> stationarity,
> but that of explosivity, try:
>
> adf.test(stock2[,1], alternative="explosive")
>
> That said, we should have also realised that results in
> adf.test seem to be
> incorrect, since they do not correspond to the ones in:
> library(urca)
> ur.df(stock2[,1], lags=12, type="trend")
> # or the corresponding "ADF" regression from tsDyn:
> library(tsDyn)
> ar_ts <- linear(stock2[,1], m=12, include="both", type="ADF")
> summary(ar_ts)$coef["phi.1",]
>
> Both urca and tsDyn agree closely on the t-stat, at -2.4578550
> for urca,
> and -2.466884912 <tel:2.466884912> for tsDyn (differences come
> from the way of counting
> degrees of freedom, urca discards the initial values, while
> tsDyn does not,
> as in ar()). Looking closer at the code of adf.test(), it
> looks like the
> regression is \Delta y_t = const + trend + y_t while I would
> have expected
> a y_{t-1}. I guess code should be corrected as:
> xt1 <- x[(k-1):(n-1)]
> instead of
> xt1 <- x[k:n]
>
> once this done, adf.test does correspond to the others. And
> now Brian's
> point that prices are usually non-stationary holds.
>
> I am ccing the maintainer of tseries on this.
>
> Best
>
> Matthieu
>
>
>
>
> 2013/4/22 Brian G. Peterson<brian at braverock.com
> <mailto:brian at braverock.com>>
>
> On 04/21/2013 06:28 PM, Yitao Zhang wrote:
>
> Hey guys,
>
> I'm trying to do a augmented Dickey-Fuller test to
> test the stationarity
> of a stock price.
>
> With your stated economics background, one would assume
> that you'd realize
> that price is almost never stationary.
>
> Perhaps try on returns?
>
> --
> Brian G. Peterson
> http://braverock.com/brian/
> Ph: 773-459-4973 <tel:773-459-4973>
> IM: bgpbraverock
>
>
> ______________________________**_________________
> R-SIG-Finance at r-project.org
> <mailto:R-SIG-Finance at r-project.org> mailing list
> https://stat.ethz.ch/mailman/**listinfo/r-sig-finance<https://stat.ethz.ch/mailman/listinfo/r-sig-finance>
> -- Subscriber-posting only. If you want to post, subscribe
> first.
> -- Also note that this is not the r-help list where
> general R questions
> should go.
>
>
> --
> Dr. Adrian Trapletti
> Steinstrasse 9b
> CH-8610 Uster
> Switzerland
>
> Phone : +41 (0) 44 9945630 <tel:%2B41%20%280%29%2044%209945630>
> Mobile : +41 (0) 79 1037131 <tel:%2B41%20%280%29%2079%201037131>
>
> Email : adrian at trapletti.org <mailto:adrian at trapletti.org>
> WWW : www.trapletti.org <http://www.trapletti.org>
>
> _______________________________________________
> R-SIG-Finance at r-project.org <mailto:R-SIG-Finance at r-project.org>
> mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R
> questions should go.
>
>
--
Dr. Adrian Trapletti
Steinstrasse 9b
CH-8610 Uster
Switzerland
Phone : +41 (0) 44 9945630
Mobile : +41 (0) 79 1037131
Email : adrian at trapletti.org
WWW : www.trapletti.org
More information about the R-SIG-Finance
mailing list