R:为什么这个奇怪的ccf结果与xts数据

时间:2012-08-08 04:13:08

标签: r correlation xts

我看到here在将(单列)XTS对象传递给drop(互相关)函数时应该使用ccf。 (样本数据非常大,所以我把它in a gist

library(xts)
gist="https://gist.github.com/raw/3291932"
tmp1=dget(file.path(gist,"e620647218626929b4ee370a05aa7748b2f9a32b/tmp1.txt"))
tmp2=dget(file.path(gist,"49b732db3eafa52f96006e3b1bb0be28380f5df0/tmp2.txt"))
ccf(drop(tmp1),drop(tmp2)) #Weird?

我预计在滞后= 0附近有一个小峰值,其中大部分是噪音。相反,我有一条直线:

ccf on all 400 bars

那是400巴。我在数千条酒吧的完整数据上得到了同样的线条。但如果我只使用那些数据的尾端100条,我会得到更接近我预期的东西:(50条看起来更合理)

ccf for just the last 100 bars

如果这是一个ccf错误,我使用xts对象的方式有问题,我对ccf正在做什么的误解,或者我神奇地发现了公式,我有点难过打败股市...

1 个答案:

答案 0 :(得分:4)

您的结果并不令人惊讶,因为您正在查看股票价格之间的交叉关联。价格通常在几个滞后时具有较高的串行自相关性。

acf(tmp1)
acf(tmp2)

大多数相关性分析是在返回上完成的,这会产生更像你期望的东西:

ccf(drop(diff(tmp1,na.pad=FALSE)),drop(diff(tmp2,na.pad=FALSE)))