次の形式の株価データがあり、共和分スプレッドのすべての可能な順列をテストしようとしています。
私の現在のデータ形式:
AAPL GOOG IBM … 415.89 898.39 191.76 … 414.15 899.45 187.55 … 417.27 895.62 190.99 …</p>
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
}