我有以下格式的股票价格数据,我正在尝试测试协整点差的所有可能排列。
我目前的数据格式:
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 - 未整合
我认为这是一个相当简单的循环,但我不是百分百确定如何做到这一点。
以下是一段可能有用的代码:
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
}