至少据我所知,没有“通用方法”。此外,无论如何,您都试图最小化距离度量。例如,在DTW论文的祖父中,Sakoe&Chiba(1978)使用作为两个特征向量之间差异的度量。| |一个一世-b一世| |
正确识别后,通常需要有相同数量的点才能正常工作。我建议在您的曲线上使用lowess()平滑器/插值器,以使其首先具有相同的大小。这是“曲线统计”的相当标准的东西。您可以在Chiou等人的文章中看到一个示例应用程序。(2003);作者并不在乎这项工作中的DTW,但如何处理大小不等的读数是一个很好的范例。
另外,正如您所说,“振幅”是一个问题。说实话,这有点开放。您可以尝试像Zhang和Mueller(2011)提出的那样的曲线下面积方法来解决这个问题,但实际上是为了时间扭曲甚至规范范数归一化(即用替换。可以按照Tang和Mueller(2009)的论文中的方法进行,我将紧随,但无论如何,因为您还注意到样本的归一化是必要性。F(x )F(x )小号üpÿ| F(x )|
根据数据的性质,您可以找到更多特定于应用程序的文献。我个人发现,相对于目标成对翘曲函数最小化的方法是最直观的。因此要最小化的目标函数为:
,尽管很复杂,但实际上整个过程非常简单:您试图找到翘曲函数,该函数使翘曲查询曲线与参考曲线(项GCλ(ÿ一世,ÿķ,g ^)= E{∫Ť(ÿ一世(克(吨))-ÿķ(吨))2+ λ(g(t )- t)2dt |ÿ一世,ÿķ}GYi(g(t))Yk(t)Yi(g(t))−Yk(t))对您通过该扭曲施加的时间失真(术语)进行某种归一化处理。这就是MATLAB包PACE所实现的。我知道JO Ramsay等人存在R包fda。这可能也有帮助,但是我还没有亲自使用它(令人讨厌的是,该程序包方法的标准参考在许多情况下是Ramsay和Silverman的出色著作《Functional Data Analysis(2006)2nd ed。》,您必须搜寻400页的书可以帮助您找到所需的内容;至少无论如何,它都是不错的阅读方法)g(t)−t
您在统计学文献中描述的问题被广泛称为“ 曲线配准 ”(例如,对该问题的早期处理,请参见Gasser和Kneip(1995)),并且属于功能数据分析技术的一般范畴。
(如果我可以在线找到原始论文,则链接会直接链接到该文档;否则,链接会指向一个通用的数字图书馆。几乎所有提到的论文都可以免费起草。我删除了原评论,因为它是被此职位取代。)