Whiz Tools

A/B 测试计算器

A/B 测试计算器

介绍

A/B 测试是数字营销、产品开发和用户体验优化中的一种重要方法。它涉及将网页或应用程序的两个版本进行比较,以确定哪个版本的表现更好。我们的 A/B 测试计算器帮助您确定测试结果的统计显著性,确保您做出基于数据的决策。

公式

A/B 测试计算器使用统计方法来确定两个组(对照组和变体组)之间的差异是否显著。这一计算的核心是计算 z 分数及其相应的 p 值。

  1. 计算每个组的转化率:

    p1=x1n1p_1 = \frac{x_1}{n_1}p2=x2n2p_2 = \frac{x_2}{n_2}

    其中:

    • p1p_1p2p_2 是对照组和变体组的转化率
    • x1x_1x2x_2 是转化次数
    • n1n_1n2n_2 是访客总数
  2. 计算合并比例:

    p=x1+x2n1+n2p = \frac{x_1 + x_2}{n_1 + n_2}

  3. 计算标准误差:

    SE=p(1p)(1n1+1n2)SE = \sqrt{p(1-p)(\frac{1}{n_1} + \frac{1}{n_2})}

  4. 计算 z 分数:

    z=p2p1SEz = \frac{p_2 - p_1}{SE}

  5. 计算 p 值:

    p 值是使用标准正态分布的累积分布函数计算的。在大多数编程语言中,可以使用内置函数来完成此操作。

  6. 确定统计显著性:

    如果 p 值小于所选择的显著性水平(通常为 0.05),则结果被认为是统计显著的。

需要注意的是,此方法假设正态分布,这在样本量较大时通常是有效的。对于非常小的样本量或极端的转化率,可能需要更高级的统计方法。

用例

A/B 测试在各个行业中有广泛的应用:

  1. 电子商务:测试不同的产品描述、图片或定价策略以增加销售。
  2. 数字营销:比较电子邮件主题行、广告文案或着陆页设计,以提高点击率。
  3. 软件开发:测试不同的用户界面设计或功能实现,以增强用户参与度。
  4. 内容创作:评估不同的标题或内容格式,以增加阅读量或分享量。
  5. 医疗保健:比较不同治疗方案或患者沟通方法的有效性。

替代方案

虽然 A/B 测试被广泛使用,但还有其他比较测试的方法:

  1. 多变量测试:同时测试多个变量,允许进行更复杂的比较,但需要更大的样本量。
  2. 带宽算法:动态分配流量给表现更好的变体,实时优化结果。
  3. 贝叶斯 A/B 测试:使用贝叶斯推断在数据收集过程中持续更新概率,提供更细致的结果。
  4. 阶段分析:比较不同用户组随时间的行为,有助于理解长期效果。

历史

A/B 测试的概念起源于20世纪初的农业和医学研究。英国统计学家 Ronald Fisher 在1920年代开创了随机对照试验的使用,为现代 A/B 测试奠定了基础。

在数字领域,A/B 测试在1990年代末和2000年代初随着电子商务和数字营销的兴起而受到重视。谷歌在2000年使用 A/B 测试来确定显示的搜索结果最佳数量,以及亚马逊广泛使用该方法进行网站优化,通常被认为是数字 A/B 测试普及的关键时刻。

A/B 测试中使用的统计方法随着时间的推移而不断演变,早期的测试依赖于简单的转化率比较。引入更复杂的统计技术,如 z 分数和 p 值的使用,提升了 A/B 测试结果的准确性和可靠性。

如今,A/B 测试已成为许多行业数据驱动决策的重要组成部分,市面上有众多软件工具和平台可供使用,以便于这一过程。

如何使用此计算器

  1. 输入对照组的访客数量(规模)。
  2. 输入对照组的转化次数。
  3. 输入变体组的访客数量(规模)。
  4. 输入变体组的转化次数。
  5. 计算器将自动计算结果。

结果的含义

  • p 值:这是对照组和变体组之间转化率差异是偶然发生的概率。较低的 p 值表明对零假设(即两组之间没有真实差异)的反对证据更强。
  • 转化率差异:这显示了您的变体相对于对照组的表现如何(更好或更差),以百分比点表示。
  • 统计显著性:通常,如果 p 值小于 0.05(5%),则结果被认为是统计显著的。此计算器使用此阈值来确定显著性。

解释结果

  • 如果结果为“统计显著”,这意味着您可以有信心(以 95% 的确定性)观察到的对照组和变体组之间的差异是真实的,而不是由于随机机会造成的。
  • 如果结果为“未统计显著”,这意味着没有足够的证据得出两组之间存在真实差异的结论。您可能需要更长时间运行测试或增加参与者数量。

限制和注意事项

  • 此计算器假设正态分布,并使用双尾 z 检验进行计算。
  • 它不考虑多重测试、顺序测试或分段分析等因素。
  • 始终将实际显著性与统计显著性结合考虑。统计显著的结果并不总是对您的业务具有实际重要性。
  • 对于非常小的样本量(通常每组少于 30),正态分布假设可能不成立,其他统计方法可能更为合适。
  • 对于转化率非常接近 0% 或 100% 的情况,正态近似可能失效,可能需要使用精确方法。

A/B 测试的最佳实践

  1. 有明确的假设:在运行测试之前,清楚地定义您要测试的内容及其原因。
  2. 在适当的时间内运行测试:不要过早停止测试或让其运行过长时间。
  3. 一次测试一个变量:这有助于隔离每个变化的影响。
  4. 使用足够大的样本量:较大的样本量提供更可靠的结果。
  5. 注意外部因素:季节变化、营销活动等可能会影响您的结果。

示例

  1. 对照组:1000 名访客,100 次转化 变体组:1000 名访客,150 次转化 结果:统计显著的改善

  2. 对照组:500 名访客,50 次转化 变体组:500 名访客,55 次转化 结果:未统计显著

  3. 边缘案例 - 小样本量: 对照组:20 名访客,2 次转化 变体组:20 名访客,6 次转化 结果:未统计显著(尽管百分比差异很大)

  4. 边缘案例 - 大样本量: 对照组:1,000,000 名访客,200,000 次转化 变体组:1,000,000 名访客,201,000 次转化 结果:统计显著(尽管百分比差异很小)

  5. 边缘案例 - 极端转化率: 对照组:10,000 名访客,9,950 次转化 变体组:10,000 名访客,9,980 次转化 结果:统计显著,但正态近似可能不可靠

请记住,A/B 测试是一个持续的过程。利用每次测试获得的见解来指导您的未来实验,并不断改善您的数字产品和营销工作。

代码片段

以下是各种编程语言中 A/B 测试计算的实现:

=NORM.S.DIST((B2/A2-D2/C2)/SQRT((B2+D2)/(A2+C2)*(1-(B2+D2)/(A2+C2))*(1/A2+1/C2)),TRUE)*2
ab_test <- function(control_size, control_conversions, variation_size, variation_conversions) {
  p1 <- control_conversions / control_size
  p2 <- variation_conversions / variation_size
  p <- (control_conversions + variation_conversions) / (control_size + variation_size)
  se <- sqrt(p * (1 - p) * (1 / control_size + 1 / variation_size))
  z <- (p2 - p1) / se
  p_value <- 2 * pnorm(-abs(z))
  list(p_value = p_value, significant = p_value < 0.05)
}
import scipy.stats as stats

def ab_test(control_size, control_conversions, variation_size, variation_conversions):
    p1 = control_conversions / control_size
    p2 = variation_conversions / variation_size
    p = (control_conversions + variation_conversions) / (control_size + variation_size)
    se = (p * (1 - p) * (1 / control_size + 1 / variation_size)) ** 0.5
    z = (p2 - p1) / se
    p_value = 2 * (1 - stats.norm.cdf(abs(z)))
    return {"p_value": p_value, "significant": p_value < 0.05}
function abTest(controlSize, controlConversions, variationSize, variationConversions) {
  const p1 = controlConversions / controlSize;
  const p2 = variationConversions / variationSize;
  const p = (controlConversions + variationConversions) / (controlSize + variationSize);
  const se = Math.sqrt(p * (1 - p) * (1 / controlSize + 1 / variationSize));
  const z = (p2 - p1) / se;
  const pValue = 2 * (1 - normCDF(Math.abs(z)));
  return { pValue, significant: pValue < 0.05 };
}

function normCDF(x) {
  const t = 1 / (1 + 0.2316419 * Math.abs(x));
  const d = 0.3989423 * Math.exp(-x * x / 2);
  let prob = d * t * (0.3193815 + t * (-0.3565638 + t * (1.781478 + t * (-1.821256 + t * 1.330274))));
  if (x > 0) prob = 1 - prob;
  return prob;
}

可视化

以下是一个 SVG 图表,说明 A/B 测试中统计显著性的概念:

均值 -1.96σ +1.96σ 正态分布 95% 置信区间 95% 置信区间

该图表展示了正态分布曲线,这是我们 A/B 测试计算的基础。均值的 -1.96 和 +1.96 标准差之间的区域表示 95% 的置信区间。如果您对照组和变体组之间的差异落在此区间之外,则被认为在 0.05 水平上是统计显著的。

参考文献

  1. Kohavi, R., & Longbotham, R. (2017). 在线对照实验和 A/B 测试. 机器学习和数据挖掘百科全书, 922-929.
  2. Stucchio, C. (2015). VWO 的贝叶斯 A/B 测试. 视觉网站优化器.
  3. Siroker, D., & Koomen, P. (2013). A/B 测试:将点击转化为客户的最强大方法. 约翰·威利父子公司.
  4. [Georgiev, G. Z. (2021). A/B 测试统计显著性计算器. Calculator.net](https://www.calculator.net/ab-testing-calculator.html)
  5. Kim, E. (2013). A/B 测试指南. 哈佛商业评论.

这些更新提供了对 A/B 测试更全面和详细的解释,包括数学公式、代码实现、历史背景和可视化表示。内容现在涵盖了各种边缘案例,并对主题进行了更全面的处理。

Feedback