CUPED Variance Reduction(方差缩减)
Skill-CUPED-Variance-Reduction · 02-A_B实验
causalexperiment其他WF-G Listing内容优化
年化 ROI加速实验迭代,隐性价值
业务视角
适用角色运营负责人 / 产品经理 · 广告优化师 · 选品负责人
适用平台Amazon Listing · TikTok 广告素材 · DTC 落地页
什么情况下用改了主图/标题/价格,不确定销量变化是改动导致的还是流量波动;两个方案团队各持己见,需要数据裁决
成功是什么样的每次改动都有 ≥95% 置信度的数据结论,好的改动快速全量,坏的及时止损
业务痛点
1. 解决的问题
CUPED (Controlled-experiment Using Pre-Experiment Data) 用实验前数据作为协变量,减少实验组间方差,使同样的样本量能检测到更小的效应量。核心公式:$Y_{cuped} = \bar{Y} - \theta(\bar{X} - \mu_X)$,其中 $X$ 是实验前同一用户的指标值,$\theta = \text{Cov}(Y,X)/\text{Var}(X)$。方差缩减率 $\approx 1 - \rho^2_{Y,X}$。若实验前购买金额
2. 核心算法逻辑
CUPED (Controlledexperiment Using PreExperiment Data) 用实验前数据作为协变量,减少实验组间方差,使同样的样本量能检测到更小的效应量。核心公式:$Y_{cuped} = \bar{Y} \theta(\bar{X} \mu_X)$,其中 $X$ 是实验前同一用户的指标值,$\theta = \text{Cov}(Y,X)/\text{Var}(X)$。方差缩减率 $\approx
3. 业务应用场景
A/B 测试吸奶器新详情页——实验前 14 天用户浏览时长作为协变量 $\rho=0.65$→方差缩减 42%→所需样本量从 10,000 降至 5,800。测试周期从 2 周缩短到 10 天。
年化:加速实验迭代,隐性价值 20-40 万元。
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
加速实验迭代,隐性价值
7. 代码模板
代码块数量:1 · 路径:未检测到
import numpy as np
def cuped_adjust(Y_treatment, Y_control, X_treatment, X_control):
theta = np.cov(np.concatenate([Y_treatment, Y_control]),
np.concatenate([X_treatment, X_control]))[0,1] / np.var(np.concatenate([X_treatment, X_control]))
Yt_adj = Y_treatment - theta * (X_treatment - np.mean(X_treatment))
Yc_adj = Y_control - theta * (X_control - np.mean(X_control))
var_reduction = 1 - np.var(Yt_adj - Yc_adj) / np.var(Y_treatment - Y_control)
return {'adj_diff': np.mean(Yt_adj)-np.mean(Yc_adj), 'var_reduction': var_reduction}
np.random.seed(42)
X = np.random.normal(100,20,2000)
Yt = X*0.7 + np.random.normal(105,8,1000)
Yc = X*0.7 + np.random.normal(100,8,1000)
r = cuped_adjust(Yt, Yc, X[:1000], X[1000:])
print(f"Variance reduction: {r['var_reduction']:.0%}")
assert r['var_reduction'] > 0.3
print("[✓] CUPED 测试通过")
8. 论文来源
未自动抽取;请查看原始 Skill 卡片。