我在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),那么考虑上述代码的正确语法是什么?
谢谢!
答案 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)