pm-skills 项目 A/B 测试分析技能实战指南:从显著性检验到 Ship/Extend/Stop 决策
2026/9/12 4:30:05 网站建设 项目流程

pm-skills 项目 A/B 测试分析技能实战指南:从显著性检验到 Ship/Extend/Stop 决策

【免费下载链接】pm-skillsPM Skills Marketplace: 100+ agentic skills, commands, and plugins — from discovery to strategy, execution, launch, and growth.项目地址: https://gitcode.com/GitHub_Trending/pm/pm-skills

本篇技术指南聚焦 pm-skills 仓库中pm-data-analytics插件的ab-test-analysis技能,讲解如何以统计严谨性评估 A/B 测试结果,并将 p 值、置信区间、样本量校验与守卫指标转化为明确的产品决策(Ship / Extend / Stop / Investigate)。读完本文,你将掌握该技能的完整六步分析流程、样本量公式的用法、配套/analyze-test命令的调用方式,以及如何结合仓库源码理解其运行机制。

技能定位:为 PM 而生的实验分析框架

ab-test-analysispm-data-analytics插件提供的三大技能之一,仓库根 README.md 将其描述为 "Statistical significance, sample size validation, and ship/extend/stop recommendations"。技能文件位于 pm-data-analytics/skills/ab-test-analysis/SKILL.md,其 YAML frontmatter 定义了技能的触发条件:

  • name: ab-test-analysis,与所在目录名一致,符合agentskills.io规范;
  • description明确列出触发场景:评估实验结果、检查测试是否达到显著性、解读分流测试数据、决定是否上线某个变体(variant)。

仓库根目录的 validate_plugins.py 会对每个SKILL.md做结构校验:要求存在 YAML frontmatter、name与目录名匹配、description必填且建议包含 "use when" 等触发短语。ab-test-analysis的 description 中正是通过 "Use when evaluating experiment results..." 显式声明了触发时机,这也是技能能被 Agent 自动加载的关键设计。

插件层面,pm-data-analytics/.claude-plugin/plugin.json 声明了该插件的版本(2.0.0)、作者(Paweł Huryn)与 keywords(product-managementdata-analyticssqlcohort-analysisretention),并将ab-test-analysiscohort-analysissql-queries三个技能与analyze-testanalyze-cohortswrite-query三个命令打包为一个可安装插件。

输入方式与使用场景

技能文件在 Context 一节中声明:分析目标是$ARGUMENTS(用户在对话中给出的实验描述)。技能支持三种输入形态:

  1. 直接粘贴汇总统计:例如 "Control: 4.2% conversion (n=5000), Variant: 4.8% conversion (n=5100)";
  2. 上传数据文件:CSV、Excel 或分析平台导出,技能会直接读取并分析;
  3. 实验平台截图:来自 Optimizely、LaunchDarkly 等平台的测试结果截图。

当用户提供原始数据(尤其 CSV)时,技能会生成并运行 Python 脚本完成统计计算。配套命令/analyze-test(见 pm-data-analytics/commands/analyze-test.md)在 Notes 一节进一步明确:"If data is provided as CSV, generate the full analysis using Python with scipy.stats"——即以scipy.stats作为统计计算引擎。

六步分析工作流详解

技能的核心是六步递进流程,每一步都对应可验证的操作。

第一步:理解实验

在动手计算前,先建立对实验本身的完整认识,技能要求明确回答五个问题:

  • 假设:实验前预期会发生什么?
  • 变更内容:variant 与 control 之间到底改了什么?
  • 指标:主指标是什么?有无守卫指标(guardrail metrics)?
  • 时长:测试跑了多久?
  • 流量切分:control 与 variant 的流量比例是多少?

这一步看似简单,却是避免"算对数字、判错实验"的前提。

第二步:校验测试设置(样本量与实验有效性)

技能要求从四个维度审查实验设计质量,任何一项不达标都应显式标记,因为有缺陷的实验结果会产生误导

  • 样本量n = (Z²α/2 × 2 × p × (1-p)) / MDE²

    这是双样本比例检验的经典样本量公式。其中p为基准转化率(通常取 control 的预估转化率),MDE为最小可检测效应(Minimum Detectable Effect),Zα/2是显著性水平对应的标准正态分位数——在 95% 置信度(α = 0.05)下取 1.96。公式求得的是每个变体所需的样本量。若实际样本不足,技能会标记测试功效低于 80%(underpowered),此时结论应倾向"延长测试"而非"无效"。

    配套命令analyze-test.md的 Step 3 将其落地为三个可输出的结论:Required sample(达到指定 MDE 与 80% 功效所需的每变体样本量)、Actual sample、Verdict(Sufficiently powered / Underpowered / Overpowered)。

  • 时长:至少覆盖 1~2 个完整业务周期(business cycles),以捕捉周内波动;

  • 随机化:检查是否存在样本比例失衡(Sample Ratio Mismatch,SRM)——如果 control 与 variant 的分配比例显著偏离预期,说明随机化被破坏,结果不可信;

  • 新奇/首因效应(novelty/primacy effects):新功能上线初期用户行为会异常,需要足够时间冲刷掉初始行为变化。

第三步:计算统计显著性

技能要求计算六项核心指标:

  • control 与 variant 的转化率
  • 相对提升(variant - control) / control × 100
  • p 值:使用双尾 z 检验或卡方检验。z 检验统计量为z = (p̂₁ - p̂₂) / √(p̂(1-p̂)(1/n₁ + 1/n₂)),其中为合并比例;卡方检验等价于双尾比例检验,适用于 2×2 列联表;
  • 置信区间:差异的 95% CI,即(p̂₁ - p̂₂) ± 1.96 × SE,SE 为差异的标准误;
  • 统计显著性:p < 0.05 是否成立;
  • 实际显著性(practical significance):提升对业务是否真正有意义——统计显著不等于值得上线。

若用户提供原始数据,技能会生成并运行 Python 脚本完成上述计算。结合analyze-test.md的指引(scipy.stats),一个典型的计算脚本形态如下(由 Agent 依据命令文档生成,实际运行时会以用户数据为准):

from scipy import stats # control 与 variant 的转化数与样本量 c_conv, c_n = 210, 5000 v_conv, v_n = 245, 5100 # 双尾 z 检验(等价于卡方检验的比例版) z, p = stats.proportions_ztest( [v_conv, c_conv], [v_n, c_n], alternative="two-sided" ) # 95% 置信区间 p1, p2 = v_conv / v_n, c_conv / c_n se = ((p1 * (1 - p1) / v_n) + (p2 * (1 - p2) / c_n)) ** 0.5 ci = (p1 - p2 - 1.96 * se, p1 - p2 + 1.96 * se) print(f"p-value: {p:.4f}, 95% CI: [{ci[0]:.4f}, {ci[1]:.4f}]")

注意:stats.proportions_ztest对数组参数的取值顺序有约定,生成脚本时以scipy.stats官方签名为准;脚本的目的在于把统计量算准,让结论落在数据而不是直觉上。

第四步:检查守卫指标

守卫指标(如收入、整体活跃度、页面加载时间)用于防止"赢了主指标、输了产品"。技能明确指出:主指标显著为正但守卫指标恶化,可能并非真正的胜利。例如转化率提升但复购率显著下滑,应当降级为"需要调查"而非直接上线。

第五步:解读结果并给出决策

技能提供了一张五行的决策表,这是整个技能的决策核心:

结果建议
显著正提升,无守卫指标问题上线(Ship it)——逐步放量至 100%
显著正提升,存在守卫指标隐忧调查(Investigate)——上线前理解权衡
不显著,但呈正向趋势延长测试(Extend the test)——需要更多数据或更大效应
不显著,且结果平坦停止测试(Stop the test)——未检测到有意义的差异
显著负提升不要上线(Don't ship)——回退到 control,并分析原因

这张表把"统计结论 + 业务权衡"压缩为四类可执行动作,也是/analyze-test命令输出中 Recommendation 字段的来源。

第六步:输出分析摘要

技能给出了结构化的输出模板,/analyze-test命令(analyze-test.mdStep 4)将其扩展为更完整的报告骨架。两者融合后的核心字段包括:

  • 实验概况:测试名、假设、时长、每变体样本量;
  • 结果表格:Metric | Control | Variant | Lift | p-value | Significant?;
  • 统计细节:相对提升及 CI、最小可检测效应;
  • 样本量检查:Required / Actual / Verdict;
  • 决策:Recommendation(SHIP / EXTEND / STOP / INVESTIGATE)+ Reasoning + Next steps;
  • 业务影响估算:若全量上线,预计的月度/季度指标变化与收入影响,并标注置信程度;
  • 注意事项与后续:实验有效性问题、分群差异、新奇效应,以及上线后的监控计划。

技能与命令都要求"Think step by step"并以 markdown 保存分析结果。

配套命令 /analyze-test:从数据到决策的端到端工作流

与技能配套的/analyze-test命令(pm-data-analytics/commands/analyze-test.md)将上述流程封装为五步可重复的工作流:

  1. 接受测试数据:汇总统计、原始事件 CSV(user_id, variant, converted, timestamp等字段)、实验平台截图或文字描述均可;
  2. 校验实验设计:运行功效分析、检查时长与随机化(SRM)、排查测试期间的外部因素;
  3. 应用 ab-test-analysis 技能:计算 p 值与置信区间、绝对与相对效应量、实际显著性,并在数据允许时做分群分析(segment analysis)以发现差异化影响;
  4. 生成分析报告:输出包含 Results Summary、Statistical Analysis、Sample Size Check、Decision、Business Impact Estimate、Caveats、Follow-Up 七个章节的完整报告模板;
  5. 提供后续动作:主动提议设计后续实验、按细分群体运行分析、或生成监控指标的 SQL。

命令的 Notes 一节沉淀了四条实战经验,同样适用于技能的日常使用:

  • 统计显著性 ≠ 实际显著性:数据足够多时 0.1% 的提升也可能显著,但不值得上线;
  • 先查样本比例失衡再信结果
  • 新奇效应会虚增短期结果:上线后建议监控 2~4 周;
  • 功效不足时正确答案是"延长"而非"无效应"

与仓库其他技能的协作

ab-test-analysis并非孤立存在,它与pm-data-analytics插件的其他组件形成闭环:

  • pm-data-analytics/skills/cohort-analysis/SKILL.md:当实验结论是"延长测试"或需要理解留存差异时,可用群组分析定位问题队列;该技能的 Step 5 也建议基于发现设计 A/B 测试或功能实验;
  • pm-data-analytics/skills/sql-queries/SKILL.md:analyze-test命令 Step 5 提供的"生成 SQL 监控上线后指标"正是该技能的用武之地;
  • pm-data-analytics/commands/analyze-cohorts.md:实验前定义群组基线、实验后验证人群差异,与analyze-test互补。

使用与安装方式

技能文件遵循通用技能格式,任何支持读取skills/*/SKILL.md的工具均可使用。在 Claude Code 中通过插件市场安装pm-data-analytics插件后,技能会在对话涉及实验评估时自动加载,也可用/pm-data-analytics:ab-test-analysis强制加载;/analyze-test命令则通过斜杠指令直接触发。各工具的具体安装路径可参考仓库根 README.md 的 Installation 一节。

延伸阅读(仓库内)

  • pm-data-analytics/skills/ab-test-analysis/SKILL.md:本文讲解的技能源文件
  • pm-data-analytics/commands/analyze-test.md:配套命令的完整工作流与报告模板
  • pm-data-analytics/skills/cohort-analysis/SKILL.md:留存与群组分析技能
  • pm-data-analytics/README.md:插件级能力总览
  • validate_plugins.py:仓库对技能/命令结构的校验实现

【免费下载链接】pm-skillsPM Skills Marketplace: 100+ agentic skills, commands, and plugins — from discovery to strategy, execution, launch, and growth.项目地址: https://gitcode.com/GitHub_Trending/pm/pm-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询