在时间序列中应用相关性和 DTW 有什么区别

机器算法验证 时间序列 相关性 聚类
2022-03-25 11:57:06

我有一个来自数据库的金融时间序列,并打算根据它们的相似性对时间序列进行聚类。根据它们的成对相关性对它们进行聚类并使用 DTW 对它们进行聚类会有什么不同。两者之间推荐哪个选项

1个回答

动态时间扭曲 (DTW) 和相关性捕获两个时间序列之间相似性的非常不同的方面。选择哪一个取决于您对什么感兴趣 - 您没有在问题中提供的信息。

但是,我将举一个示例,可能有助于为您澄清差异。假设您认为以下两个时间序列相等:

a = [1,1,2,3,4,3,2,1,1,1,1,1,1,1,1,1,1]    
b = [1,1,1,1,1,1,1,1,1,1,1,2,3,4,3,2,1]

可视化

对于这个例子,DTW 距离 - 在这里计算- 返回:DTWDistance(a,b) = 0,因为 DTW 距离允许时间上的偏移,并且有效地比较了时间序列的形状,而对拉伸的重要性不高。而这里的相关性返回例如np.corrcoeff(a,b) = -0.33471074

我们希望将相似的对象聚集在一起。因此,我们使用相异性度量,它产生 0,如果两个对象相等,则值越高,它们越不同。这种相异性度量的最相关属性将是度量要求,例如Wikipedia中的度量要求。对于相关性 - 假设您的意思是皮尔逊相关系数 - 这些要求没有得到满足。因此,我建议使用 DTW。然而,在某些应用中,基于相关性的聚类可能会产生很好的结果。

最好的方法:尝试两者并比较结果。然后选择符合您期望的那个。