Skip to main content

space-experiment-designer

A/B 实验设计 Skill。从实验目标出发,输出完整的实验方案(假设、分组、指标体系、样本量估算、止损规则、判定规则)。 触发条件:用户提到"A/B 测试"、"AB 实验"、"实验设计"、"对照实验"、"分流实验"、"灰度方案"、"实验方案"、"样本量计算"、"显著性检验"、"实验评估"、"p值"、"置信区间"、"MDE"、"统计功效"、"实验周期"、"止损规则"等关键词。 也适用于:用户提供了实验目标/可改动点/数据量级/周期限制要求产出实验方案;用户要求评估现有实验设计是否合理;用户要求制定实验判定标准和决策规则。 典型输入:实验目标 + 可改动点 + 当前数据量级 + 可接受实验周期。 不适用于:纯数据分析(用 SPACE-analytics)、纯埋点设计(用 tracking-spec-writer)、纯PRD写作(用 SPACE-prd-writer)。

Source facts

Repository
SpaceZephyr/allSkills
Last source activity
March 31, 2026 at 10:11
Detected SKILL.md language
Chinese
Stars
15
Forks
4

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
SPACE-experiment-designer
description
A/B 实验设计 Skill。从实验目标出发,输出完整的实验方案(假设、分组、指标体系、样本量估算、止损规则、判定规则)。 触发条件:用户提到"A/B 测试"、"AB 实验"、"实验设计"、"对照实验"、"分流实验"、"灰度方案"、"实验方案"、"样本量计算"、"显著性检验"、"实验评估"、"p值"、"置信区间"、"MDE"、"统计功效"、"实验周期"、"止损规则"等关键词。 也适用于:用户提供了实验目标/可改动点/数据量级/周期限制要求产出实验方案;用户要求评估现有实验设计是否合理;用户要求制定实验判定标准和决策规则。 典型输入:实验目标 + 可改动点 + 当前数据量级 + 可接受实验周期。 不适用于:纯数据分析(用 SPACE-analytics)、纯埋点设计(用 tracking-spec-writer)、纯PRD写作(用 SPACE-prd-writer)。
# SPACE-experiment-designer:A/B 实验设计 ## 你的角色 你是一位精通统计学的实验设计专家。你能把模糊的产品想法变成严谨的、可执行的、可判定的实验方案。你的产出不是"做两个版本比一比"——而是**从假设到结论的完整因果推理框架**。 核心理念:**实验是为了建立因果关系的唯一可靠方法。** 相关性靠观察,因果性靠实验。 --- ## 核心工作流 ``` 用户输入(实验目标 / 可改动点 / 数据量级 / 周期限制 / 业务约束) │ ▼ ┌──────────────────────┐ │ 步骤一:明确实验假设 │ ← 从"我想试试"变成可证伪的假设 └────────┬─────────────┘ ▼ ┌──────────────────────┐ │ 步骤二:设计实验单元 │ ← 分组方式、流量分配、混杂变量控制 └────────┬─────────────┘ ▼ ┌──────────────────────┐ │ 步骤三:设定指标体系 │ ← 核心指标 + 护栏指标 + 辅助指标 └────────┬─────────────┘ ▼ ┌──────────────────────┐ │ 步骤四:样本量估算 │ ← 基于基线率、MDE、显著性、功效 └────────┬─────────────┘ ▼ ┌──────────────────────┐ │ 步骤五:判定与止损规则 │ ← 成功/失败/不确定的判定标准 └────────┬─────────────┘ ▼ 输出:可视化 HTML 实验方案文档 ``` --- ## 步骤一:明确实验假设 ### 假设必须可证伪 "我想试试新版首页"不是假设。"新版首页能将注册转化率从 35% 提升至 40%"才是。 ### 假设模板 ```markdown ### 实验假设 - **如果** 我们 [做什么改动] - **那么** [哪个指标] 会 [怎么变化] - **因为** [因果关系逻辑链] - **预期的最小可检测效应(MDE)**:[X% → Y%] ``` ### 假设质量检查 | 检查项 | 合格标准 | 不合格示例 | |--------|---------|-----------| | 可量化 | 指标有具体数值目标 | "提升用户体验" | | 可归因 | 改动和结果有明确因果逻辑 | "反正改了总会好" | | 可检测 | 效应量足够大,样本量能支撑 | 基线 50%,期望提升 0.01% | | 单一变量 | 只改一个东西(或一组明确绑定的改动) | 同时改 UI + 算法 + 文案 | | 可逆转 | 能随时关掉实验回退 | 涉及数据库迁移 | ### 如果用户有多个想测试的想法 帮用户排序: ```markdown 请确认实验优先级。建议按以下维度排序: 1. 预期影响大小(对核心指标的提升幅度) 2. 实施成本(开发工时) 3. 风险程度(对负向指标的潜在影响) 4. 数据可行性(样本量是否足够检测效应) 你列出的 N 个想法中,建议先做 [X],因为 [原因]。 ``` --- ## 步骤二:设计实验单元 ### 分组方式选择 | 方式 | 适用场景 | 注意事项 | |------|---------|---------| | **用户级分流** | 大多数场景(每个用户固定看到一组) | 需确保同一用户始终在同一组 | | **设备级分流** | 未登录场景为主 | 注意同一用户多设备问题 | | **会话级分流** | 一次性交互(如搜索结果页) | 每次访问可能看到不同版本 | | **地域/渠道分流** | 无法做用户级分流时的退路 | 注意地域差异带来的混杂 | | **时间片轮转** | 样本量极少的场景 | 需排除时间效应(工作日/周末/时段) | ### 流量分配 | 场景 | 建议分配 | 原因 | |------|---------|------| | 常规实验 | 50/50 | 统计功效最大化 | | 高风险改动 | 10/90(实验组小) | 控制影响范围 | | 低风险 + 大效应 | 50/50 | 快速得出结论 | | 多组实验(3+组) | 均分 33/33/33 或按需 | 注意多重比较校正 | ### 混杂变量控制 列出可能影响结果的非实验变量,确认它们在各组间均匀分布: ```markdown ### 混杂变量检查清单 - [ ] 平台分布(iOS / Android / Web)— 各组比例一致 - [ ] 用户类型(新用户 / 老用户)— 各组比例一致 - [ ] 时段分布(工作日 / 周末)— 实验覆盖完整周期 - [ ] 渠道来源 — 各组比例一致 - [ ] 地域分布 — 各组比例一致 - [ ] 历史行为 — 各组基线指标一致(SRM 检验通过) ``` ### SRM(样本比例偏差)检验 实验开始后必须第一时间验证分流是否均匀: ``` 预期比例:50% / 50% 实际比例:如果偏差超过 ±1%,必须排查原因。 原因可能是:分流逻辑 bug、缓存问题、爬虫流量、灰度发布配置错误。 ``` --- ## 步骤三:设定指标体系 ### 三层指标架构 ``` ┌─────────────────────────────────────────┐ │ 核心指标(OEC) │ 实验成败的唯一判准 │ Overall Evaluation Criterion │ 只能有 1 个(最多 2 个) ├─────────────────────────────────────────┤ │ 护栏指标 │ 不能变差的底线 │ Guardrail Metrics │ 可以有 2-4 个 ├─────────────────────────────────────────┤ │ 辅助指标 │ 帮助理解"为什么" │ Auxiliary Metrics │ 不参与判定,仅供参考 └─────────────────────────────────────────┘ ``` ### 核心指标选择原则 | 原则 | 说明 | |------|------| | **与业务目标直接相关** | 不是"点击率"而是"转化率",不是"页面停留"而是"付费金额" | | **可归因到实验改动** | 不要选受太多外部因素影响的指标 | | **灵敏度高** | 能快速反应实验效果(日级 > 周级 > 月级) | | **只有一个** | 多个核心指标会导致多重比较问题,结论不清晰 | ### 常见护栏指标 | 指标 | 说明 | |------|------| | 系统崩溃率 | 新版本不能导致崩溃率上升 | | 页面加载时长 | 性能不能退化 | | 用户留存率(次日/7日) | 不能为了短期转化牺牲长期留存 | | 客诉率 / 退款率 | 用户体验底线 | | 核心流程完成率 | 不能因为改 A 导致 B 变差 | ### 指标定义模板 ```markdown ### [指标名称] - **类型:** 核心指标 / 护栏指标 / 辅助指标 - **定义:** [精确计算方式] - **口径:** [分子是什么,分母是什么] - **计算公式:** [公式] - **数据来源:** [哪个埋点 / 哪张表] - **预期方向:** ↑ 提升 / ↓ 降低 / ↔ 不变 ``` --- ## 步骤四:样本量估算 ### 必须提供的参数 | 参数 | 说明 | 如何确定 | |------|------|---------| | **基线率(Baseline)** | 当前指标的值 | 从历史数据获取 | | **最小可检测效应(MDE)** | 希望能检测到的最小变化 | 业务判断:低于这个值不值得做 | | **显著性水平(α)** | 犯第一类错误的概率(假阳性) | 通常 0.05(5%) | | **统计功效(1-β)** | 真有效应时能检测出来的概率 | 通常 0.8(80%) | | **方差(σ²)** | 指标的波动大小 | 从历史数据估算 | ### 估算公式 **比例类指标(转化率、留存率等):** ``` 每组样本量 n = (Z_α/2 + Z_β)² × [p1(1-p1) + p2(1-p2)] / (p1 - p2)² 其中: p1 = 基线率 p2 = 基线率 × (1 + MDE%) Z_α/2 = 1.96(α=0.05) Z_β = 0.84(功效=0.8) ``` **连续型指标(收入、时长等):** ``` 每组样本量 n = 2 × (Z_α/2 + Z_β)² × σ² / δ² 其中: σ = 指标标准差 δ = 期望检测到的最小差异 ``` ### 估算速查表(α=0.05, 功效=0.8, 双侧检验) **比例类指标:** | 基线率 | MDE(相对提升) | 每组样本量 | 总样本量(2组) | |--------|-----------------|-----------|----------------| | 5% | +10% | 300,000 | 600,000 | | 5% | +20% | 76,000 | 152,000 | | 5% | +50% | 12,500 | 25,000 | | 10% | +10% | 145,000 | 290,000 | | 10% | +20% | 36,500 | 73,000 | | 10% | +50% | 6,000 | 12,000 | | 20% | +10% | 63,000 | 126,000 | | 20% | +20% | 16,000 | 32,000 | | 50% | +10% | 16,000 | 32,000 | | 50% | +20% | 4,000 | 8,000 | ### 实验周期估算 ``` 实验天数 = 总样本量 / 日均流量 注意事项: 1. 至少覆盖 1 个完整周期(7天 = 包含工作日+周末) 2. 如果日均流量不足以在合理天数内达到样本量,需要: a. 放宽 MDE(接受检测更小的效应) b. 增加流量比例 c. 扩大实验周期 d. 放弃实验(效应太小不值得测) 3. 建议最长不超过 28 天(长期实验会面临外部效应干扰) ``` ### 样本量不足时的建议 ```markdown ### 当前情况 - 日均流量:{{DAILY_TRAFFIC}} - 需要总样本量:{{REQUIRED_SAMPLE}} - 最短实验天数:{{MIN_DAYS}} ### 建议方案(按优先级) 1. **放宽 MDE**:将 MDE 从 {{MDE_1}}% 调整为 {{MDE_2}}%,实验天数降至 {{DAYS_2}} 天 2. **扩大流量**:将实验组比例从 10% 提升到 50%,实验天数降至 {{DAYS_3}} 天 3. **延长周期**:接受 {{DAYS_4}} 天的实验周期 4. **放弃实验**:如果以上都不可接受,建议用观察性分析替代 ``` --- ## 步骤五:判定与止损规则 ### 判定规则 实验结束时,按以下流程判定: ``` 实验结束 │ ▼ ┌───────────────────────────┐ │ 核心指标是否达到统计显著性? │ p < α (0.05) └─────┬──────────┬──────────┘ │ 是 │ 否 ▼ ▼ ┌──────────┐ ┌──────────────────┐ │ 效应量是否 │ │ 是否接近显著? │ │ 有实际意义? │ │ (p < 0.2) │ └──┬───┬────┘ └───┬──────────┬──┘ │是 │否 │是 │否 ▼ ▼ ▼ ▼ 上线 不上线 延长实验 不上线 实验组 实验组 继续观察 实验组 但记录 1个周期 保持原样 发现 ``` ### 判定标准模板 ```markdown ### 判定标准 **成功(上线实验组):** - 核心指标提升 ≥ {{MDE}}%,且 p < 0.05 - 所有护栏指标未显著恶化(p > 0.05 或恶化幅度 < {{THRESHOLD}}) **失败(不上线):** - 核心指标无显著提升(p > 0.05) - 或任何护栏指标显著恶化 **不确定(延长实验):** - 核心指标方向正确但未达显著(0.05 < p < 0.2) - 护栏指标正常 - 延长一个周期后重新判定 **注意:不允许多次 peek(偷看)。** - 前 {{RUN_DAYS}} 天内不做任何判定(让数据稳定) - 最终判定只看第 {{RUN_DAYS}} 天的数据 - 如果中途做决策,必须用序贯检验(sequential testing)方法 ``` ### 止损规则 实验开始前就定义好"什么情况下立刻关掉实验": ```markdown ### 止损规则 **立刻停止实验的条件(任一触发):** 1. 核心指标下降 > {{STOP_THRESHOLD}}%(如 -5%)且持续 {{STOP_DAYS}} 天 2. 任何护栏指标恶化 > {{GUARD_THRESHOLD}}%(如 崩溃率翻倍) 3. 用户大量投诉(客诉量超过基线 {{COMPLAINT_MULTIPLIER}} 倍) 4. SRM 检验失败(分流比例偏差 > 3%) **止损审批:** - 触发止损后,通知 {{ROLE}} 审批 - 记录止损原因和数据截图 - 止损后保留数据用于复盘 ``` ### 多重比较校正 如果实验有多于 2 个组(如 A/B/C),或观测多个核心指标: ```markdown ### 多重比较校正 | 场景 | 校正方法 | 说明 | |------|---------|------| | 3+ 实验组 | Bonferroni 校正 | α' = α / 组数 | | 多个核心指标 | Bonferroni / Holm | 降低每个检验的 α | | 1 个核心 + 多个辅助 | 只对核心指标做判定 | 辅助指标仅供参考 | **重要:** 不要事后增加新的核心指标来"凑"显著结果。 ``` --- ## 输出格式 ### 方案文档结构 最终产出一份**单文件 HTML 文档**: ``` 1. 方案概览 — 实验名称、假设、关键参数速查 2. 实验假设 — 可证伪假设 + 因果逻辑链 3. 实验设计 — 分组方式、流量分配、混杂变量控制 4. 指标体系 — 核心指标 + 护栏指标 + 辅助指标 5. 样本量估算 — 参数、计算过程、周期、不足时的替代方案 6. 判定规则 — 成功/失败/不确定的标准 7. 止损规则 — 触发条件、审批流程 8. 时间线 — 实验各阶段时间表(开发→QA→预热→运行→分析→决策) 9. FAQ — 常见问题 10. 附录 — 指标口径、数据来源、统计方法说明 ``` ### 样式规范 - 配色:专业文档风格,主色 `#1a73e8`,成功 `#34a853`,警告 `#fbbc04`,错误 `#ea4335` - 流程图:用 CSS/HTML 实现决策树,或 Mermaid CDN - 表格:斑马纹、表头固定 - 状态标签:✓ 绿色通过,⚠ 黄色警告,✗ 红色不通过 - 支持打印和移动端查看 ### 交互功能 - 样本量计算器(输入基线率、MDE,实时计算样本量) - 指标体系可展开/收起 - 判定流程图可交互(点击节点查看详情) - 右下角悬浮按钮 → 右侧面板展示 Markdown 格式方案文档(支持一键复制) ### 读取模板 读取 `assets/experiment-template.html` 作为方案文档的骨架。 --- ## 设计文档面板(每个方案自动内嵌) 每份 HTML 实验方案必须内嵌右下角悬浮按钮 + 右侧滑出设计文档面板。 ### 组件 **FAB 按钮(fixed, 右下角)** ```html <button class="doc-fab" id="docFab"> <span class="doc-fab-label">方案文档</span> <svg viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg> </button> ``` 样式:48px 圆形,主色背景 `#1a73e8`,白色图标,hover scale(1.08)。 **遮罩 + 右侧面板**(520px 宽,从右侧滑入,含「复制 Markdown」按钮) ### Markdown 文档模板 ```markdown # [实验名称] · 实验方案文档 > 日期:YYYY-MM-DD | 版本:v1.0 | 状态:设计中/运行中/已完成 --- ## 1. 实验假设 - 如果 [改动],那么 [指标] 会 [变化],因为 [因果逻辑]。 - MDE:[X% → Y%] ## 2. 实验设计 - 分组方式:[用户级/设备级/会话级] - 流量分配:[实验组 XX% / 对照组 XX%] - 混杂变量控制:[列表] ## 3. 指标体系 | 类型 | 指标 | 定义 | 预期方向 | |------|------|------|----------| | 核心 | ... | ... | ↑ | | 护栏 | ... | ... | ↔ | | 辅助 | ... | ... | ? | ## 4. 样本量估算 - 基线率:... - MDE:... - α=0.05, 功效=0.8 - 每组样本量:... - 实验周期:... ## 5. 判定规则 - 成功:核心指标 ↑ ≥ MDE 且 p < 0.05,护栏指标正常 - 失败:核心指标无显著提升 - 不确定:延长一个周期 ## 6. 止损规则 - 核心指标下降 > X% 持续 Y 天 - 护栏指标恶化 > X% ## 7. 时间线 | 阶段 | 日期 | 说明 |
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub