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<[email protected]>
To: "Brian G. Peterson"<[email protected]>,[email protected],
        [email protected]
Cc:"[email protected]"  <[email protected]>
Subject: Re: [R-SIG-Finance] Using adf.test to test time series
        stationarity of stock price
Message-ID:
        <CAEYvig+hrDqKGXaetr=H=vy1fysxiub60hskzodt6l3l31o...@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 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<[email protected]>

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
IM: bgpbraverock


______________________________**_________________
[email protected]  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
Mobile : +41 (0) 79 1037131

Email : [email protected]
WWW : www.trapletti.org

_______________________________________________
[email protected] 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.

Reply via email to