R中许多时间序列之间的协整

时间:2014-02-22 01:16:32

标签: r time-series

我在R中使用以下代码通过两个时间序列之间的ADF-Test获取P值:TS1和TS2:

 m <- lm(TS1 ~ TS2 + 0)
 beta <- coef(m)[1]
 sprd <- TS1 - beta*TS2
 ht <- adf.test(sprd, alternative='stationary', k=0)
 pval <- as.numeric(ht$p.value)     


如果我想获得一个或两个以上时间序列的ADF的P值(即:TS1,TS2和TS3或TS1,TS2,TS3和TS4),那么考虑上述代码的正确语法是什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

将您的实际代码放入功能。您可以使用 combn ()来确定系列对。在所有对的循环之后,使用粘贴来制作回归模型,将其作为参数传递给函数,您需要将p值存储到向量或data.frame中,用于所有对。祝你好运!!

  

T(combn(C( “TS1”, “TS2”, “TS3”, “TS4”),2))

答案 1 :(得分:0)

我想我找到了答案:

m <- lm(pair1 ~ pair2 + pair3)
beta1 <- coef(m)[1]
beta2 <- coef(m)[2]
sprd <- pair1 - beta1*pair2 - beta2*pair3
ht <- adf.test(sprd, alternative='stationary', k=0)