本文从第一性原理出发,以"问题 数学方法 解决方案"的框架,系统梳理 A/B 测试全生命周期的数据科学知识体系。
A/B 测试的底层逻辑是 鲁宾因果模型(Rubin Causal Model)。
对于任意一个实验单元 i(通常是一个用户),我们定义:
实验对用户 i 的个体因果效应(Individual Treatment Effect,ITE)为:
$$\tau_i = Y_i(1) - Y_i(0)$$
根本问题(Fundamental Problem of Causal Inference):对于同一个用户 i,我们永远只能观测到其中一个潜在结果要么在实验组看到 $Y_i(1)$,要么在对照组看到 $Y_i(0)$,不可能同时观测两者。
这意味着我们无法计算任何个体的因果效应,只能转而估计平均处理效应(Average Treatment Effect,ATE):
$$ATE = E[Y(1)] - E[Y(0)]$$
问题:如何在没有反事实的情况下,无偏地估计 ATE?
数学解法:随机化(Randomization)
随机化保证了处理分配 T 与潜在结果独立:
$$T \perp (Y(1), Y(0))$$
这意味着:
$$E[Y(1)] = E[Y|T=1], \quad E[Y(0)] = E[Y|T=0]$$
观测到的组间均值差异就是对 ATE 的无偏估计:
$$\widehat{ATE} = \bar{Y}_1 - \bar{Y}_0$$
随机化是因果推断的"免费午餐"它同时消除了已知和未知混杂因素的影响,不需要任何统计建模假设。
A/B 测试的标准分析框架是频率学派假设检验:
| 步骤 | 统计操作 | 数学表达 |
|---|---|---|
| 1. 提出假设 | 原假设 $H_0$ vs 备择假设 $H_1$ | $H_0: \mu_T = \mu_C, H_1: \mu_T \neq \mu_C$ |
| 2. 计算检验统计量 | Welch's t-test | $t = \frac{\bar{Y}_T - \bar{Y}_C}{\sqrt{s_T^2/n_T + s_C^2/n_C}}$ |
| 3. 判断显著性 | p-value 与 $\alpha$ 比较 | $p < \alpha \rightarrow \text{拒绝} H_0$ |
| 4. 估计效应量 | 置信区间 | $(\bar{Y}_T - \bar{Y}_C) \pm t_{\alpha/2} \cdot SE$ |
A/B 测试的生命周期可以分为四个阶段,每个阶段面临不同的挑战:
下文将按照这个生命周期,逐一阐述每个问题及其数学解决方案。
痛点:样本太少 真有效应检测不到(统计功效不足);样本太多 浪费时间与流量。
数学解法:统计功效分析(Power Analysis)
关键参数:
| 参数 | 符号 | 含义 |
|---|---|---|
| 显著性水平 | $\alpha$ | 犯第一类错误的概率(通常 5%) |
| 统计功效 | $1-\beta$ | 真有效应被检测出的概率(通常 80%) |
| 最小可检测效应 | $\delta$(MDE) | 业务上认为有意义的最小提升 |
| 指标方差 | $\sigma^2$ | 核心指标的方差 |
| 样本量 | $n$ | 每组需要的样本量 |
对双侧检验:
$$n \approx \frac{2(Z_{\alpha/2} + Z_{\beta})^2 \sigma^2}{\delta^2}$$
实际应用中的关键选择:
痛点:纯随机分流可能在某些关键维度(付费层级、活跃度)上产生"运气性不均衡",增加方差甚至引入偏差。
数学解法:分层随机化(Stratified Randomization)
将用户按关键特征(如付费层级)分为 K 个互斥的层,在每层内部独立进行随机分配。
为什么分层有效?
对分层后的均值差异的方差:
$$Var(\bar{Y}_{T,strat} - \bar{Y}_{C,strat}) = \sum_{k=1}^{K} \left(\frac{n_k}{n}\right)^2 \cdot Var(\bar{Y}_{T,k} - \bar{Y}_{C,k})$$
由于层内用户更同质(层内方差 < 总体方差),分层估计的总方差显著降低。
分层变量的选择原则:
痛点:社交产品中外卖(如微信的支付策略、Uber 的定价),一个用户的体验会直接影响另一个用户。按用户独立随机分组的假设被破坏,ATET 估计产生偏差。
数学解法:集群随机化(Cluster Randomization)
将存在干扰的单元聚集为一个集群,以集群为单位进行随机分组。
当集群效应存在时(集群内相关性 $\rho > 0$),有效样本量会缩水:
$$n_{effective} = \frac{n}{1 + (m-1)\rho} = n \times DEFF$$
其中:
集群选择策略:
| 集群粒度 | 适用场景 | 代价 |
|---|---|---|
| 城市/地区 | 需要地理隔离的实验 | 需要大量集群 |
| 社区/群组 | 社交网络产品 | 需要社交图谱 |
| 时间段 | 有时间效应的实验 | 要求时间序列控制 |
痛点:即使代码实现了 50:50 分流,数据管道可能有 bug、bot 流量、缓存穿透等问题,导致实际观测比例偏离设计比例。SRM(Sample Ratio Mismatch)比 p-value 异常更要命的信号。
数学解法:卡方拟合优度检验
$$\\chi^2 = \\sum_{i=1}^{k} \\frac{(O_i - E_i)^2}{E_i}$$
其中 $O_i$ 为第 i 组实际观测人数,$E_i$ 为期望人数。
$\\chi^2$ 统计量服从自由度为 $k-1$ 的卡方分布。如果 $p < 0.01$,应立即排查分流系统。
SRM 检查应自动化运行:实验开始后每 30 分钟检测一次,连续两次告警则自动暂停实验。
痛点:用户行为差异极大。一个用户消费上千元,另一个消费 0 元。这种天然差异产生的方差远超实验策略带来的差异。
数学解法一:CUPED(Controlled-Experiment Using Pre-Experiment Data)
这是降低方差最经典的方法。核心思想:利用实验前的同一用户数据 $X$ 来"去除"用户固有的行为偏差。
原理推导:
对于实验期指标 $Y$,构造修正指标:
$$Y_{cuped} = Y - \\theta (X - \\mu_X)$$
其中 $\\mu_X = E[X]$,$\\theta$ 为调节参数。
计算 $Y_{cuped}$ 的期望:
$$E[Y_{cuped}] = E[Y] - \\theta(E[X] - \\mu_X) = E[Y]$$
期望不变 无偏性保持。
计算 $Y_{cuped}$ 的方差:
$$Var(Y_{cuped}) = Var(Y) + \\theta^2 Var(X) - 2\\theta Cov(X, Y)$$
求导得最优 $\\theta$(使方差最小):
$$\\frac{\\partial Var}{\\partial \\theta} = 2\\theta Var(X) - 2Cov(X, Y) = 0$$
$$\\theta^* = \\frac{Cov(X, Y)}{Var(X)}$$
代入后:
$$Var(Y_{cuped}) = Var(Y) \\cdot (1 - \\rho^2_{X,Y})$$
其中 $\\rho_{X,Y} = Corr(X, Y)$。
关键结论:CUPED 将方差降低为原来的 $(1-\\rho^2)$。如果实验前指标与实验期指标的相关性为 0.6,则方差降低 36%;若相关性为 0.8,方差降低 64%。
方差降低直接等效于:
$$n_{effective} = \\frac{n}{1 - \\rho^2}$$
即 100 万样本在 $\\rho=0.6$ 时等效于 156 万样本;在 $\\rho=0.8$ 时等效于 278 万样本。
协变量 X 的选择原则:
数学解法二:ML-CUPED(多协变量扩展)
线性 CUPED 只使用一个协变量。ML-CUPED 使用机器学习模型基于多个历史特征预测 Y,得到预测值 $\\hat{Y} = f(X_1, X_2, ..., X_p)$:
$$Y_{ml\_cuped} = Y - (\\hat{Y} - \\mu_{\\hat{Y}})$$
相比单变量 CUPED,ML-CUPED 通常能多削减 5-15% 的方差,因为:
注意事项:ML 模型必须使用实验前的数据训练(不能泄露实验期信息),且最好使用交叉验证避免过拟合。
数学解法三:Winsorization(缩尾处理)
对于极端值驱动的指标(如收入),直接用原始值会导致方差被极少数"大鲸鱼"用户主导。
处理方法:将超过分位数 $q$ 的观测值压缩到该分位数:
$$\tilde{Y}_i = \min(Y_i, F_Y^{-1}(q))$$
其中 $F_Y^{-1}(q)$ 为 Y 分布的第 q 分位数,通常选择 $q = 0.95$ 或 $q = 0.99$。
CUPED + Winsorization 联合使用:先缩尾降低极端值的杠杆效应,再 CUPED 消除个体差异,效果最佳。
痛点:传统固定样本量检验要求只看一次(实验结束时)。如果在实验过程中反复查看 p 值并"看到显著就停止",Type-I error 会严重膨胀。
为什么不能 peek?
模拟实验:每天查看一次 p 值,连续 10 天,即使在 $H_0$ 为真的情况下(无效应),10 天中至少有一次 p < 0.05 的概率:
$$P(\\text{至少一次显著}) = 1 - (1-0.05)^{10} \\approx 40\\%$$
也就是说 Type-I error 从 5% 膨胀到了 40%!
数学解法一:Bonferroni 校正(过于保守)
将显著性水平按查看次数分割:
$$\\alpha_{adjusted} = \\frac{\\alpha}{K}$$
其中 K 为查看次数。10 次查看 每次需要 $p < 0.005$ 才算显著。这种方法过于保守。
数学解法二:序贯检验 / 成组序贯设计(Group Sequential Design)
定义"花费掉"的 $\\alpha$ 边界函数(Spending Function)。$\alpha$ 不是平均分配的,而是在早期"花得少",后期"花得多":
| 方法 | 边界形状 | 特点 |
|---|---|---|
| Pocock | 等边界值 | 早期容易拒绝 $H_0$ |
| O'Brien-Fleming | 早期极高,后期降低 | 早期保守,更常用 |
| Lan-DeMets | 通用 $\alpha$-spending | 最灵活 |
O'Brien-Fleming 在信息比例 t(已收集数据占总计划的比例)处的边界值:
$$z_t = \\frac{z_{\\alpha/2}}{\\sqrt{t}}$$
当 t 很小时(早期),边界值极大,几乎不可能提前拒绝除非效应量极大。
数学解法三:Always Valid Inference(随时有效推断)
基于 martingale 理论的方法(如 E-values / E-process),允许在任何时间点停止并做出有效推断,不需要预先指定查看次数或停止规则。
痛点:同一批用户可能同时参与多个实验,策略效果可能叠加或相互抵消。
数学解法与工程方案:
| 方案 | 做法 | 适用场景 |
|---|---|---|
| 独占层(Exclusive Layer) | 用户被分入不同层,每层可分配一个实验 | 强交互风险的实验 |
| 正交层(Orthogonal Layer) | 多层之间独立哈希分流 | 无交互风险的实验 |
| 交互效应模型 | 统计建模两个实验的交互项 | 事后分析交互 |
当同时运行实验 A 和 B 时,用户的效果可能不是加法:
$$Y = baseline + \\tau_A \\cdot T_A + \\tau_B \\cdot T_B + \\tau_{AB} \\cdot T_A \\cdot T_B + \\epsilon$$
如果 $\\tau_{AB}$ 显著不为零,说明存在交互效应。
痛点:实验组均值高于对照组,但不知道这种差异在统计上是否可靠。
数学解法一:Welch's t-test(标准方法)
不假设两组方差相等,更稳健:
$$t = \\frac{\\bar{Y}_T - \\bar{Y}_C}{\\sqrt{s_T^2/n_T + s_C^2/n_C}}$$
自由度使用 Welch-Satterthwaite 近似:
$$df \\approx \\frac{(s_T^2/n_T + s_C^2/n_C)^2}{\\frac{(s_T^2/n_T)^2}{n_T-1} + \\frac{(s_C^2/n_C)^2}{n_C-1}}$$
在大样本下趋近于标准正态分布。
数学解法二:Bootstrap(非参数方法)
当指标分布严重偏态(如长尾收入、次留)时,T 检验的正态假设不成立。
Bootstrap 步骤:
百分位数 Bootstrap CI:
$$CI = [\\hat{\\tau}_{(B \\cdot \\alpha/2)}, \\hat{\\tau}_{(B \\cdot (1-\\alpha/2))}]$$
BCa(Bias-Corrected and Accelerated)Bootstrap 在偏态分布下更准确。
数学解法三:Permutation Test(置换检验)
"如果是随机现象,打乱分组后应该得到类似的结果":
解法选择决策树:
指标是否严重偏态?
是 样本量是否足够大?
是(n > 1000/组) CUPED + Delta Method + t-test(CLT 保证)
否 Bootstrap / Permutation Test
否 Welch's t-test(标准选择)
痛点:若同时观察 20 个指标,即使 $H_0$ 完全为真,也几乎必然会看到至少一个"p < 0.05"的结果。
$$P(\\text{至少一个假阳性}) = 1 - (1-0.05)^{20} \\approx 64\\%$$
解决方案层级:
第一层(设计层面):指定 OEC(Overall Evaluation Criterion)
实验上线前预先注册 1-2 个核心指标作为决策依据。这不是数学技巧,而是科学方法论防止事后"捞显著指标"(p-hacking)。
$$OEC = w_1 \\cdot Z(metric_1) + w_2 \\cdot Z(metric_2) + ... + w_k \\cdot Z(metric_k)$$
其中 $Z(\\cdot)$ 是标准化,$w_i$ 是从业务目标推导的权重。
第二层(统计层面):多重检验校正
| 方法 | 控制目标 | 公式 | 特点 |
|---|---|---|---|
| Bonferroni | FWER | $p_i < \\alpha/m$ | 最保守,m 个检验 |
| Holm-Bonferroni | FWER | 逐步法 | 比 Bonferroni 略宽 |
| BH (Benjamini-Hochberg) | FDR q | 排名后 $p_{(i)} \\leq \\frac{i}{m}q$ | 探索性分析首选 |
FWER vs FDR 的选择:
第三层(分析层面):分层主次框架
核心决策指标(1-2 个):必须显著 + 方向正确
如果显著 检查护栏指标
如果不显著 不拒绝 H,不因次要指标显著而上线
正向护栏(希望提升但不能显著下降):DAU、留存
反向护栏(希望不显著或方向不恶化):延迟、崩溃率、卸载率
探索性指标(不需要校正):用于理解"为什么"和生成假设
痛点:比率指标是两个随机变量的比值(如 $R = Y/N$),不能直接用均值的方差公式。
数学解法:Delta Method(一阶泰勒展开近似)
对于比率 $R = \\bar{Y} / \\bar{N}$:
$$Var(R) \\approx \\frac{1}{\\mu_N^2}Var(Y) + \\frac{\\mu_Y^2}{\\mu_N^4}Var(N) - 2\\frac{\\mu_Y}{\\mu_N^3}Cov(Y, N)$$
也可以用用户级 Delta Method 更直接地计算:
定义 $S_i = Y_i - R \\cdot N_i$(每个用户的"残差得分"),则:
$$Var(R) \\approx \\frac{Var(S)}{\\bar{N}^2}$$
$$SE(R) = \\frac{SD(S)}{\\bar{N} \\cdot \\sqrt{n}}$$
与 Bootstrap 的对比:
Delta Method 计算高效,但依赖大样本假设。对于严重偏态的小样本比率指标,Bootstrap 更可靠。
痛点:平均效应为正不代表所有用户都受益。可能 30% 的用户有大幅提升,30% 有负面效果,40% 无变化平均下来看起来"不显著"。
数学解法一:分组异质性分析
按预设的维度(新老用户、设备类型、活跃度)分组估计效应。需要注意:分组后的多重检验问题(用 Bonferroni / BH 校正)。
数学解法二:因果森林(Causal Forest)
由 Athey & Imbens 提出,基于随机森林的自适应 HTE 估计方法。
核心思想:构建一个森林,每棵树对用户划分,使得同一叶子节点内的处理效应尽可能"相似"。
对用户 $i$ 的 CATE(Conditional Average Treatment Effect)估计:
$$\\hat{\\tau}(x_i) = \\frac{\\sum_{b=1}^{B} \\hat{\\tau}_b(x_i)}{B}$$
其中 $\\hat{\\tau}_b(x_i)$ 是第 b 棵树上包含用户 i 的叶子节点中的 ATE。
关键输出:
数学解法三:Meta-Learners 家族
| 方法 | 思路 | 适用场景 | |
|---|---|---|---|
| S-Learner | $E[Y | T, X]$ 将处理变量作为特征之一 | 简单直接,适合处理效应与特征关系简单时 |
| T-Learner | 实验组和对照组分别建模 | 两组差异大时效果好 | |
| X-Learner | 用 T-Learner 的结果再训练倾向性模型 | 样本不均衡时最稳健 | |
| R-Learner | 基于 Robinson 变换的去偏方法 | 理论性质好,适合高维特征 |
痛点:许多策略在初期表现出色(Novelty Effect),但效果随时间衰减甚至逆转。
常见时间效应偏差:
| 效应 | 描述 | 示例 |
|---|---|---|
| Novelty Effect | 用户因新鲜感而短期活跃 | 新 UI 上线前 3 天点击率飙升后回落 |
| Learning Effect | 用户需要时间学习/适应 | 新功能使用率逐步上升 |
| Selection Bias | 留存用户的特征漂移 | 留存的都是"喜欢"的用户,AT 被高估 |
| Primacy Effect | 首次体验的锚定效应 | 第一印象决定了后续行为模式 |
数学解法一:长时间 Holdout
实验停止分流后,保留实验组用户继续观察,与始终在对照组的用户对比长期效果。
$$\\tau_{long-term} = E[Y_{t+k}|T=1] - E[Y_{t+k}|T=0]$$
其中 k 为实验结束后的时间窗口(如 30 天、90 天)。
数学解法二:多期 DID(Difference-in-Differences)
如果无法完全随机化(如城市级实验),用 DID 剥离时间趋势:
$$Y_{it} = \\alpha + \\beta_1 \\cdot Treat_i + \\beta_2 \\cdot Post_t + \\delta \\cdot Treat_i \\times Post_t + \\epsilon_{it}$$
$\\delta$ 才是我们关心的因果效应它是在剥离了"实验组与对照组本身的差异"($\\beta_1$)和"时间带来的变化"($\\beta_2$)之后的净效应。
推广到多期的 Event Study 形式:
$$Y_{it} = \\alpha_i + \\lambda_t + \\sum_{j \\neq -1} \\delta_j \\cdot Treat_i \\times Period_{j} + \\epsilon_{it}$$
可以画出每个时间段的效应及其置信区间,直观判断效果的动态变化。
痛点:大样本下,微小到无商业价值的差异也会统计显著。
区分统计显著性与实际显著性:
| 概念 | 回答的问题 | 判断方式 |
|---|---|---|
| 统计显著性 | "这个差异是真实的吗?" | p-value < |
| 实际显著性 | "这个差异有业务价值吗?" | 效应量 MDE |
| 临床/业务显著性 | "这个策略值得投入吗?" | ROI > 阈值 |
效应量(Effect Size)的度量:
$$Cohen's\\ d = \\frac{\\bar{Y}_T - \\bar{Y}_C}{S_{pooled}}$$
| Cohen's d | 解释 |
|---|---|
| 0.2 | 小效应 |
| 0.5 | 中等效应 |
| 0.8+ | 大效应 |
在互联网 A/B 测试中,1-3% 的相对提升是常态;Cohen's d 通常在 0.01-0.1 之间。
问题来源:
解决方案:
频率学派 vs 贝叶斯学派的核心区别:
| 维度 | 频率学派 | 贝叶斯学派 |
|---|---|---|
| 概率的含义 | 长期频率 | 信念的不确定性 |
| 参数是 | 未知的固定值 | 随机变量(有先验分布) |
| 实验结论 | "拒绝/不拒绝 $H_0$" | "B 比 A 好的概率为 X%" |
| 需要预注册样本量? | 是(严格来说) | 否(天然支持序贯决策) |
| 解读难度 | 统计概念易混淆 | 概率表述更直观 |
贝叶斯框架:
常用模型:
贝叶斯方法的核心优势:
适用场景:搜索排序、推荐系统的算法对比。
核心思路:传统 A/B 测试给用户看整体不同的排序/推荐结果。Interleaving 将两组结果交替混合展示给同一用户,直接在用户与混合结果的互动中对比哪个算法的 item 被点击更多。
敏感度提升原理:
传统 A/B:
Interleaving:
数学上相当于从不独立样本的 Welch's t-test 转为配对 t-test,方差通常降低至原来的 1/10 到 1/100。
$$t_{paired} = \\frac{\\bar{d}}{s_d / \\sqrt{n}}$$
其中 $d_i$ 是同一用户对两个算法的偏好得分差。
问题:A/B 测试通常运行 1-4 周,但很多策略的效果需要在月、季度甚至年的尺度上才能完全显现或衰减。
数学框架:
定义实验停止后 k 期的长期效应:
$$\\tau_{LT}^{(k)} = E[Y_{t+k} | T=1, \\text{实验已停止}] - E[Y_{t+k} | T=0]$$
Holdout 设计:
为什么需要 Holdout 而不仅是延长时间:
当用户之间存在直接交互影响时(社交网络、双边市场),SUTVA(Stable Unit Treatment Value Assumption)被违背。
问题形式化:
在社交网络中,用户 j 的处理分配 $T_j$ 可能影响用户 i 的结果 $Y_i$(通过社交连接)。
解决方案方向:
| 方法 | 思路 | 局限 |
|---|---|---|
| 集群随机化 | 将社交簇整体分流 | 集群边界可能泄漏 |
| 两阶段随机化 | 先随机化集群,再在集群内随机化用户 | 需要足够多的集群 |
| 网络暴露模型 | 定义"邻居中实验组比例"作为暴露度 | 需要完整的社交图谱 |
| 图神经网络因果推断 | 用 GNN 建模网络结构对效应的调节 | 高度依赖图结构准确性 |
暴露模型(Exposure Model):
定义用户 i 的暴露度为其邻居中实验组的比例:
$$e_i = \\frac{\\sum_{j \\in \\mathcal{N}(i)} T_j}{|\\mathcal{N}(i)|}$$
然后估计效应随暴露度的变化:
$$Y_i = \\beta_0 + \\beta_1 T_i + \\beta_2 e_i + \\beta_3 T_i \\cdot e_i + \\epsilon_i$$
其中 $\\beta_3$ 捕获了网络效应的传递你的实验组邻居越多,你被"间接触达"的效应越强。
AA 测试的目的:验证整个实验系统(分流、数据管道、指标计算)是否产生虚假的"显著"结果。
方法论:
AA 测试的诊断信号:
| 异常模式 | 可能的系统问题 |
|---|---|
| p-value 集中在 0 附近 | 分流系统不独立(有偏差) |
| p-value 集中在 1 附近 | 方差计算有误(过于保守) |
| 特定分桶持续显著 | 该分桶的用户群存在特征偏差 |
| 周期性出现异常 | 数据管道在特定时间窗口有问题 |
AA 测试的自动化:
第一阶段(基础能力)
分流系统:支持用户级/设备级哈希分流
AA 测试自动化:上线前 24h 校验
基础分析:Welch's t-test + 置信区间
SRM 检验:自动检测 + 告警
指标管理:OEC 定义 + 护栏指标
第二阶段(降方差)
CUPED:单协变量版本
Winsorization:自动阈值选择
Delta Method:比率指标正确推断
分层抽样:关键维度均衡
第三阶段(提升效率)
多重检验校正:Bonferroni + BH
序贯检验:Group Sequential Design
Bootstrap:偏态指标推断
ML-CUPED:多协变量方差削减
第四阶段(深度分析)
贝叶斯框架:Beta-Binomial + Normal-Normal
HTE 分析:Causal Forest + Meta-learners
长期 Holdout:效果衰减曲线
网络效应:Exposure Model
Interleaving:搜索/推荐高效对比
| 组件 | 推荐工具 | 替代方案 |
|---|---|---|
| 实验管理平台 | Statsig / Eppo / 自研 | GrowthBook, Optimizely |
| 分流引擎 | 哈希分流 (MD5/FarmHash) | - |
| 离线分析 | Python + SciPy + Statsmodels | R |
| 方差削减 | 自研 CUPED SDK | Google's CausalImpact |
| 因果推断 | EconML / CausalML / DoWhy | grf (R) |
| 数据管道 | Spark / Flink / Snowflake | - |
| 可视化 | Streamlit / Grafana / Tableau | - |
一个好的 A/B 测试数据科学团队需要具备:
| 角色 | 核心能力 |
|---|---|
| 实验平台工程师 | 分流系统、数据管道、SRM 监控 |
| 实验数据科学家 | CUPED、Bootstrap、HTE、贝叶斯 |
| 因果推断专家 | DID、网络效应、长期效应 |
| 实验策略顾问 | MDE 校准、OEC 设计、业务决策框架 |
| 公式 | 用途 |
|---|---|
| $n = \\frac{2(Z_{\\alpha/2} + Z_{\\beta})^2 \\sigma^2}{\\delta^2}$ | 样本量计算 |
| $t = \\frac{\\bar{Y}_T - \\bar{Y}_C}{\\sqrt{s_T^2/n_T + s_C^2/n_C}}$ | Welch's t 检验 |
| $Y_{cuped} = Y - \\theta (X - \\mu_X), \\theta^* = \\frac{Cov(X,Y)}{Var(X)}$ | CUPED 修正 |
| $Var(Y_{cuped}) = Var(Y) \\cdot (1-\\rho^2_{X,Y})$ | CUPED 方差削减 |
| $\\chi^2 = \\sum \\frac{(O_i - E_i)^2}{E_i}$ | SRM 卡方检验 |
| $p_i < \\alpha / m$ | Bonferroni 校正 |
| $p_{(i)} \\leq \\frac{i}{m}q$ | BH FDR 校正 |
| $Var(R) \\approx Var(S) / (\\bar{N}^2), S_i = Y_i - R \\cdot N_i$ | Delta Method |
| $n_{effective} = n / (1 + (m-1)\\rho)$ | 集群随机化有效样本量 |
| $P(\\text{至少一次显著}) = 1 - (1 - \\alpha)^K$ | Peeking 的假阳性膨胀 |
| $z_t = z_{\\alpha/2} / \\sqrt{t}$ | O'Brien-Fleming 边界 |
最后的话:A/B 测试不仅仅是一个 t 检验。它是一个从实验设计、数据管道、分流系统、统计推断、异质性分析到业务决策的完整系统工程。本文覆盖的知识体系,本质上是在回答一个核心问题如何在一个充满噪声和不完美的世界中,可靠地测量因果关系。每多理解一层方法论,就是对这个问题多一层的保障。