CUPED 解释

Tue Jun 24 2025

注意:这是一篇最初以英文发表的博客的中文翻译,您可以在这里找到原文:https://statsig.com/blog/cuped

CUPED(使用实验前数据的受控实验)自2013年微软推出以来,在在线实验中越来越受欢迎。它是提高实验项目速度和准确性的最强大的算法工具之一。

CUPED 解决的问题

在运行实验时,经常会看到结果刚好在统计显著性范围之外。在频率主义框架中,这不足以证明您的更改导致了用户行为的差异。

要在存在真实效应时获得统计显著的结果,通常需要更多的样本量。然而,增加样本量既昂贵又耗时,因为这通常意味着延长实验的注册窗口。

即使是像 Facebook 和亚马逊这样的大公司,在等待实验成熟时也会遇到困难,特别是在寻找小效应时。对于较小的公司来说,由于样本量要求,测量小效应大小在实践中可能是不可行的。

CUPED 通过使用实验前数据来解释结果数据中的一些方差,使得用较小的样本量更容易检测到真实效应,从而解决了这一挑战。

CUPED 背后的统计概念

CUPED 的核心概念很简单:实验中并非所有方差都是随机的。用户结果的许多差异是基于与实验无关的预先存在的因素。

示例:负重跑步

想象一下测试人们是否在负重的情况下跑得更慢。如果我们简单地记录两组(有负重和无负重)的一英里时间,观察到的时间可能会有很大的方差和重叠。

然而,如果我们通过要求参与者在实验前跑一英里来建立基线,我们可以测量他们相对于典型表现的变化:

人员

组别

基线一英里时间

实验一英里时间

变化

Sally

负重

6:30

6:40

+10

Dave

无负重

7:08

7:10

+2

Jane

负重

7:30

8:20

+50

Bob

无负重

9:15

9:00

-15

通过关注相对于基线的变化而不是原始的一英里时间,我们将指标的范围从140秒减少到65秒。这个较低的范围意味着我们计算中的方差更少,从而导致更精确的统计测试。

偏差校正

随机分配有时会导致实验组具有不同的基线特征。CUPED 有助于纠正这些预先存在的差异。

如果一组的平均基线更快,他们的实验结果也往往会更快。CUPED 通过相对于较慢的组向下调整较快组的指标来进行调整,从而允许更公平的比较。

分层

CUPED 的一些变体使用"非参数"或"分桶"方法。这涉及根据用户的实验前指标将用户分成组,并测量相对于每组平均指标值的变化。

其他变量

更复杂的 CUPED 实现可以包含除目标指标的实验前值之外的其他信息。任何独立于实验组分配的变量都可能用于进一步减少方差。

在实践中使用 CUPED

我们不能简单地从用户的实验值中减去他们的先前值,因为过去的行为并不总是未来行为的完美预测器。

CUPED 背后的数学

给定指标的 T 检验在数学上等同于运行一个回归,其中因变量是您的指标,自变量是用户的实验组。

当我们将基线指标作为回归中的一个因素包含时,我们可以显著降低标准误差并提高统计功效。这是 CUPED 背后的核心概念。

CUPED 调整的公式是:

Ycv = Y + θ(μx) - θX

其中:

  • Y 是实验值

  • X 是实验前值

  • μx 是 X 的总体均值

  • θ 是最小化方差的常数(通常是 OLS 回归的斜率)

当 θ 等于 X 和 Y 的协方差除以 X 的方差时,调整后估计量的方差被最小化。这与 OLS 回归中的斜率系数相同。

我们估计量的最终方差是: Var(Ycv) = Var(Y)(1-ρ²)

其中 ρ 是 X 和 Y 之间的相关性。由于 ρ 的范围在 [-1, 1] 之间,这个新方差将始终小于或等于原始方差。

实施步骤

要实施 CUPED:

  1. 计算 Y 和 X 之间的协方差以及 X 的方差和均值

  2. 使用这些值计算 θ

  3. 对于每个用户,计算他们的个人实验前值

  4. 将总体统计数据连接到用户级数据

  5. 使用上述公式计算每个用户的调整项

  6. 像往常一样运行您的统计分析,使用调整后的指标

最佳实践

  • CUPED 对于有历史数据的现有用户的实验最有效

  • 您需要确保您的指标数据可以追溯到实验前数据窗口开始之前

  • CUPED 的有效性取决于指标与同一用户过去值的相关程度

  • 对于没有实验前数据的新用户,您可以将他们排除在 CUPED 调整之外,或使用其他协变量,如人口统计数据

结论

CUPED 是一种强大的技术,可以通过减少方差显著提高实验的统计功效。通过利用实验前数据,您可以用相同的样本量检测到更小的效应,或者用更小的样本量实现相同的统计功效,从而实现更快、更准确的实验。



Please select at least one blog to continue.

Recent Posts

We use cookies to ensure you get the best experience on our website.
Privacy Policy