关于如何使用反事实预测法估算零售业以往店内促销活动成本效益的指南。.
在为期 3 个月的实际项目中,我们开发了一个反事实预测模型(首先使用 Prophet,然后使用 XGBoost)并将其产业化,以评估一家连锁店过去店内促销活动的绩效,帮助需求规划人员选择促销活动。.
这个模型经过训练后,会预测过去没有促销活动时的假设销售额(称为基线)。实际促销销售额与基线之间的差额就是增量销售额,我们称之为提升。.
得益于手工制作的时间特征,我们的预测准确率达到了近 90%。.
业务背景
在规划未来的促销活动时,需求规划人员需要决定哪些产品组合将通过某种促销机制(如“-15%”、“买二送一 ”等)进行打折。
这些都是困难的决定,因为
对于大多数零售公司来说 活动选择 是由 根据他们的业务知识 和 过去的晋升业绩. .然而,“性能 过去的晋升 ”是 难以估计. .的确,促销活动确实会增加销售额(在大多数情况下),但如果我们不知道没有促销活动时的销售额是多少,又如何估算其效率或投资回报率(ROI)呢?这种没有促销活动的销售额假设值可以称为 底线. .换句话说,就是要能够估算出 增量销售 (或 振作)的促销活动,对应于 实际销售额, 减去基线.
为了回答这个问题,我们开发了一种工具,能够估算出以往活动的促销销售额提升,准确率接近 90%。.
这项任务颇具挑战性,因为我们的目标是预测 假设 在另一种情况下的销售额(这里指的是如果某产品没有开展促销活动)。这可以称为“......"。“反事实预测”.本文主要基于我们为一家法国连锁店所做项目的经验。.
其目的是介绍我们所使用的方法,并给出实施反事实预测解决方案时的提示和注意事项(见下文)。data 准备, 建模),解释 评价 最后讨论 极限 和 下一步 这种方法。.
什么是反事实预测,为什么难以预测?
反事实预测是以某种形式预测某种事物的过程: 会怎样 X 如果没有 Y.在我们的使用案例中、, X 销售和 Y 将是一次宣传活动。.
实际上有 多个字段 可以应用这一流程的地方: 缺货 (估计缺货造成的短缺)、任何 持续时间不长的特别活动 (Covid: does not work!),以便有足够的 data 来估计该反事实。.
晋升问题可以从 3 个角度来解决(按难度由高到低排序):
在本文中、, 我们将重点关注第一步 因为这是我们项目的目标。不过,我们将在下面的章节中就如何解决后两个问题提出一些见解。.
有两个主要原因使得反事实预测成为一项具有挑战性的工作:
建议的方法
我们构建工具的方法如下:

重要说明:目标是在过去的推广期使用预测。因为这项任务是 后天 分析 与传统预测不同的是 可以在以下日期进行培训 后 推断期, ,与促销活动相对应。这里没有 data 泄露的概念,因为我们试图解释过去发生的现象。因此,训练-推理工作流程是这样的:

实施
准备 data
要解决推广问题,必须使用正确的 data 格式。通常,我们可以使用两种类型的 data:
1.促销 data (与促销有关的描述性信息)
2.销售 data.

预处理后的 data 基本上是销售额 data,并加入了促销信息(左连接,见上图)。每一行的 “促销类型 ”非空,都对应着产品正在促销的日子。.
在首次实施之前,重要的是 评估 data 的质量. .以下是一些检查指导原则:
1.查找主要 问题 在 时间序列:
2.定义一个 粒度 为用例:
因此,如果时间序列足够清晰,一个好的起点就是采用最细粒度的方法(例如产品 X 日,尤其是在使用 Prophet 的情况下,就像我们在这个项目中所做的)。.
3.拥有 明确的晋升范围促销活动包括哪些产品/产品系列?促销活动是否在全国范围内策划?(如果不是,就不能将某一产品在全国所有商店的销售情况汇总起来)。
检查并准备好 data 后,就可以开始建模了。.
建模
首次迭代和主要收获

基本上 主要改进 来自 回归者 我们补充道:
最后,调整衡量预测准确性的方法(见下文 "评估 "部分)也有助于更准确地评估性能。.
我们为什么要改用 XGBoost?
尽管先知具有良好的性能和可解释性,但我们意识到 XGBoost 最合适, 原因是多方面的:
评估和限制
评估
如上所述,在反事实预测中没有基本事实,这使得绩效评估比传统预测更为复杂。.
不过,我们找到了一种方法来衡量我们的业绩,或者说尽可能精确地估计我们的业绩。方法如下

在经典预测中,我们通常使用 交叉验证 战略(此处:, 扩展窗口)在某一验证期(如可用的 data 的最后一年)。在这一验证期内,我们测量性能的实际窗口在每个折叠中都会发生变化 (“评估窗口”前 data 用于滞后特征 (“Data用于预测”).在促销用例中、, 我们在评估窗口后添加一些 data 以重现 培训-推理工作流程 建议的方法 “一节中描述。.
因此,我们可以将这种交叉验证策略应用于 data子集,其中没有促进, ,以预测精度 (FA) 作为衡量标准。.

通过这种方法,我们能够达成以下共识 预报精度接近 90% 这与我们在其他经典预测项目中取得的成绩不相上下。.
尽管这种性能可以令人满意,但我们的方法也有一些局限性。.
限制
更进一步和今后的步骤
改进建模
在衡量促销活动的净影响时,可以加上几种效果:
由于选择的粒度(家庭层面)的原因,前两个影响未被纳入我们的分析,而后两个影响在我们的项目时间内很难彻底量化。.
概括地说 净增销售额 可以用瀑布图来表示促销活动:

超越后验分析
如前所述,一旦完成了对过去晋升情况的(后)分析 (A阶段),就可以 进一步 由 预测 未来 晋升 (B阶段),最后提出一个 优化 的 促销计划 (C阶段).
当然,预测(估算)促销活动的未来盈利能力比估算以前促销活动的盈利能力要难,因为我们有以下条件 促销期间没有 data. .我们的想法是 再利用 的 模型 在 A 阶段开发 使用 data 不是历史上的 data,而是 根据经典预测模型预测的 data, 具体如下
首先,在可用的 data(直到今天)上训练经典预测模型:

然后,使用该模型进行预测(预测的时间段必须涵盖 “基线模型 ”将使用的时间特征范围):

最后,在第一个模型预测的基础上,利用时间特征使用训练有素的基线模型,估算出基线,从而得出销售额提升:

当然,由于两个叠加模型的误差是相关的,因此这一过程的不确定性更大。.
最后,为了优化推广计划,该战略包括利用前一阶段所做的工作来 选择 的 最佳推广参数组合 以便 优化 a 业务指标 如投资回报率。.
结论
使用 反事实预测 解决业务问题是 殊为不易 在文献中可以找到。.
然而,我们看到,这可能是一个 强大工具 的问题 评估 彻底 性能 的 过去的晋升, 通过 预测假设销售额 (底线)。我们还探讨了自回归(Prophet)或梯度提升(XGBoost)模型的特征工程建议。最后,我们详细介绍了进一步完善分析的一些指导原则,这些指导原则比单纯的后验分析更进一步。.
感谢在这个项目中与我合作的 data 科学家们:Kasra 和 Ombeline。还要感谢 Artefactors 谁校对了这篇文章。.

博客







