# Ab Test Designer

> A/B 测试设计器 - 设计产品页面 A/B 测试，包括样本量计算、统计显著性分析和结果解读

- Skill: `huifer/ab-test-designer` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add huifer/ab-test-designer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/huifer/ab-test-designer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: huifer (https://skillmd.com/u/huifer)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/huifer/ab-test-designer

---


# A/B Test Designer 🧪

> 科学的 A/B 测试设计，数据驱动的优化决策

专业的 A/B 测试设计系统，帮助电商企业设计、执行和分析科学的 A/B 测试，通过数据驱动优化产品页面和营销策略。

---

## 🎯 核心功能

### 1. 测试设计
```
测试类型:
├─ 标题测试
├─ 价格测试
├─ 图片测试
├─ 描述测试
├─ CTA测试
├─ 布局测试
└─ 完整页面测试

测试要素:
├─ 原假设（H0）
├─ 备择假设（H1）
├─ 变量定义
├─ 对照组设置
└─ 实验组设置
```

### 2. 样本量计算
```
计算参数:
├─ 基准转化率
├─ 最小检测效应（MDE）
├─ 显著性水平（α）
├─ 统计功效（1-β）
└─ 测试变体数量

计算方法:
├─ Z检验样本量
├─ 卡方检验样本量
├─ 顺序检验样本量
└─ 贝叶斯样本量
```

### 3. 统计分析
```
分析方法:
├─ Z检验（比例）
├─ t检验（均值）
├─ 卡方检验（分类）
├─ 方差分析（多组）
└─ 贝叶斯分析（概率）

显著性指标:
├─ p值
├─ 置信区间
├─ 效应量
└─ 统计功效
```

### 4. 结果解读
```
解读维度:
├─ 统计显著性
├─ 实际显著性
├─ 商业影响
├─ 风险评估
└─ 实施建议

可视化:
├─ 转化率曲线
├─ 置信区间图
├─ 累积收益图
└─ 贝叶斯后验分布
```

---

## 📋 A/B 测试流程

### Step 1: 问题定义
```yaml
识别机会:
  数据分析:
    - 高流量页面
    - 低转化率页面
    - 高跳出率页面
    - 高退单率页面

  用户反馈:
    - 客户投诉
    - 评价反馈
    - 客服咨询
    - 用户测试

  竞品分析:
    - 竞品做法
    - 行业趋势
    - 最佳实践
    - 创新机会

  优先级评估:
    - 影响范围
    - 实施难度
    - 资源投入
    - 预期收益
```

### Step 2: 假设形成
```yaml
假设结构:
  IF-THEN-BECAUSE:
    IF: [改变什么]
    THEN: [预期结果]
    BECAUSE: [原因机制]

示例:
  IF: 将"立即购买"改为"加入购物车-免运费"
  THEN: 转化率提升 15%
  BECAUSE: 降低决策风险，增加购买动机

假设评估:
  具体: 可量化
  可测: 可验证
  相关: 与目标相关
  时间: 有时间框架
```

### Step 3: 变体设计
```yaml
设计原则:
  单一变量:
    - 一次测试一个变量
    - 避免混淆因素
    - 清晰归因

  对照组:
    - 保持原样
    - 作为基准
    - 随机分配

  实验组:
    - 修改目标变量
    - 控制其他因素
    - 独立随机分配

设计示例:
  标题测试:
    对照组: "Markdown 编辑器"
    实验组: "技术写作者的 Markdown 编辑器"

  价格测试:
    对照组: ¥99
    实验组: ¥89（限时优惠）

  CTA测试:
    对照组: "提交"
    实验组: "立即获得-30天退款保证"
```

### Step 4: 样本量计算
```yaml
计算公式:
  两比例检验:
    n = (Zα/2 + Zβ)² × [p1(1-p1) + p2(1-p2)] / (p1-p2)²

参数设定:
  α (显著性水平): 0.05
  1-β (统计功效): 0.8
  p1 (基准转化率): 0.02
  p2 (目标转化率): 0.023 (+15%)

快速计算表:
  基准率 | 提升 | 每组样本量 | 总样本量
  ------|-----|----------|--------
  1%    | 20% | 156,800  | 313,600
  2%    | 15% | 46,800   | 93,600
  3%    | 10% | 39,000   | 78,000
  5%    | 10% | 23,400   | 46,800
  10%   | 5%  | 15,600   | 31,200
```

### Step 5: 测试执行
```yaml
执行步骤:
  准备:
    - 技术实现
    - 数据追踪
    - 质量检查
    - 灰度发布

  启动:
    - 随机分流
    - 流量分配
    - 监控启动
    - 实时检查

  监控:
    - 每日检查
    - 异常检测
    - 数据质量
    - 用户体验

  结束:
    - 达到样本量
    - 统计显著性
    - 时间限制
    - 商业决策
```

### Step 6: 结果分析
```yaml
统计分析:
  描述性统计:
    - 转化率
    - 标准差
    - 置信区间
    - 效应量

  推断性统计:
    - p值
    - 显著性判断
    - 统计功效
    - 贝叶斯概率

  商业分析:
    - 收益估算
    - 成本分析
    - ROI计算
    - 风险评估
```

---

## 🧪 常见测试场景

### 场景 1: 产品标题测试
```yaml
测试目标: 提升点击率和转化率

对照组:
  标题: "无线蓝牙耳机"

实验组 A:
  标题: "降噪无线蓝牙耳机 - 30小时续航"

实验组 B:
  标题: "运动健身专用蓝牙耳机 - 防水防汗"

假设:
  H0: 标题修改不影响转化率
  H1: 包含卖点的标题提升转化率 20%

样本量:
  基准转化率: 2%
  预期提升: 20%
  每组样本: 46,800访客
  测试周期: 2-3周

成功标准:
  - 统计显著性: p < 0.05
  - 最小提升: >15%
  - 置信区间: 不跨越0
```

### 场景 2: 价格测试
```yaml
测试目标: 找到最优价格点

对照组:
  价格: ¥199

实验组 A:
  价格: ¥179（-10%）

实验组 B:
  价格: ¥189（-5%）

假设:
  H0: 价格变化不影响总收益
  H1: 降价提升销量，总收益增加

关注指标:
  - 转化率
  - 总收益
  - 利润率
  - 客单价

样本量:
  基准转化率: 3%
  每组样本: 39,000访客
  测试周期: 2-3周

风险控制:
  - 设置最低价格
  - 监控利润率
  - 库存影响
  - 品牌价值
```

### 场景 3: CTA 按钮测试
```yaml
测试目标: 提升点击率

对照组:
  文案: "提交"
  颜色: 灰色
  位置: 右下角

实验组 A:
  文案: "立即购买-免运费"
  颜色: 红色
  位置: 右下角

实验组 B:
  文案: "立即购买-30天退款保证"
  颜色: 绿色
  位置: 右下角

假设:
  H0: CTA修改不影响点击率
  H1: 降低风险的CTA提升点击率 25%

样本量:
  基准点击率: 5%
  预期提升: 25%
  每组样本: 15,600访客
  测试周期: 1-2周
```

### 场景 4: 产品图片测试
```yaml
测试目标: 提升转化率和停留时间

对照组:
  图片: 产品白底图

实验组 A:
  图片: 产品使用场景图

实验组 B:
  图片: 产品+模特图

假设:
  H0: 图片类型不影响转化率
  H1: 场景化图片提升转化率 15%

关注指标:
  - 转化率
  - 停留时间
  - 跳出率
  - 点击率

样本量:
  基准转化率: 2.5%
  预期提升: 15%
  每组样本: 54,600访客
  测试周期: 3-4周
```

### 场景 5: 价格展示测试
```yaml
测试目标: 优化价格展示方式

对照组:
  展示: "¥199"

实验组 A:
  展示: "¥199 ¥299"（划线价）

实验组 B:
  展示: "¥199 (省¥100)"

实验组 C:
  展示: "分期: ¥16.58×12期"

假设:
  H0: 展示方式不影响转化率
  H1: 锚定价格提升感知价值，提升转化率

样本量:
  基准转化率: 2%
  每组样本: 46,800访客
  测试周期: 2-3周
```

---

## 📊 统计分析方法

### Z 检验（比例检验）
```python
# 转化率比较
from statsmodels.stats.proportion import proportions_ztest

# 数据
control_conversions = 1000
control_total = 50000
treatment_conversions = 1200
treatment_total = 50000

# 执行检验
count = [control_conversions, treatment_conversions]
nobs = [control_total, treatment_total]
z_stat, p_value = proportions_ztest(count, nobs)

# 结果判断
if p_value < 0.05:
    print("统计显著！p =", p_value)
else:
    print("不显著", p_value)

# 计算提升
control_cr = control_conversions / control_total
treatment_cr = treatment_conversions / treatment_total
lift = (treatment_cr - control_cr) / control_cr
print(f"提升: {lift:.2%}")
```

### 置信区间
```python
import numpy as np
from statsmodels.stats.proportion import proportion_confint

# 转化率置信区间
conversions = 1200
total = 50000
cr = conversions / total

# 95% 置信区间
ci_low, ci_upp = proportion_confint(conversions, total, alpha=0.05)
print(f"转化率: {cr:.4f}")
print(f"95% CI: [{ci_low:.4f}, {ci_upp:.4f}]")

# 提升置信区间
# 需要考虑两组的方差
```

### 效应量（Cohen's d）
```python
# 标准化均值差异
import numpy as np
from scipy import stats

# 两组数据
control = np.array([...])  # 对照组数据
treatment = np.array([...])  # 实验组数据

# 计算效应量
pooled_std = np.sqrt(
    ((len(control)-1)*control.std()**2 +
     (len(treatment)-1)*treatment.std()**2) /
    (len(control) + len(treatment) - 2)
)
cohens_d = (treatment.mean() - control.mean()) / pooled_std

# 解释
if abs(cohens_d) < 0.2:
    effect = "小"
elif abs(cohens_d) < 0.5:
    effect = "中"
elif abs(cohens_d) < 0.8:
    effect = "大"
else:
    effect = "非常大"

print(f"Cohen's d: {cohens_d:.3f} ({effect}效应)")
```

---

## 🚀 快速命令

### 设计简单测试
```bash
/ab-test-designer --design --type "标题" --page "产品页"
```

### 计算样本量
```bash
/ab-test-designer --calculate --baseline 0.02 --lift 0.15
```

### 分析测试结果
```bash
/ab-test-designer --analyze --control 0.02 --treatment 0.023 --n 50000
```

### 完整测试方案
```bash
/ab-test-designer --full --element "CTA按钮" --variants 3
```

---

## 💡 最佳实践

### 1. 测试设计
- 从高影响、低成本开始
- 一次测试一个变量
- 确保足够的样本量
- 设置清晰的假设

### 2. 数据质量
- 确保随机分流
- 排除异常流量
- 监控数据完整性
- 验证追踪代码

### 3. 统计严谨
- 不提前停止测试
- 不窥视数据
- 使用正确的检验方法
- 考虑多重比较

### 4. 商业决策
- 统计显著 ≠ 商业显著
- 考虑实施成本
- 评估长期影响
- 记录学习成果

---

## 📊 成功指标

### 测试质量
- 统计功效 >80%
- p值 <0.05
- 效应量 >0.2
- 置信区间窄

### 商业价值
- 年化收益 >测试成本10倍
- 实施后持续监控
- 知识库积累
- 文化建立

---

## ⚠️ 常见错误

### 统计错误
- 样本量不足
- 提前停止测试
- 窥视数据
- 忽略方差

### 实施错误
- 未随机分流
- 追踪错误
- 新奇效应
- 污染数据

### 决策错误
- 只关注统计显著性
- 忽略效应量
- 外推过度
- 确认偏误

---

## 🔗 相关 Skills

- `/prime-page-builder` - 创建测试页面
- `/basic-analytics` - 监控测试数据
- `/checkout-optimizer` - 优化结账流程
- `/prime-product-desc` - 优化产品描述

---

**让每一个决策都有数据支持！** 📊

**版本**: 1.0.0
**更新**: 2026-04-12
**作者**: Shopilot Team

