首页 > 解决方案 > 评估时间序列之间的同步性

问题描述

我想评估两个时间序列之间的同步性(即它们是否随着时间的推移具有相同的演变?)。我正在使用Python。以下是我拥有的时间序列的示例:

在此处输入图像描述

在此处输入图像描述

第一个图显示了具有非常相似进化(同步)​​的时间序列,而第二个图显示了视觉上没有类似进化的时间序列。

我考虑过动态时间扭曲来评估时间序列之间的相似性,但问题是我们获得了时间序列之间的距离,这很难解释。我想要的是一个标准化的数字(例如,介于 -1 和 1 之间的相关性),它可以显示系列是否同步(即它们同时增加或减少)。这样我可以更容易地比较几个时间序列的演变,即使它们的全局距离(即平均值)不同,如第一个和第二个图所示。动态时间扭曲可以有这样的数字吗?还是另一种方法更合适?

标签: pythontime-seriescomparedtw

解决方案


您首先可能想定义“随着时间的推移相同的演变”的含义。DTW 考虑了时间序列和距离之间的滞后。根据您是否对数据进行规范化/缩放,第一个图表的 DTW 可能大于第二个图表。这只是意味着两者可以更好地对齐,损失更小,同时也可以及时来回移动。然后再次可以比较DTW,因为0距离意味着完美对齐,而任何其他值都意味着更大的差异。

您也可以尝试从另一个预测(回归)。再说一次,我不明白为什么简单的相关性不能回答你想知道的问题。皮尔逊相关可以标准化这些值,因此图表中显示的两者之间的距离应该无关紧要。

由于您使用的是 python,所以我想分享一个我在比较 DTW、Pearson 相关性和其他量化时间序列数据同步性的方法时写的教程:https ://towardsdatascience.com/four-ways-to -quantify-synchrony-between-time-series-data-b99136c4a9c9希望这有帮助!


推荐阅读