R 函数用于搜索两个数据集之间的最佳相关性



我已经在这个上面工作了一段时间,我发现很难相信这不是一个内置函数,或者有人以前没有处理过这个问题。

我想运行的函数应该比较数据帧的两列,直到它们"找到最佳相关性。我使用的数据来自两种科学仪器,它们的采样/平均时间不同,这就是我想转移数据的原因。

仅与一个元素关联的日期将被调整。

if correlation of data + x seconds is > that current correlation 
  increase current
  note increasing
else if correlation of data - x seconds ix > than current correlation
  decrease current date/time
  not decreasing
end if
while correlation of data + x seconds is > than current correlation 
  increase current date/time by x seconds
end while
while correlation of data - seconds is > than current correlation
  decrease current date/time by x seconds
end while

如果有一个功能可以做得很好,如果没有,我将提供额外的信息+代码

这就是我当前的代码结构。日期是POXISct 'GMT',Dusttrak是数字,CO是数字,颜色是我从时间中创建的数字,给我一个彩色的时间序列

我目前正在使用 rcorr 来查找相关性,但日期一直是一个问题,所以我需要从日期转换为数字,然后再转换回来。

让我们使用合成数据,因为您只粘贴了图像:

set.seed(100)
x = rnorm(100)
y = rnorm(100)

现在我们使用CCF:

z <- ccf(x,y, plot = F) #don't want plot

z 是一个包含我们结果的列表,我们可以对它进行一些子集化以获得最大延迟:

bestval = which.max(z$acf)
z$lag[bestval] #our lag
16

对于时间序列,它变得有点困难 - 如果您的行中没有统一的时间步长,则可能需要进行一些规范化。

最新更新