我有两个时间序列,我正在使用ccf来找出它们之间的交叉相关。ccf(ts1,ts2)列出了所有时间滞后的交叉相关。然后我使用绝对最大值函数来帮助我找出绝对最大相关性,Finding lag at which cross correlation is maximum ccf( )
然而,我发现返回值是相关性的绝对值,但我确实想要获得相关性的原始值,这意味着我想知道相关性是负还是正。我能做什么?
发布于 2014-01-08 12:44:37
从链接QUoting函数:
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
的符号。这就是你要找的吗?
https://stackoverflow.com/questions/20973941
复制