第 1 步:收集和聚合数据 - 使用 Amazon Forecast 的时间序列预测原理

第 1 步:收集和聚合数据

下图显示了预测问题的心理模型。目标是预测未来的时间序列 z_t,使用尽可能多的相关信息使预测尽可能准确。因此,第一步也是最重要的一步是收集尽可能多的正确数据。


      显示时间序列 z_t 以及相关特征或协变量(x_t)和多个预测的图表

时间序列 z_t 以及相关特征或协变量(x_t)和多个预测

在上图中,垂直线的右侧显示了多个预测。这些预测是概率预测分布的样本(或者相反,可以用来表示概率预测)。

零售企业需要记录的关键信息是:

  • 交易销售数据 – 例如,库存单位(SKU, stock keeping unit)、地点、时间戳和销售单位。

  • SKU 商品详情数据 – 商品的元数据。示例包括颜色、部门、尺寸等。

  • 价格数据 – 带有时间戳的每件商品的价格时间序列。

  • 促销信息数据 – 不同类型的促销,要么针对一组商品(类别),要么针对带有时间戳的个别商品。

  • 库存信息数据 – 在每个时间单位内,SKU 是否有货或可购买与 SKU 是否缺货的信息。

  • 位置数据 – 商品或销售在给定时间点的位置可以表示为字符串 location_idstore_id 或实际地理位置。地理位置可以是国家代码加上五位数的邮政编码或 latitude_longitude 坐标。位置被视为交易销售的一个“维度”。

Amazon Forecast 中,要预测的数量的历史数据称为目标时间序列(TTS, Target Time Series)。对于零售企业而言,TTS 是交易销售数据。与每笔销售交易完全同时已知的其他历史数据称为相关时间序列(RTS, Related Time Series)。对于零售企业而言,RTS 将包括价格、促销和库存变量。

请注意,库存信息很重要,因为这个问题关注的是预测需求,而不是销售,但企业仅记录销售额。当 SKU 缺货时,销售数量低于潜在需求,因此了解和记录此类缺货事件何时发生非常重要。

其他需要考虑的数据集包括网页访问量、搜索词详情、社交媒体和天气信息。拥有过去未来的数据通常很重要,这样才能在模型中使用这些数据。这是许多预测模型和回测中的一个要求(如第 4 步:评估预测部分所述)。

对于某些预测问题,原始数据的频率与预测问题的频率自然匹配。示例包括服务器容量的请求,该请求是按分钟采样的,此时您要按分钟频率进行预测。

数据通常以更精细的频率记录,或者只是在某个时间范围内的任意时间戳记录,但预测问题的粒度更粗。这种情况在零售案例研究中很常见,在零售案例研究中,销售数据通常记录为交易数据;例如,该格式由一个时间戳组成,其细粒度显示了销售发生的时间。在预测使用案例中,可能不需要这种低粒度,将这些数据聚合为每小时或每天的销售额可能更合适。在这里,聚合水平对应于下游问题;例如,库存管理或资源规划。

示例

在下图中,左图显示了可作为逗号分隔值(CSV, comma separated value)文件输入到 Amazon Forecast 的原始客户销售数据示例。在此示例中,销售数据是在更精细的每日时间网格上定义的,问题是预测未来更粗的时间网格上的每周需求。Amazon Forecast 在create_predictor API 调用中汇总给定一周的每日值。

结果是将原始数据转换为一组格式良好的时间序列,每周频率固定。右图使用默认的求和聚合方法说明了目标时间序列上的这种聚合。其他聚合方法包括求平均值、最大值、最小值或选择单个点(例如,第一个点)。必须选择聚合粒度和方法,使其与数据的业务使用案例最匹配。在此示例中,聚合值与每周聚合值保持一致。其他聚合方法可以由用户使用 create_predictor API 的 FeaturizationConfig 参数的 FeaturizationMethodParameters 键进行设置。

显示将原始销售数据作为事件聚合到等间隔时间序列的图表

将原始销售数据作为事件(左)聚合到等间隔时间序列(右)