了解时间序列分析中的异常值

时间序列数据中的异常值是与时间序列中其他值的模式和趋势显著不同的值。例如,在假期前后的大量在线购物或暴雨期间的大量交通事故可能会被视为其时间序列中的异常值。简单数据输入错误(例如省略数字的小数)是异常值的另一个常见来源。识别时间序列预测中的异常值至关重要,原因在于异常值会影响用于预测未来值的预测模型。在时间序列中,即使是某个位置存在很少的异常值也会降低预测的准确性和可靠性。具有异常值的位置(尤其是在时间序列开始或结束时的异常值)可能会产生误导性的预测。识别这些位置可帮助您确定每个位置的预测值的可靠性。

您可以使用曲线拟合预测指数平滑预测基于森林的预测工具在时空立方体的每个位置识别异常值,方法为指定异常值选项参数的识别异常值选项。

可视化和浏览异常值

使用识别异常值选项运行一种预测工具后,系统将通过输出要素符号系统、时间序列图表、输出时空立方体的 2D 或 3D 可视化以及地理处理消息为您提供有关检测到的异常值的信息。

弹出图表

单击地图上的输出要素会在弹出窗口窗格中显示弹出图表,此图表可显示时间序列和预测模型,其中已识别的异常值显示为较大的点。下图显示了已识别出一个异常值的要素的时间序列:

弹出窗口的时间序列异常值图表

弹出图表可显示已识别出异常值的时间序列。

可视化时空立方体

可以在 2D 和 3D 模式下可视化并浏览时空立方体中的异常值,方法为使用在 2D 模式下显示时空立方体在 3D 模式下显示时空立方体工具(使用显示主题参数的时间序列异常值结果选项)。

对于 2D 要素输出,输出要素按照每个位置的异常值数量表示,并包含显示时间序列和已识别异常值的相同弹出图表。

对于 3D 要素输出,输出要素将以 3D 场景显示识别出的异常值的位置和时间。将所含值被识别为时间序列异常值的任何时空立方图格标记为高于拟合值低于拟合值,具体取决于该值是高于还是低于预测模型的拟合值。高于拟合值的异常值以紫色显示,低于拟合值的异常值以绿色显示。未识别为异常值的时空立方图格被标记为非异常值,以浅灰色显示。

3D 要素显示高于和低于拟合值的异常值

在 3D 要素中显示高于和低于拟合值的异常值。

3D 要素还包括两个图表。在 3D 时间序列中进行可视化图表显示跨时空立方体的时间步长的时间序列平均值的线图。该图表也是由显示主题参数的预测结果选项创建而来,并且不包含与异常值检测有关的信息。

第二张图表是不同时间高于或低于拟合值的异常值计数图表。此图表是堆叠条形图,可显示时空立方体每个时间步长上高于和低于拟合值的异常值总数。这样,您可以确定出现多个异常值的重要日期,并可以查看这些日期上的值是异常高还是异常低。

高于和低于拟合值的异常值条形图

堆叠条形图可显示不同时间高于和低于拟合值的异常值计数。

地理处理消息

地理处理消息包括时间序列异常值汇总部分。本部分的第一部分显示了至少包含一个异常值的位置的数量和百分比。这可以使您快速了解预测模型与整体时间序列的拟合程度。第二部分显示每个位置和每个时间步长的异常值数量汇总统计数据(最小值、平均值和最大值)。这使您可以调查在各个位置和各个时间步长上出现异常值的频率。此部分还显示包含最大数量异常值的时间步长。您可以使用该数据来识别出现许多异常值的重要日期。

汇总已识别异常值的消息

地理处理消息中显示已识别异常值的汇总信息。

上下文和全局异常值

该工具可以检测到几种类型的时间序列异常值。虽然所有类型的检测方式相同,但了解不同的类型有助于弄清楚为什么某些时间步被标识为异常值,而其他时间步不会。

最简单的类型是全局异常值,其原始值明显大于或小于其余的值。这类异常值通常对应于异常或特殊事件,例如假期。以下图表显示了全局异常值。已识别的异常值明显高于时间序列中其余数据的值,因此被识别为异常值。

全局时间序列异常值

但是,并非只有时间序列中的最大值或最小值才能声明为异常值。系统会根据上下文识别出一些异常值,这些值明显高于或低于针对时间序列的模式和趋势所期望的值。预测模型整合了这些模式和趋势,并用作识别上下文异常值的基准。例如,考虑年平均温度的时间序列。由于过去几十年来平均温度升高,因此拟合的温度预测模型也将随着时间的推移而增加,以反映这种升高现象。这意味着,如果 2020 年的温度与 1950 年被视为典型且非异常值的温度值相同,则很可能被视为异常值。换句话说,按照 2020 年的标准,1950 年的典型温度将被视为低温。

以下图表显示了同时包含上下文异常值和全局异常值的时间序列。此上下文异常值不是时间序列中的最小值,但其被识别为低值异常值,原因在于其低于橙色预测模型的值,并且差值最大。

上下文和全局时间序列异常值

值是否被识别为异常值还取决于预测模型与时间序列的拟合程度。如果预测模型整体上与时间序列数据紧密拟合,那么即使值与预测模型略有偏差,仍然会被识别为异常值。同样,如果预测模型与时间序列数据的拟合较差,那么即使值与预测模型存在较大偏差,也可能不会被识别为异常值。

以下图表显示了一些被识别为异常值的值。这些值似乎并未远远偏离橙色预测模型,但其偏差明显大于时间序列中的其余值。

模型拟合的异常值

时间序列异常值的广义 ESD 测试

广义极值标准化偏差 (ESD) 测试用于测试时空立方体的每个位置是否存在异常值。该测试不是一项测试,而是一系列测试(每项测试都称为 Grubbs 测试),每项测试都在指定的置信度下检查特定数量的异常值。第一项测试检查数据集中是否恰好存在一个异常值。第二项测试检查数据集中是否恰好存在两个异常值。第三项测试检查数据集中是否恰好存在三个异常值。该测试一直持续到最大异常值数参数的值(默认值为时间步长数的 5%,四舍五入)。然后,该工具返回与具有统计显著性的最大异常值数量关联的异常值。例如,使用最多三个异常值,如果对一个异常值的测试在统计上较为显著,对两个异常值的测试不显著,对三个异常值的测试较为显著,则该工具将返回三个异常值的结果。同样,如果一个异常值较为显著,两个异常值较为显著,三个异常值不显著,则该工具将返回两个异常值的结果。

对于某个时间序列,如果 T 与时间步长拟合,则测试按以下方式进行,其中 i 的范围为 1 到最大异常值数量:

  1. 计算每个时间步长 t 的残差,方法为从原始值中减去预测模型的值:计算残差
  2. 计算残差的平均值和标准差。
  3. 通过将平均值的最大绝对差除以标准差来计算测试统计数据:计算测试统计数据
  4. 将测试统计数据与以下临界值进行比较:计算临界值,其中 t α,T-i-1 是具有 T-i+1 自由度的 t 分布在 (1 - α / (2(T-i+1))) 置信度下的双向临界值,α 是显著性水平(由置信度确定)。
  5. 如果测试统计数据大于临界值,则针对 i 异常值的测试具有统计显著性。
  6. 移除与最大绝对残差相关的值,并在之前未移除的所有时间步长上重复步骤 2 至步骤 5,同时将 i 增加 1。随着值在每次重复操作中的移除,残差的平均值和标准差也会发生改变。重新计算平均值和标准差可校正异常值对预测模型的影响。
  7. 返回与具有统计显著性的最大异常值数量关联的异常值。

此测试在时空立方体的每个位置独立执行,因此不同的位置可能会识别出不同数量的异常值。每个位置的异常值数量可以在输出要素的 Number of Model Fit Outliers 字段中查看。

最佳做法和限制

识别时间序列异常值时,需要考虑几个重要的注意事项和限制:

  • 如果您使用基于森林的预测工具,建议您为时间步长窗口参数提供一个值,而不是将该参数留空,并在每个位置估算一个不同的时间步长窗口。对于每个位置,森林模型都使用第一个时间步长窗口中的值来训练预测模型,并且仅在剩余时间步长中检测异常值。如果不同的位置排除了训练森林的不同数量的时间步长,则汇总统计数据(例如,每个时间步长或每个位置的异常值的平均数量、最小数量和最大数量)可能会产生误导。
  • 广义 ESD 测试使用近似值来估算临界值。对于至少具有 25 个时间步长的时间序列,这些近似值最为准确。
  • 使用不同的预测模型和预测工具可能会将不同的时间步长识别为异常值。建议仅针对最符合时间序列值的预测模型检测异常值。

其他资源

有关广义 ESD 测试和 Grubbs 测试的详细信息,请参阅以下参考资料:

  • Grubbs, F. (1950). "Sample Criteria for Testing Outlying Observations." Annals of Mathematical Statistics 21(1):27–58. https://doi.org/10.1214/aoms/1177729885
  • Rosner, B. (1983). "Percentage Points for a Generalized ESD Many-Outlier Procedure." Technometrics 25(2):165-172.

相关主题