第4章 基准线构建方法:历史数据对比、同期群、合成控制、DID设计
基准线(Baseline)是量化AI功能效果的“反事实”参照。选择不恰当的基准线会导致归因偏差甚至方向逆转。本章拆解四种主流基准线构建方法,明确各自适用场景、操作边界与验收标准,帮助团队在实操中快速匹配数据条件与业务场景。
4.1 适用场景
| 方法 | 典型场景 | 数据要求 |
|---|---|---|
| 历史数据对比 | AI功能上线前已积累稳定KPI,无重大外部变化 | 至少6个月连续历史数据 |
| 同期群分析 | AI功能分批开放给不同用户群,且群间相对独立 | 用户粒度的时间序列,含分组标识 |
| 合成控制法 | 只有单一受干预对象(如某个城市/门店),但有多个未受干预的相似对象 | 多个对照单元的面板数据,干预组1个,对照组≥3个 |
| 双重差分(DID) | 有自然形成的处理组和对照组,且平行趋势假设可验证 | 处理组和对照组至少2期面板数据 |
4.2 前置条件
关键检查清单: 数据不可靠时,任何方法都会产生误导。请在构建基准线前逐一确认。
- 历史数据对比:① 事件窗口内无季节性或结构性突变;② AI功能上线前数据粒度与上线后一致。
- 同期群:① 群划分非自选择(如随机或按时间批次);② 群间预暴露期趋势相似。
- 合成控制:① 对照组单元数量≥3且与干预组有强相关性;② 干预前时间序列长度≥10期。
- DID:① 平行趋势假设通过统计检验(如事件研究法);② 无同期干扰政策或事件。
4.3 操作步骤
通用选择流程:
- 确认是否只有单一干预单元?是→合成控制法;否→下一步。
- 是否存在自然对照组?是→DID;否→下一步。
- 用户分批次开通功能?是→同期群分析;否→历史数据对比。
各方法标准操作子步骤(以DID为例):
# 步骤1:构建面板数据(unit, time, treat, post, outcome)
# 步骤2:估计 DID 模型
lm(outcome ~ treat + post + treat:post, data = panel)
# 步骤3:检验平行趋势(参考:事件研究图)
# 步骤4:若添加协变量,使用双向固定效应模型
feols(outcome ~ treat:post | unit + time, data = panel)
4.4 输入输出物
| 方法 | 输入 | 输出基准线 |
|---|---|---|
| 历史数据 | AI上线前时间序列KPI | 基于趋势/季节性外推的预测值 |
| 同期群 | 用户分组标识 + 每用户每日KPI | 同期群内未暴露用户的平均KPI |
| 合成控制 | 干预组 + 对照组面板数据 | 加权合成的虚拟对照序列 |
| DID | 处理/对照组 2×2 面板数据 | 反事实 = 处理组干预前均值 + 对照组差值 |
4.5 责任边界
- 数据工程师/分析师:清洗数据、验证平行趋势、输出基准线数值及置信区间。
- 产品经理/业务方:确认外部事件、提供分组逻辑、解释异常波动。
- 数据科学负责人:方法选择决策、并行策略容错(如准备2种方法互为验证)。
4.6 记录材料
每次基准线构建需保留以下可审计材料:
- 数据源集合列表(数据集名、时间范围、粒度)。
- 方法选择理由文档(含前置条件检查截图)。
- 基准线数值表(含标准误/置信区间)。
- 敏感度分析结果(如替换对照组、改变窗口期)。
4.7 异常处理
| 异常情况 | 处理方案 |
|---|---|
| 历史数据含缺失期 | 用线性插值或同类单元均值补全,外推时标注不确定性 |
| 同期群间预暴露期趋势不同 | 改用PSM匹配后重新划分同期群,或放弃该方案转DID |
| 合成控制对照组权重集中在单一单元 | 检查共线性,剔除异常单元后重算;若仍集中则转为DID |
| DID平行趋势检验不通过 | 尝试加入线性时间趋势交互项、限制时间窗口、或改用合成控制 |
4.8 验收标准
基准线质量评分卡:
- ✅ 基准线反事实结果与干预前实际值的拟合度(R²≥0.85 或 MAPE≤10%)
- ✅ 基准线在干预时间点前后无跳变(DID需满足平行趋势p值>0.1)
- ✅ 两种独立方法结果差异<20% 或 在置信区间内重叠
- ✅ 逻辑合理性:基准线数值不超出业务常识范围(如转化率不超100%)