Skip to content

CUPED:基于实验前数据的方差缩减

CUPED(Controlled-experiment Using Pre-Existing Data)是一种利用实验前用户行为降低实验指标方差的方法。它的核心思想是:如果用户在实验前的指标表现与实验期指标相关,就可以把实验前指标作为协变量,对实验期指标做线性调整,从而减少随机波动,提升实验检验灵敏度。在 A/B 实验中,这通常表现为更窄的置信区间、更低的 MDE,以及更短的实验周期。

简单聚合指标

对于均值类、比例类和人均活跃天类指标,当前实现使用实验期指标 Y 与实验前指标 X 估计统一的调整系数:

θ=Cov(Y,X)Var(X)

其中 theta 使用 control 与 treatment pooling 后的数据估计。每组的 CUPED 后指标值为:

Ycuped=Yθ(XE[X])

这里的 [X] 同样来自两组 合并 后的实验前均值。直观理解是:如果某组实验前指标天然偏高,就从实验期指标中扣除这部分可由历史差异解释的波动;如果实验前偏低,则做相应补偿。这样不会改变实验随机化的因果解释,但可以减少与实验处理无关的历史差异带来的噪声。

比率类指标

比率类指标的实验单元同时包含分子和分母。当前实现记:

  • Y:实验期分子(nume
  • N:实验期分母(deno
  • X:实验前分子(pre_nume
  • M:实验前分母(pre_deno

实验期指标为 Y / N,实验前指标为 X / M。当前算法库对比率类指标的 CUPED 调整为:

θ=Cov(Y/N,X/M)Var(X/M)

其中 Cov(Y/N, X/M)Var(X/M) 通过 Delta Method(详见统计方法下的Delta Method) 估计。

两组共享同一个 合并后的 theta。设两组 合并 后的实验前比率为:

E[Rpre]=Xc+XtMc+Mt

则 control 组和 treatment 组的 CUPED 后比率分别为:

Rc,cuped=YcNcθ(XcMcE[Rpre])Rt,cuped=YtNtθ(XtMtE[Rpre])

最终效果量基于调整后的两组比率计算:

Δ=Rt,cupedRc,cuped

CUPED 后方差使用如下形式:

Var(Rcuped)=Var(YN)+θ2Var(XM)2θCov(YN,XM)

用于显著性检验和区间估计。

支持范围与使用建议

当前 CUPED 支持 MEANPROPORTIONRATIOSUMACTIVE_DAYS

CUPED 的收益取决于实验前指标与实验期指标的相关性。相关性越强,方差缩减通常越明显;如果实验前数据缺失严重、口径不一致,或实验前指标与实验期指标弱相关,则收益会下降。