找出互相关为abs的负数(最大ccf())

时间:2014-01-07 14:17:56

标签: r

我有两个时间序列,我使用ccf来查找它们之间的互相关。 ccf(ts1,ts2)列出了所有时间滞后的互相关。然后我使用绝对最大值函数来帮助我找出绝对最大相关性Finding lag at which cross correlation is maximum ccf( )

然而,我发现返回值是相关的绝对值,但我确实想得到相关的原始值,这意味着我想知道相关是负还是正。我该怎么办?

1 个答案:

答案 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的符号。那是你在找什么?