A/B 转化实验:双侧两比例 z 检验
基于工作空间中的合成演示输入 experiment.csv。检验 B 组转化率是否与 A 组不同,显著性水平 α=0.05。
10.00%A 组转化率(100/1000)
12.50%B 组转化率(125/1000)
+2.50 pp差值(B − A)
p=0.076869双侧 p 值
假设与结论
H₀:pB − pA = 0;两组真实转化率相同。
H₁:pB − pA ≠ 0;两组真实转化率不同。
结论:p=0.076869 ≥ 0.05,不能在 5% 显著性水平拒绝 H₀。观察到 B 组高 2.50 个百分点,但当前样本下证据不足以宣布统计显著。
输入与估计
| 组 | 用户数 n | 转化数 x | 转化率 x/n |
|---|---|---|---|
| A | 1,000 | 100 | 10.00% |
| B | 1,000 | 125 | 12.50% |
差值定义为 B−A:0.125−0.100=0.025,即 +2.50 个百分点(相对提升 25%,但推断结论仍以区间和检验为准)。
检验计算
合并比例 p̂ = (100+125)/(1000+1000) = 0.1125
SE₀ = √[p̂(1−p̂)(1/1000+1/1000)] = 0.014128
z = (0.125−0.100)/SE₀ = 1.769150
p = 2·[1−Φ(|z|)] = 0.076869
SE₀ = √[p̂(1−p̂)(1/1000+1/1000)] = 0.014128
z = (0.125−0.100)/SE₀ = 1.769150
p = 2·[1−Φ(|z|)] = 0.076869
95% 置信区间
使用未合并的两比例标准误计算 B−A 的 Wald 区间:
[-0.002675, 0.052675],即 [-0.2675, 5.2675] 个百分点。
区间包含 0,与双侧检验在 0.05 水平不显著的结论一致。
解释前提与风险
随机分组意味着在实验设计上,除处理版本外的已知与未知因素应在两组间平均平衡,使差异可归因于版本而非选择偏差。两组观测还应近似独立;同一用户不能重复计数,实验曝光、转化窗口和口径需一致。若存在分流异常、污染、提前停止或严重依从性问题,z 检验的解释会变弱。
若同时检验多个指标、多个时间窗、多个细分人群或多个版本,至少一个偶然显著结果的概率会上升。应预先规定主要指标和分析窗口,并进行多重检验控制(如 Holm 或 Benjamini–Hochberg,具体方法取决于目标),否则不能把未校正的 p<0.05 当作确认性结论。
复算方式
在本文件所在目录运行 python calculate.py。脚本读取同目录的 experiment.csv,使用 Python 标准库计算转化率、合并零假设标准误、z 值、双侧 p 值和 95% Wald 置信区间。