adf.test, возвращающий p > 0.99 с xts, но возвращающий p < 0.01 с coredata(xts)

Вот вывод:

library(tseries) # for adf.test function

adf.test(data)
Augmented Dickey-Fuller Test

data:  data
Dickey-Fuller = 11.1451, Lag order = 16, p-value = 0.99
alternative hypothesis: stationary

Warning message:
In adf.test(spread.princomp) : p-value greater than printed p-value

adf.test(coredata(data))
Augmented Dickey-Fuller Test

data:  coredata(data)
Dickey-Fuller = -4.031, Lag order = 16, p-value = 0.01
alternative hypothesis: stationary

Warning message:
In adf.test(coredata(spread.princomp)) :
p-value smaller than printed p-value

Базовые данные - это числовой вектор. Люди, кажется, успешно применяют adf.test с xts, поэтому я не уверен, что делаю неправильно. Пожалуйста, дайте мне знать, какую другую информацию я могу предоставить.

1 ответ

Решение

?adf.test Говорит, что x (первый аргумент) должен быть числовым вектором или временным рядом. Под "временным рядом" это означает ts Классифицированный объект, а не любой объект класса временных рядов. Вы должны конвертировать ваш объект XTS в ts объект перед вызовом adf.test,

Например:

library(tseries)
library(xts)
data(sample_matrix)
x <- as.xts(sample_matrix[,1])
adf.test(as.ts(x))
Другие вопросы по тегам