预测非负稀疏时间序列数据

数据挖掘 时间序列 预报
2021-10-14 07:31:14

我有一个时间序列数据集(每日频率),表示随着时间的推移向客户销售产品。销售额表示如下:

[0,0,0,0,24,0,0,0,0,0,0,0,4,0,0,0,0,17,0,0,0,0,9,0,...]

其中每个数字代表该产品一天的销售额。

问题是时间序列预测方法(ARMA、HoltWinters)对于“连续”和“平滑”数据效果很好,但在这种情况下并没有产生好的结果。

我想对该系列进行预测,注意两点:(1)确保非负值和(2)稀疏/非连续数据。任何人都知道如何解决这个问题?什么方法/技术?

谢谢!

2个回答

我在这里有两个想法,也许它们会有所帮助。

想法 1:事件之间的模型时间

您可能会认为您的数据是由两个过程生成的:第一个是时间间隔分布,第二个是购买金额分布。因此,要对数据进行建模,您可以在数据集中的非零值上创建一个分布(高斯?),在零序列的长度上创建另一个分布(泊松?)。

想法 2:模拟客户库存

即使您的数据集中的销售事件很少,您也可以花一点时间来建立一个模型,说明客户购买的原因。在一种可能的模型中,客户的库存会随着时间的推移而减少,当他们的库存超过某个最低阈值时,他们会进行购买。您可以使用您的销售数据来拟合斜率(对于线性收缩)或比率(对于指数收缩)以及阈值。

这可能会变得任意复杂,因为在此模型下的客户可能在不同时间有不同的阈值或收缩率……但对于初学者来说,这可能是一种了解事物的有用方法。

在这种类型的数据中,信息来自两个地方

  1. 销售时间间隔Ti: 时间间隔Salei1Salei
  2. 金额SaleiYi

之前的答案类似,我建议从检查任何潜在模式的时间间隔开始。二是检查销售额之间的关系YiYi1Ti,Ti1. 在最一般的情况下,这两个应该是相关的。基于此,您可以决定是独立建模还是联合建模。一种常用的模型是状态空间模型。这里的基本思想是将稀疏的 ts 分解为不稀疏且更易于建模的子组件。

一种通用模型可以是:

Ti=g(Ti1,Yi1)+ei,

一世=F(一世-1,一世)+H一世