如何将两个时间序列与间隙和不同的时间基准相关联?

机器算法验证 时间序列 相关性 不均匀间隔时间序列
2022-03-04 20:36:46

我在 StackOverflow 上问过这个问题,建议在这里问。


我有两个时间序列的 3D 加速度计数据,它们具有不同的时基(时钟在不同的时间开始,在采样时间有一些非常轻微的蠕变),并且包含许多不同大小的间隙(由于与写入分离相关的延迟)闪存设备)。

我使用的加速度计是便宜的GCDC X250-2我以最高增益运行加速度计,因此数据具有显着的本底噪声。

每个时间序列有大约 200 万个数据点(超过一小时,每秒 512 个样本),并包含大约 500 个感兴趣的事件,其中一个典型事件跨越 100-150 个样本(每个样本 200-300 毫秒)。其中许多事件都受到闪存写入期间数据中断的影响。

所以,数据不是原始的,甚至不是很漂亮。但我的眼球检查显示它清楚地包含我感兴趣的信息。(如果需要,我可以发布情节。)

加速度计处于相似的环境中,但只是适度耦合,这意味着我可以通过肉眼判断每个加速度计的哪些事件匹配,但到目前为止我在软件中没有成功。由于物理限制,这些设备也安装在不同的方向,轴不匹配,但它们尽可能接近正交。因此,例如,对于 3 轴加速度计 A 和 B,+Ax 映射到 -By(上下),+Az 映射到 -Bx(左右),+Ay 映射到 -Bz(前后) .

我最初的目标是关联垂直轴上的冲击事件,尽管我最终希望 a) 自动发现轴映射,b) 关联映射 ace 上的活动,以及 c) 提取两个加速度计之间的行为差​​异(例如扭转或弯曲)。

时间序列数据的性质使 Python 的 numpy.correlate() 无法使用。我也看过 R 的 Zoo 包,但没有取得任何进展。我已经向信号分析的不同领域寻求帮助,但我没有取得任何进展。

有人对我能做什么或我应该研究的方法有任何线索吗?

2011 年 2 月 28 日更新:在此处添加了一些显示数据示例的图。

1个回答

问题涉及计算两个不规则采样的时间序列(一维随机过程)之间的相关性,并使用它来找到它们最大相关的时间偏移(它们的“相位差”)。

这个问题通常不会在时间序列分析中得到解决,因为假定时间序列数据是系统地收集的(以固定的时间间隔)。它是地质统计学的一个领域,涉及时间序列的多维概括。原型地质统计数据集包括对不规则间隔位置的地质样本的测量。

在不规则间距的情况下,位置对之间的距离会有所不同:没有两个距离可能相同。地统计学用经验变异函数克服了这个问题这会计算的“典型”(通常是平均值或中位数)值——“半方差”——其中表示点之间的距离被限制在称为“滞后”的区间内。如果我们假设过程是平稳的并且具有协方差,则半方差的期望等于最大协方差(等于任何)减去之间的协方差(z(p)z(q))2/2z(p)ppqZVar(Z(p))pZ(p)这种分箱到滞后处理不规则间距问题。Z(q)

当在每个点进行一对有序的测量之间的经验交叉变异函数,从而估计任何滞后的协方差. 您需要交叉变异函数的一维版本。Rgstatsgeostat等将估计交叉变异函数不要担心你的数据是一维的;如果软件不能直接使用它们,只需引入一个恒定的第二坐标:这将使它们看起来是二维的。(z(p),w(p))zw

有了 200 万个点,您应该能够检测到与平稳性的微小偏差。两个时间序列之间的相位差也可能随时间而变化。通过为整个时间段内间隔的不同窗口分别计算交叉变异函数来解决这个问题。

@cardinal 已经在评论中提出了大部分这些观点。此回复的主要贡献是指出使用空间统计软件包为您完成工作,并使用地统计技术来分析这些数据。就计算效率而言,请注意不需要完整的卷积(交叉变异函数):您只需要其接近相位差的值。这使得工作量为,而不是,其中是要计算的滞后数,因此即使使用开箱即用的软件也可能是可行的。如果没有,直接卷积算法很容易实现。O(nk)O(n2)k