我有两个时间序列,我使用ccf来查找它们之间的互相关。 ccf(ts1,ts2)列出了所有时间滞后的互相关。然后我使用绝对最大值函数来帮助我找出绝对最大相关性Finding lag at which cross correlation is maximum ccf( )
然而,我发现返回值是相关的绝对值,但我确实想得到相关的原始值,这意味着我想知道相关是负还是正。我该怎么办?
答案 0 :(得分:0)
从链接中引用该功能:
Find_Abs_Max_CCF<- function(a,b)
{
d <- ccf(a, b, plot = FALSE, lag.max = length(a)-5)
cor = d$acf[,,1]
abscor = abs(d$acf[,,1])
lag = d$lag[,,1]
res = data.frame(cor,lag)
absres = data.frame(abscor,lag)
absres_max = res[which.max(absres$abscor),]
return(absres_max)
}
因此,maxind <- which.max(absres$abscor)
将返回abscor
的最大值的索引(位置)。然后sign(d$acf[,,1][maxind])
会在取绝对值之前给出原始值的代数符号。碰巧的是,这是(或者应该是,如果我正确回溯)报告值absres_max
的符号。那是你在找什么?