несоответствие результата 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 шт):

Автор решения: passant

Пытаюсь понять ваш ход мысли, но как-то не получается.

Во-первых, значение p-value ничего не может говорить об исходных рядах. p-value - это показатель доверия к нуль-гипотезе, и только. И уж тем более о приближении стационарного ряда к синусоиде он точно говорить не может.

Нулевая гипотеза для ADF-теста это гипотеза о наличии единичного корня, т.е. о нестационарности ряда. Малое значение p-value говорит о том, что ряд можно считать стационарным (отвергнута гипотеза о наличии единичного корня).

В вашем случае вы проверяете стационарность ряда, который построен как регрессионная модель. Причем - линейная!

Ваша переменная spread никакого отношения к регрессионной модели (той самой ADF которой вы считали) отношения не имеет.

Ввиду этого хаоса, как-то интерпретировать ваши результаты (даже не понятно какие) практически невозможно.

→ Ссылка
Автор решения: Артем Мартюхин

Низкий p-value не имеет отношение к идеальной синусоиде. Он только означает что временной ряд стационарный, что говорит о его линейной периодичности. Дополнение: если вы сомневаетесь в стационарности этого временного ряда - воспользуйтесь kpss.test() (в отличии от adf.test() низкий p-value говорит о его НЕстацинорности) Если результаты двух тестов покажут расхождения то проверяйте правильность временного ряда

→ Ссылка