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))