Цикл ADF Cointegration PValue на нескольких временных рядах

У меня есть данные о ценах на акции в следующем формате, и я пытаюсь проверить все возможные перестановки для коинтегрированных спредов.

Мой текущий формат данных:

AAPL GOOG IBM… 415,89 898,39 191,76 … 414,15 899,45 187,55 … 417,27 895,62 190,99 …

Я хотел бы использовать R для вычисления значения P коинтеграции (используя ADF/Johansen или что-либо еще) для всех перестановок временных рядов тикера 'и отображать вывод с парами, ранжированными по P-значению.

Например:

Пара: P-значение: AAPL - GOOG .0196 - Коинтегрированный IBM - GOOG .0477 - Коинтегрированный AAPL - IBM .0679 - Не коинтегрированный

Я думаю, что это довольно простой цикл, но я не уверен на 100%, как это сделать.

Вот фрагмент кода, который может помочь:

library(tseries)
cointegration<-function(x,y)
{
   vals<-data.frame(x,y)
   beta<-coef(lm(vals[,2]~vals[,1]+0,data=vals))[1]
   (adf.test(vals[,2]-beta*vals[,1], alternative="stationary", k=0))$p.value
}

0 ответов

Другие вопросы по тегам