预测服务中使用的统计技术
预测服务目前支持Prophet,并且已经证明对于大多数数据高效可靠的工作。 Prophet是Meta开发的一个广泛使用的开源预测软件包。 它将数据分解为趋势、季节性和事件组件。 Prophet模型具有高效、扩展性好的特点,可以应用于许多预测领域。 此外,该模型对离群值和缺失数据有很好的抗噪能力。
未来有基于启发式的模型选择方案,例如在线近似高斯过程用于流数据,或者当用户指定最佳预测精度并且允许较长的等待时间时,选择NeuralProphet。
当数据点过多时,服务会自动缩减数据,以确保响应时间。 目标响应时间设置为约3秒。 目前,当数据点数超过5500时,时间序列数据会根据数据长度进行自适应缩减采样。 由于将输出频率转换回原始数据频率,所以自适应采样过程不会影响用户体验。
当有多年的数据可用时,会考虑假期的影响。 目前,考虑的假日包括:
- 马丁·路德·金日
- 总统日
- 阵亡将士纪念日
- 7 月 4 日
- 感恩节
- 黑色星期五
- 网购星期一
- 圣诞节
该服务还可以执行简单的异常(离群值)删除,例如通过删除六西格玛范围以外的数据点。 默认情况下不启用此功能,因为假定所有数据点都有效。 异常可能会对模型质量产生负面影响,即使先知模型通常能够抵御异常值。
该服务接受用户指定的季节性设置,例如每日和每周的季节性设置。 否则,模型会自动选择季节性。 对于不同的数据粒度,该服务使用不同长度的历史数据来构建预测模型。 例如,对于每日数据,它会提取超过一年的数据(如果可用)。 对于每小时数据,它会收集八周的数据(如果可用)。 提取数据可能非常耗时,并且有时会导致等待时间较长。
不同时间粒度所需的历史数据:
每个指定时间的预测结果都带有一个预测区间(由下限和上限定义),该预测区间预期包含未来观察值的95%的时间,通常称为置信区间。 该服务对未来的预测范围没有限制。 但是,随着日期进一步推移,预测的不确定性会增加,这反映在较长的预测间隔中。
该服务对用户数据不做任何假设。 例如,服务不假定数据为非负数。 这意味着,如果数据表现出强烈的下降趋势,即使所有观测数据点都是非负数,预测值和/或它们的范围可以是负数。
引用
- Taylor、Sean J.和Benjamin Letham: 大规模预测。 美国统计师72.1 (2018): 37-45。
- 特里贝、奥斯卡等: Neuralprophet:可大规模解释的预测。 arXiv预印arXiv:2111.15397(2021)。
- Zhang和Arbor: 时间序列异常检测。 美国专利申请#18/057883。