4、业务因果假设提取:与业务专家协作、绘制因果图、识别关键驱动因素
在间歇需求预测中,仅依赖历史销量统计模型往往无法捕捉供应链中的结构性变化。业务专家掌握的领域知识——如促销计划、设备检修、原材料供应波动——是构建因果特征的关键来源。本节聚焦如何系统化地将专家经验转化为可工程化的因果假设。
4.1 协作流程:从专家访谈到因果假设
与业务专家的协作应遵循结构化流程,避免“一次性访谈”导致信息遗漏。推荐采用以下四阶段方法:
| 阶段 | 活动 | 产出物 |
|---|---|---|
| 1. 知识采集 | 一对一访谈、历史事件复盘、头脑风暴 | 原始因果陈述列表(如“每次大促后库存积压导致下月订单骤降”) |
| 2. 结构化整理 | 将陈述转化为“变量-方向-时滞”三元组 | 因果假设卡片(含置信度评分) |
| 3. 因果图绘制 | 使用有向无环图(DAG)表达变量间关系 | 业务因果图(初版) |
| 4. 验证与迭代 | 数据回溯验证、专家评审会 | 修正后的因果图 + 关键驱动因素清单 |
实践要点:在知识采集阶段,使用“如果…那么…”句式引导专家表达因果逻辑。例如:“如果某SKU在T月进行了买赠促销,那么T+1月的需求量通常会上升还是下降?幅度大约多少?”
4.2 绘制业务因果图(DAG)
因果图是连接业务知识与机器学习特征的桥梁。以下是一个针对间歇需求场景的简化因果图示例,展示了促销、库存、维修计划如何共同影响未来需求。
关键解读:图中“促销活动”同时影响“库存水平”和“未来需求量”;“设备维修计划”直接导致需求下降(停产期间无需求);“原材料供应”通过影响生产计划间接作用于需求。历史需求数据作为非因果变量,仅用于模型校准。
4.3 识别关键驱动因素
从因果图中提取关键驱动因素时,需结合业务影响力和数据可得性进行优先级排序。以下表格展示了间歇需求场景中常见的驱动因素及其特征:
| 驱动因素 | 因果方向 | 时滞 | 数据来源 | 优先级 |
|---|---|---|---|---|
| 促销活动 | 正向(短期激增) | 0~1 个月 | 市场部计划表 | ★★★★★ |
| 设备大修 | 负向(需求归零) | 1~2 个月 | 工厂维护排程 | ★★★★★ |
| 原材料短缺 | 负向(供应中断) | 0.5~1 个月 | 采购预警系统 | ★★★★☆ |
| 竞争对手促销 | 负向(需求转移) | 0~1 个月 | 市场情报 | ★★★☆☆ |
| 季节性气候 | 双向(如雨季需求下降) | 固定周期 | 气象局公开数据 | ★★★☆☆ |
4.4 因果假设的工程化表达
将因果假设转化为机器学习特征时,需要定义明确的特征构造规则。以下是一个基于“促销活动”的因果特征构造示例:
# 因果特征构造示例:促销影响特征
def build_promo_causal_features(df, promo_plan):
"""
根据业务因果假设构造促销相关特征
假设:促销后第1个月需求上升20%~50%,第2个月回落至基线
"""
df = df.merge(promo_plan, on='SKU', how='left')
# 特征1:促销强度(0/1 或 折扣率)
df['promo_flag_t'] = df['discount_rate'].fillna(0)
# 特征2:促销后效应(滞后1期)
df['promo_lag1'] = df.groupby('SKU')['promo_flag_t'].shift(1).fillna(0)
# 特征3:促销累积效应(过去3个月促销次数)
df['promo_count_3m'] = df.groupby('SKU')['promo_flag_t'].rolling(3).sum().values
# 特征4:促销与库存交互(库存不足时促销效果减弱)
df['promo_inventory_interact'] = df['promo_flag_t'] * (df['inventory_level'] > df['safety_stock'])
return df
避坑提醒:不要将业务专家的所有陈述直接作为特征加入模型。必须通过数据验证因果假设的统计显著性(如Granger因果检验、干预分析),避免引入虚假相关。建议在特征工程阶段保留一个“待验证特征池”,通过A/B测试或回溯实验逐步筛选。
4.5 因果假设文档化与版本管理
因果假设是动态演进的业务知识,需要像代码一样进行版本管理。推荐使用以下模板记录每条因果假设:
| 假设ID | 因果陈述 | 来源专家 | 置信度 | 验证状态 | 版本 |
|---|---|---|---|---|---|
| CA-001 | 促销后第1个月需求上升30% | 销售总监 | 高 | 已验证 | v2.1 |
| CA-002 | 设备检修前2周客户会提前备货 | 工厂厂长 | 中 | 待验证 | v1.0 |
| CA-003 | 原材料价格波动影响客户下单节奏 | 采购经理 | 低 | 已驳回 | v1.0 |
通过系统化的因果假设提取与工程化表达,间歇需求预测模型能够从“纯数据驱动”升级为“知识增强型”,在冷启动和结构性变化场景下显著提升预测稳定性。