至少据我所知,不存在对此的“一般方法”。此外,无论如何您都在尝试最小化距离度量。例如,在 DTW 论文的祖父 Sakoe & Chiba (1978)中使用作为两个特征向量之间差异的度量。||ai−bi||
正如您正确识别的那样,您需要(通常)具有相同数量的点才能开箱即用。我建议在曲线上使用 lowess() 平滑器/插值器,以使它们首先具有相同的大小。这是“曲线统计”的非常标准的东西。您可以在Chiou 等人中看到一个示例应用程序。(2003);作者在这项工作中并不关心 DTW,但它是如何处理大小不等的读数的一个很好的例子。
此外,正如您所说,“幅度”是一个问题。老实说,这有点开放。您可以尝试像Zhang 和 Mueller (2011)提出的曲线下面积方法来解决这个问题,但实际上是为了时间扭曲甚至超范数归一化(即将替换为可以像Tang and Mueller (2009)的这篇论文中那样做。我会遵循第二个,但无论如何你也注意到样本的归一化是必要性。f(x)f(x)supy|f(x)|
根据数据的性质,您可以找到更多特定于应用的文献。我个人认为关于目标成对翘曲函数的最小化方法是最直观的。所以要最小化的目标函数是:
,尽管它是不可思议的,但整个事情实际上非常简单:您尝试找到扭曲函数,该函数 g 最小化扭曲查询曲线与参考曲线(项gCλ(Yi,Yk,g)=E{∫T(Yi(g(t))−Yk(t))2+λ(g(t)−t)2dt|Yi,Yk}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)对该问题的早期处理),属于功能数据分析技术的一般范畴。
(如果我能在网上找到原始论文,链接指向那里;否则链接指向一个通用数字图书馆。几乎所有提到的论文都可以免费找到草稿版本。我删除了我原来的评论被本帖取代。)