несоответствие результата adf.test() с наблюдением
Приведенный код выполняет линейную комбинацию двух временный рядов, оценку коинтеграции с помощью функции adf.test() и строит график результата линейной комбинации с учетом коэфф. линейной регрессии. При выполнении примера кода p-value получается равный 0,0151223. График линейной комбинации представлен на прикрепленном изображении.
Вопрос заключается в следующем: график и значение p-value явно не соответствуют друг другу, так как стационарный временной ряд с значением p-value = 0.015 будет приближен к идеальной синусоиде, а на графике линейной комбинации мы видим далеко не идеальную синусоиду. Откуда тогда берется такое маленькое значение p-value?
library(tseries)
library(timeDate)
stock1=get.hist.quote(instrument = "OMC", start = "2005-01-01", end = "2020-10-01", quote = "AdjClose", retclass = "zoo", quiet = TRUE, drop = FALSE)
stock2=get.hist.quote(instrument = "IPG", start = "2005-01-01", end = "2020-10-01", quote = "AdjClose", retclass = "zoo", quiet = TRUE, drop = FALSE)
regression=lm(stock1$Adjusted~stock2$Adjusted)
p.value=adf.test(regression$residuals)$p.value
beta=regression$coefficients
n=beta[2:2]
spread=stock1-n*stock2
plot(spread)
Ответы (2 шт):
Пытаюсь понять ваш ход мысли, но как-то не получается.
Во-первых, значение p-value ничего не может говорить об исходных рядах. p-value - это показатель доверия к нуль-гипотезе, и только. И уж тем более о приближении стационарного ряда к синусоиде он точно говорить не может.
Нулевая гипотеза для ADF-теста это гипотеза о наличии единичного корня, т.е. о нестационарности ряда. Малое значение p-value говорит о том, что ряд можно считать стационарным (отвергнута гипотеза о наличии единичного корня).
В вашем случае вы проверяете стационарность ряда, который построен как регрессионная модель. Причем - линейная!
Ваша переменная spread никакого отношения к регрессионной модели (той самой ADF которой вы считали) отношения не имеет.
Ввиду этого хаоса, как-то интерпретировать ваши результаты (даже не понятно какие) практически невозможно.
Низкий p-value не имеет отношение к идеальной синусоиде. Он только означает что временной ряд стационарный, что говорит о его линейной периодичности. Дополнение: если вы сомневаетесь в стационарности этого временного ряда - воспользуйтесь kpss.test() (в отличии от adf.test() низкий p-value говорит о его НЕстацинорности) Если результаты двух тестов покажут расхождения то проверяйте правильность временного ряда
