Power Analysis and Sample Size Calculation for A/B Testing
Skill-Power-Analysis-Sample-Size · 02-A_B实验
experimentoptimization其他WF-G Listing内容优化
年化 ROI10万
实现难度⭐☆☆☆☆
业务优先级⭐☆☆☆☆
业务视角
适用角色运营负责人 / 产品经理 · 广告优化师 · 选品负责人
适用平台Amazon Listing · TikTok 广告素材 · DTC 落地页
什么情况下用改了主图/标题/价格,不确定销量变化是改动导致的还是流量波动;两个方案团队各持己见,需要数据裁决
成功是什么样的每次改动都有 ≥95% 置信度的数据结论,好的改动快速全量,坏的及时止损
业务痛点
1. 解决的问题
A/B测试需要多少样本才能检测出真实的效应?
2. 核心算法逻辑
核心问题:A/B测试需要多少样本才能检测出真实的效应?样本太少——检验力不足,假阴性率高(漏掉真实有效的改动);样本太多——浪费流量和时间,拖慢迭代速度。
3. 业务应用场景
业务问题:产品团队想测试新版首页布局对转化率的影响。预期转化率从2.0%提升到2.2%(相对提升10%),需要多少样本?实验要跑多久?
计算流程: 1. 确定参数: - 基准转化率 $p = 0.02$ - MDE = 0.002(绝对提升0.2个百分点) - $\alpha = 0.05$(双侧) - 功效 = 0.80 2. 计算样本量: - 每组需要约 39,000 用户 - 两组共 78,000 用户 3. 计算实验时长: - 日均活跃用户(DAU)= 50,000 - 实验分流50% → 每天进入实验 25,000 人 - 所需天数 = 78,000 / 25,000 ≈ 3.1 天
决策输出: - 实验设计:50/50分流,跑4天(含1天缓冲) - 若4天后结果不显著,不要急于下结论"无效"——可能是MDE设得太小
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
- 数据要求:只需要历史数据的基准值和标准差
- 技术门槛:极低,公式直接计算
- 主要挑战:与业务方沟通MDE的设定(需要平衡统计严谨性和业务实际)
- 所有A/B测试的前提:没有功效分析的A/B测试是不完整的
- 实施成本极低:公式计算,1天完成
- 避免巨大浪费:90%的实验失败源于样本量不足,而非改动无效
7. 代码模板
代码块数量:1 · 路径:未检测到
"""
Power Analysis and Sample Size Calculation for A/B Testing
用于实验前的样本量规划和功效分析
"""
import numpy as np
from scipy import stats
def sample_size_continuous(mde, sigma, alpha=0.05, power=0.8, ratio=1.0):
"""
连续型指标的样本量计算
Args:
mde: 最小可检测效应(绝对值)
sigma: 标准差
alpha: 显著性水平
power: 统计功效
ratio: 实验组/对照组样本量比
"""
z_alpha = stats.norm.ppf(1 - alpha / 2)
z_beta = stats.norm.ppf(power)
n = ((1 + 1 / ratio) * sigma ** 2 * (z_alpha + z_beta) ** 2) / mde ** 2
return int(np.ceil(n))
def sample_size_proportion(p, mde, alpha=0.05, power=0.8, ratio=1.0):
"""
比例型指标(转化率)的样本量计算
Args:
p: 基准转化率
mde: 最小可检测效应(绝对值)
alpha: 显著性水平
power: 统计功效
"""
z_alpha = stats.norm.ppf(1 - alpha / 2)
z_beta = stats.norm.ppf(power)
p1 = p
p2 = p + mde
p_avg = (p1 + p2) / 2
n = (2 * p_avg * (1 - p_avg) * (z_alpha + z_beta) ** 2) / mde ** 2
return int(np.ceil(n))
def calculate_mde(n, sigma, alpha=0.05, power=0.8):
"""
给定样本量,计算可检测的最小效应
Args:
n: 每组的样本量
sigma: 标准差
alpha: 显著性水平
power: 统计功效
"""
z_alpha = stats.norm.ppf(1 - alpha / 2)
z_beta = stats.norm.ppf(power)
8. 论文来源
未自动抽取;请查看原始 Skill 卡片。