时间序列聚类工作原理

时间序列聚类工具可标识时空立方体中最为相似的位置,并将这些位置划分为不同的聚类,其中每个聚类的成员具有的时间序列特征均相似。可以对时间序列进行聚类,以使其在时间范围内具有相似值、在时间范围内保持比例或者在时间范围内显示相似的平滑周期模式。此工具将时空 NetCDF 立方体作为可使用通过聚合点创建时空立方体通过已定义位置创建时空立方体通过多维栅格图层创建时空立方体工具创建的输入。该工具将生成一个 2D 要素类,其中显示了由其聚类成员资格符号化的立方体中的每个位置以及信息性消息。或者,可以使用图表的输出表启用时间序列弹出窗口参数来创建图表,该图表将显示每个聚类的代表性时间序列以及时空立方体的每个位置的时间序列。

潜在的应用

  • 一位分析人员创建了一个时空立方体来表示多年的 911 呼叫,并且可以将时间序列聚类工具和感兴趣特征选项配合使用以确定具有相似呼叫量的邻域。
  • 大型零售商可能会将此工具与轮廓(相关性)配合使用作为感兴趣特征值以查找具有相似购买模式的商店。例如,此工具可帮助用户区分销售额在圣诞节购物季期间增加而在圣诞节之后减少的商店与没有此模式的商店。具有不同销售模式的商店值得进一步调查。之后,还可以使用此类信息帮助零售商预测需求和确保商店拥有足够的库存。
  • 气象学家可能会将此工具与轮廓(傅立叶)配合使用作为感兴趣特征值,以基于温度随时间波动的频繁程度以及其波动程度的相似程度对地点进行聚类。
  • 人口统计学家可以使用该工具根据时间序列的值和轮廓评估人口增长模式相似的国家/地区。

工具输出

此工具可创建许多输出。通过显示输入时空立方体中按聚类成员关系符号化的每个位置的 2D 要素类,可探索任何空间模式。尽管此工具中使用的聚类算法在执行聚类时不会考虑任何空间关系,但仍可能存在空间模式。此外,在工具的执行期间,会在地理处理窗格的底部写入汇总每个聚类的分析结果和 Mann-Kendall 趋势统计数据消息。可将鼠标悬停在进度条上、单击弹出按钮 弹出 或展开地理处理窗格中的消息部分来访问消息。您还可以使用地理处理历史访问之前运行工具的消息。

时间序列聚类消息窗口

时间序列聚类工具的默认输出是一个包含 CLUSTER_ID 字段的新输出要素类,该字段用于指示每个位置所属的聚类。此输出要素类会添加到内容窗格中,并会向 CLUSTER_ID 字段应用一种独特的颜色渲染方案。CENTER_REP 字段将指示时空立方体中最能代表每个聚类的位置(称为聚类的中心点)。对于每个聚类的中心点,此字段将包含值 1,所有其他位置将包含值 0。

时间序列聚类结果
“时间序列聚类”工具的结果示例

时间序列聚类图表输出

如果创建图表的输出表,则将生成图表。每个聚类的平均时间序列图表可以在每个聚类的每个时间步长处显示分析变量的平均值,时间序列聚类中心点图表将显示每个聚类的中心点时间序列。同时,这些图表可用于可视化总体平均值以及按聚类细分的代表性时间序列。类似于使用平均值和中值来汇总单变量数据集的类别。

时间序列聚类输出图表

您也可以使用启用时间序列弹出窗口参数以在每个输出要素的弹出窗口中创建时间序列图表,其中可显示要素的时间序列以及相同聚类中所有要素的平均时间序列。由此可查看要素的时间序列与相同聚类中其他要素的比较情况,以及聚类表示该要素的程度。

时间序列聚类弹出窗口图表

时间序列之间的相似性

聚类的目标是将时空立方体的位置划分为多个组,其中每个组内位置时间序列彼此之间的相似程度将高于与组外位置时间序列的相似程度。但是,时间序列由时间范围内的许多数字或值组成,因此,尚不清楚两个时间序列相似的含义。对于单个数字,一种非常有用的相似性度量是其值的绝对差:10 与 13 之间的差为 3。您可以说 10 与 13 的相似性高于 10 与 17 的相似性,因为其值的绝对差较小。但是,对于时间序列,相似性却不太明显。例如,时间序列 (5, 8, 11, 7, 6) 与 (4, 9, 13, 4, 9) 的相似性是否高于与 (5, 11, 6, 7, 6) 的相似性? 为了回答类似问题,您必须能够衡量两个时间序列的相似性或差异性。可以通过多种方法来衡量相似性,并且每种方法都取决于您认为重要的时间序列特征。您选择的特征将为相同输出聚类中的位置之间最相似的特征。

感兴趣特征参数可用于指定每个聚类内您希望相似的时间序列的特征。聚类可以基于以下三个特征之一:

值特征

感兴趣特征参数的选项是最简单的选项,可用于聚类随时间具有相似值的时间序列。

此选项使用时间序列中的值之间的欧氏距离来衡量时间序列的相似性(请勿与两个时间序列的位置之间的空间距离相混淆)。例如,时间序列 (1, 5, 2, 3) 和 (3, 1, 3, 5) 之间的差为 5。通过获取时间范围内值的平方差总和的平方根来计算该值:

SquareRoot[ (1-3)2 + (5-1)2 + (2-3)2 + (3-5)2 ] = 5

轮廓(相关性)特征

感兴趣特征参数的轮廓(相关性)选项可用于聚类时间序列,这些时间序列倾向于彼此成比例,并且值同时增大和减小。例如,可以使用此选项基于分店的增长率对其进行聚类。即使其实际值相差非常大,但是如果其遵循类似的增长模式,仍会将其位置聚类在一起。

此选项将基于时间范围内的统计相关性来衡量时间序列的相似性。例如,时间序列 (1, 2, 3, 4, 5) 与时间序列 (10, 20, 30, 40, 50) 的值非常不同,但是其完全相关,并且其差为 0。可以通过 1 减去相关性来计算两个时间序列之间的差。这意味着完全正相关(相关性 = 1)的时间序列的差为 0,不相关(相关性 = 0)的时间序列的差为 1,而完全负相关(相关性 = -1)的时间序列的差为 2。所有其他相关程度将生成介于 0 到 2 之间的值,正相关性越大表明相似度越高。

轮廓(傅立叶)特征

感兴趣特征参数的轮廓(傅立叶)选项是最复杂的选项,可用于对时间范围内值具有相似平滑周期性模式的时间序列进行聚类。这些周期有时称为周期或季,它们代表单个模式稍后在新周期中重复的持续时间。例如,温度遵循一致的年度周期,夏季温度较高,冬季温度较低,此选项可用于查找具有最相似年度温度模式的区域。

(可选)可以使用要忽略的时间序列特征参数忽略这些模式的某些特征。可以忽略这些周期的起始时间,以便仅比较周期的形状和持续时间,并且可以忽略周期内值的大小,以便仅比较周期的起始时间和持续时间。如果忽略上述两个特征,则即使两个周期在不同时间开始并且在周期内具有不同的值,如果其周期的持续时间大致相同,则这两个时间序列也将视为相似。

轮廓(傅立叶)选项使用功能数据分析中的概念来衡量时间序列之间的相似性。每个时间序列将分解为一系列基函数,这些基函数代表该时间序列中最主要的信号。傅立叶基函数系列使用正弦和余弦函数,这些函数以恒定间隔上下振荡来表示时间序列。每个基函数都具有关联的权重,用于衡量该特定信号在时间序列中的分布。例如,温度将显示两个主要的基函数,一个基函数对应白天和夜晚上下振荡,另一个基函数根据一年中的季节上下振荡。对应于其他间隔的基函数将获得较低的权重,因为其在温度的时间序列中并不普遍。例如,每 90 分钟上下振荡一次的基函数将具有较小的关联权重,因为温度不会以该间隔自然变化。要使此选项最有效,时间序列应至少跨越一个周期的持续时间。例如,如果仅在几个月内测量数据,则可能无法捕获温度的主要年度周期。对于时空立方体中的 N 个位置,如果 N 为偶数,则该工具将使用 N-2 个基函数;如果 N 为奇数,则该工具将使用 N-1 个基函数。

通过对每个时间序列相关基函数的权重之间的平方差求和,可以计算两个时间序列之间的差。这意味着两个具有相同主振荡信号的时间序列将视为相似。

按相似性对时间序列进行聚类

尽管某些选项比其他选项更复杂,但是感兴趣特征参数的所有选项将计算单个数值,用于衡量两个时间序列之间的差。借助时间序列之间的相似性定义,可以使用多种聚类算法之一对时空立方体的位置进行聚类。

有关聚类算法的综合性详细信息,请参阅以下其他参考部分。

聚类轮廓(相关性)

如果选择感兴趣特征参数的轮廓(相关性)选项,则时空立方体中每对位置之间的差值将汇总计算为一个相异性矩阵。以下显示了 4 个位置的时间序列的差异性矩阵示例,这 4 个位置标注为 L1、L2、L3 和 L4。通常认为时间序列与其自身完全相同,并且通过矩阵对角线上的零来表示。该矩阵也是对称的,因为两个时间序列之间的差不取决于其顺序:A 和 B 之间的差与 B 和 A 之间的差相同。对于以下相异性矩阵,位置 L1 和 L2 最相似(由值 4 表示),时间序列 L1 和 L4 差异最大(由值 13 表示)。

相异性矩阵
将显示时空立方体位置 1 到 4 的代表性相异性矩阵。位置 1 (L1) 和位置 3 (L3) 之间的相异性为 9。

然后,可以使用“k 中心点”算法(也称为“围绕中心点的划分”(PAM) 算法)对此矩阵进行聚类。该算法将在矩阵内查找聚类,其中聚类的成员将比其他聚类的成员更相似。此算法在本质上是随机的,其工作原理为通过选择随机位置用作每个聚类的代表。这些代表称为中心点,类似于单变量数据集的中值。通过将其他所有位置分配给其中心点最相似的聚类来创建初始聚类。然后,该算法在每个聚类内交换中心点,然后重新评估新聚类内的相似性。如果新聚类比初始聚类更相似,则将交换中心点,然后重复此过程,直到没有任何可增加聚类相似性的交换为止。虽然最终聚类几乎始终具有较高的相似性,但是聚类会有所不同,具体取决于选择作为初始中心点的随机位置。多次运行该工具会产生稍有不同的聚类,因此建议您多次运行该工具以查看可能的不同聚类结果。

如果时空立方体中的位置数量超过 10,000,则该工具将使用名为“大型应用中的聚类方法”(CLARA) 的 k 中心点算法的变体。CLARA 的工作原理为获取时间序列的随机样本并执行 k 中心点算法。然后,将随机样本中未选择的所有位置分配给聚类,该聚类的中心点与未采样位置的时间序列最相似。随机样本的大小是位置数的平方根(向下舍入)或 40 + 2k(其中 k 为聚类数)两个值中的较大值。

聚类值和轮廓(傅立叶)

如果选择感兴趣特征参数的轮廓(傅立叶)选项,则可以使用 K 均值算法对时空立方体的位置进行聚类。该算法在概念上类似于 k 中心点算法,但是执行该算法无需计算每对位置之间的差值。相反,该算法将首先随机选择位置作为每个聚类的代表。然后,通过将所有其余位置分配给其代表最类似于该位置的聚类来生成初始聚类。然后,通过计算每个聚类内时间序列的平均值来计算每个聚类的新代表。对于,此新代表是聚类中每个时间序列的每个时间步长的平均值。对于轮廓(傅立叶),此新代表是每个基函数的权重平均值。与 k 中心点算法不同,这些新代表通常不会对应于时空立方体中的任何单个位置。每个时间序列将再次分配给其代表最相似的聚类,然后计算新的平均代表。此过程将不断重复,直到算法收敛为止,这意味着在重复之后,聚类将不会改变。此时,继续此过程将导致相同的聚类不断重复。这些是该工具返回的聚类。

与以上 k 中心点算法一样,K 均值算法可以根据初始随机聚类代表提供不同的聚类结果。建议您多次运行该工具,以查看不同的可能聚类结果。

最佳聚类数

如果将聚类数参数留空,则此工具将计算最佳聚类数,并将在消息窗口中报告该值。确定聚类数是聚类工作流中最困难的方面之一,并且此工具将通过尝试不同的聚类数,并标识可生成最有效聚类的聚类数来标识最佳数量。

该工具将尝试 2 至 10 个聚类之间的每个值,并在聚类算法中使用随机起始值将每个值重复 10 次。如果轮廓(相关性)使用的点数超过 10,000,则 CLARA 算法将对 9 个可能的聚类数中的每个聚类运行 20 次。对于这 90(或 180)个聚类结果(针对 9 个可能的聚类数,每个聚类数将生成 10 或 20 个结果)中的每个结果,通过将全球中心点的平方误差除以聚类中心点的平方误差并使用更大数量的聚类进行校正来计算伪 F 统计量。这可以解释为组间相似性与组内相似性的比率。伪 F 统计量的值越大,表示时间序列与其聚类的代表性时间序列越相似,而不是与整个数据集的代表越相似,由此指示聚类有效。有关详细信息以及用于计算伪 F 统计量的公式,请参阅多元聚类的工作原理

确定最佳聚类数是该工具计算量最大的部分,因此,如果已知所需聚类数,建议您提供一个值。

其他资源

有关时间序列聚类理论的详细信息,请参阅以下内容:

  • Pablo Montero, José A. Vilar (2014). TSclust: An R Package for Time Series Clustering. Journal of Statistical Software. 62(1), 1-43. URL https://www.jstatsoft.org/v62/i01/.

有关函数型数据分析的详细信息,请参阅以下内容:

  • Ramsay, J. O., Silverman, B.W. (2006). Functional Data Analysis. DOI: 10.1007/b98888

有关“k 中心点”的详细信息,请参阅以下内容:

  • Kaufman, L., and P. J. Rousseau (2009). Finding groups in data: an introduction to cluster analysis (Vol. 344). John Wiley & Sons

有关 k 均值的详细信息,请参阅以下内容:

  • Lloyd, Stuart (1982). Least squares quantization in PCM. IEEE transactions on information theory 28.2: 129-137.
  • Arthur, David, and Sergei Vassilvitskii (2006). k-means++: The advantages of careful seeding. Stanford.