样本比率不匹配 (SRM):包含客户案例解决方案的完整指南

已发表: 2022-04-07
A/B 测试中的采样率不匹配

有什么比失败的测试更糟糕的呢?

使测试结果不可靠的测试数据质量问题。

但是如何才能远离不良数据呢?

检查采样率不匹配 (SRM) 是及早发现潜在问题的简单方法。 如果某事是可疑的,那么您越早发现越好。

继续阅读以了解有关采样率不匹配、如何发现它、它如何影响您的测试以及哪些 A/B 测试平台带有内置 SRM 检查的更多信息(因此您不必保留电子表格) .

隐藏
  • 什么是采样率不匹配 (SRM)?
  • 您的 A/B 测试有 SRM 吗? 如何计算采样率不匹配?
    • 使用电子表格
    • 使用在线采样率不匹配计算器
  • SRM 如何影响 A/B 测试?
  • SRM 会影响频率统计模型和贝叶斯统计模型吗?
  • 什么时候应该考虑 SRM?
  • 您应该在哪里检查 SRM 是否存在?
    • 实验作业
    • 实验执行
    • 实验日志处理
    • 实验分析
    • 实验干扰
    • 非实验原因
  • 支持 SRM 警报的 A/B 测试平台
    • 转换体验
    • 优化
    • 通过 MiaProva 实现的 Adob​​e Target
    • 成长书
    • 分裂.io
  • 样本量比不匹配揭秘

什么是采样率不匹配 (SRM)?

当样本(或处理组中的访问者)的实际数量与预期不匹配时,A/B 测试中会发生样本比率不匹配或 SRM。

让我们用一个例子来说明这一点。

假设一个网站每周有大约 15,000 名访问者。 我们有 3 个变体,原始(即未更改的页面)和 2 个变体。 如果流量平均分配,您希望每个人收到多少流量? 在理想的世界中,答案是每个变体都应该接收 15,000 / 3 = 5000 名访问者。

现在,每个变体实际上不太可能收到 5000 名访问者,但一个非常接近的数字,例如 4982 或 5021。这种微小的变化是正常的,并且是由于简单的随机性! 但是,如果其中一种变体要接待 3500 名访问者,而其他变体中的访问者约为 5000 人,那么那个变体可能有问题!

与其依靠我们自己的直觉来发现这些问题,不如进行 SRM 测试。 它使用卡方拟合优度检验来告诉我们,例如,4850 或 4750 名访问者与接收到的其他访问者数量相比是否“正常”!

在统计方面,卡方拟合优度检验将观察到的样本数与预期样本数进行比较。 如果存在真正的差异,则 p 值将低于设定的显着性水平 0.01,这对应于 99% 的置信度。

观看 Lukas Vermeer 的视频,深入了解 SRM 的细节以及有关该主题的更多常见问题解答。

您的 A/B 测试有 SRM 吗? 如何计算采样率不匹配?

在 A/B 测试中,SRM 可能是一个真正的恶魔,导致不准确的结果和错误的结论。 好消息是,有一些工具可以帮助您避免头痛。

使用电子表格

由于 Microsoft Excel 和/或 Google 产品的广泛可用性,电子表格是计算 SRM 的最简单方法。

让我们再举一个例子。

我们将为 A/B 测试计算 SRM,流量拆分为 50/50,观察到的访问者数量分别为 214,598 和 241,156 的原始和变体。

我们将使用卡方检验来查看观察到的流量拆分是否与预期的流量拆分匹配。 如果没有,您将想知道观察到的值是否与预期值有足够的差异以引起关注并保证丢弃结果。

您需要使用电子表格中的 CHISQ.TEST 函数来计算 p 值,如下面的电子表格所示。

采样率不匹配计算电子表格

在我们的示例中,p 值为 0。当 p 值低于 0.05 时,您手头上有一个 SRM,并且在大多数情况下有足够的证据来驳回测试结果。

使用在线采样率不匹配计算器

  1. Convert 的计算器可以帮助诊断样本比率不匹配,它还告诉您需要等待多长时间才能完成实验!
    采样率不匹配计算器转换
  2. 另一个 SRM 特定的在线计算器是由 Lukas Vermeer 设计的。 此方法以与先前技术相同的方式计算 SRM,因此如果您遵循并理解该过程,您应该能够使用此在线 SRM 计算器。 只需填写样品的数字,结果将如下所示
    采样率不匹配 SRM 检查器

SRM 如何影响 A/B 测试?

您可能已经在实验期间查看了变体之间的流量分配,并质疑它的准确性。

也许一个看起来像下面的报告。 您可能会看到它并想知道原版有 1330 名访问者但变体 1713 是否正常。

A/B 测试报告中的采样率不匹配 SRM

SRM 比率的简短统计计算(使用上述两种方法之一)将告诉您变化比率是否可以接受。

两个变体(原始和变体 1)之间的实际分割是否对应于预期值? 如果不是这种情况,您应该拒绝数据并在解决问题后重新启动测试。

SRM 会影响频率统计模型和贝叶斯统计模型吗?

是的。

无论是使用贝叶斯(Google Optimize、Optimizely、VWO、A/B Tasty)还是频率论(Convert Experiences、Dynamic Yield)方法分析数据,SRM 的原因对实验结果的有效性都有相同的影响。

所以上面的 SRM 计算器也可以用来检查使用贝叶斯统计的平台上的 SRM。

什么时候应该考虑 SRM?

在您的测试中发现样本比率不匹配并不一定意味着您需要丢弃结果。

那么什么时候真的有必要认真对待 SRM 计算呢?

让我们通过几个例子来了解一下。

示例 #1

您运行一个实验,其中原始和变体各分配了 50% 的用户。 因此,您希望在每个中看到大约相同数量的用户。

结果返回为

  • 控制:21,588 名用户
  • 治疗:15,482 名用户

让我们通过 SRM 检查器检查它们:

采样率不匹配 SRM 检查器示例

这是否值得关注?

上述样本比率的 p 值 <0.0001,因此在要求等比例的设计下,看到这个比率或更极端的比率的概率是 <0.0001!

您绝对应该担心出现问题,因为您刚刚观察到一个极不可能发生的事件。 因此,在实验的实施中更有可能存在一些错误,您不应该相信任何结果。

示例 #2

您运行另一个实验,其中原始和变体分配了相同百分比的用户。 您计算 p 值,它 <0.002,所以这是一个非常不可能的事件。

指标有多差? 你真的必须放弃结果吗?

使用 Convert Experiences 之类的实验平台,您可以对结果应用一些测试后细分,并发现如果您排除 Internet Explorer 用户,SRM 就消失了。

在这种情况下,被排除的用户很可能使用旧的 IE 浏览器,这就是 SRM 的原因; 由于变异的一些变化,机器人没有正确分类,导致比率不匹配。

如果没有该细分,剩余的用户百分比会得到适当的平衡,并且指标看起来很正常。

采样率不匹配 SRM A/B 测试报告浏览器

如果没有发现 SRM,整个实验将被视为重大失败。

但是一旦发现 SRM,就可以删除一小部分,并将实验用于适当的分析。

在类似的情况下,您可以放心地忽略排除的用户,并且可以使用实验

示例#3

您运行了一个实验,并发现您的测试中有 SRM 标记。

但是,如果您注意图表,您会注意到转化率曲线保持平行,计算得出的置信度为 99.99%。 该模式应该为您提供足够的确定性来证明测试是有效的。

诊断 A/B 测试报告中的样本比率不匹配

在这种情况下,您可以放心地忽略 SRM 并继续信任您的数据

您应该在哪里检查 SRM 是否存在?

有几个领域可能会发生 SRM。 让我们看一下 Lukas Vermeer 的原因分类法:

  1. 实验分配——可能存在不正确的分桶(用户被放置在不正确的集群中)、错误的随机化函数或损坏的用户 ID 的情况。
  2. 实验执行——变化可能在不同的时间开始(导致差异),或者可能存在过滤器执行延迟(确定哪些组接受实验)。
  3. 实验日志处理——自动机器人删除真实用户,延迟信息到达日志。
  4. 实验分析- 错误触发变化或错误启动它。
  5. 实验干扰——实验可能会受到攻击和黑客攻击,或者另一个正在进行的实验的影响可能会干扰当前的实验。
在哪里可以发现采样率不匹配
资源

如果您有 SRM 并且不确定从哪里寻找答案,那么上面的分类是一个有价值的起点。

为了让事情更清楚,我们现在将为您提供每个案例的真实示例。

实验作业

这里需要关注的最有趣的事情之一是您的 A/B 测试平台正在使用的随机化功能。

在下面的示例中,Wish 的数据科学家在 A/A 测试中发现了 SRM 问题,经过长期调查,得出的结论是 SRM 的出现是因为它们的随机化不是完全随机的。

采样率不匹配随机化算法
资源

为了获得有效的实验结果,随机化程序至关重要。

A/B 测试中使用的统计测试的一个关键假设是使用随机样本。 在实验桶之间,随机化平衡了观察到的和未观察到的用户属性,在被测产品功能与试验结果的任何结果差异之间建立了因果关系。

专业提示:Convert 有自己的随机化算法,可确保变体之间的均匀分布,因此不会导致 SRM。 但是,如果您已经使用其他工具实现了随机化,则可以按照这些步骤将访问者分成不同的类型。

实验执行

在实验执行方面,有两个主要原因可能会导致您的体验中出现 SRM。

1. 脚本未正确安装在其中一个变体上

始终检查您的 A/B 测试平台的脚本是否正确安装在 Original 和 Variations 上。

我们的客户支持团队最近解决了一个案例,即未在其中一个变体中添加转换脚本,导致测试出现 SRM。

确保在您希望运行体验的所有页面上添加脚本,如下所示:

采样率不匹配实验执行问题

2.页面定位配置错误

在这种情况下,SRM 不匹配是因为测试的目标设置不正确。

如果设置错误,一些访问者被选择转发到变体,但重定向失败,这很可能是因为原始 URL 表达式与在测试中存储并重定向的所有访问者的每个 URL 都不匹配。

为避免这种情况,请重新配置实验变体 URL 表达式并重新运行测试。

这里还有两个场景,向您展示如何使用转换体验设置页面定位,以避免拆分 URL 测试中的 SRM。

场景 1:仅使用拆分 URL 定位主页 (https://www.convert.com) 并传递访问者可能拥有的所有查询参数

在这里,在站点区域中,页面 URL 需要与https://www.convert.com 完全匹配。 在排除部分,查询字符串应包含v1=true以避免任何重定向(因为如果您最终访问https://www.convert.com ?v1=true和流量,实验条件仍将匹配分布可能最终不均匀)。

然后,当你定义你的变体时,保持这样:

采样率不匹配实验执行问题解决方案

场景 2:使用拆分 URL 并传递查询参数来定位所有页面,而不仅仅是主页 (https://www.convert.com)

在这里,您需要使用包含https://www.convert.com的“页面 URL”定义您的站点区域。 在排除部分,查询应包含v1=true。

定义变体时,使用下面的正则表达式来捕获所有页面:

采样率不匹配实验正则表达式解决方案

实验日志处理

在这里,作为 SRM 的主要原因,我们确定了可以针对您的体验的机器人。 如果我们在用户代理上发现任何异常模式,您可以联系我们检查我们保留的其他日志。

例如,我们的支持团队帮助了一位测试有 SRM 的客户。

在他们的案例中,当我们通过Browser=Other过滤报告时,我们看到了不均匀的拆分和 SRM。 但是当我们通过Browser=Chrome+Safari过滤相同的报告时,没有检测到 SRM,也没有分布不均。

实验报告中的采样率不匹配 SRM
转换体验实验报告

因此,我们检查了几个将Browser设置为Other的事件,它们都显示了“site24x7”的用户代理。 我们立即知道这是某种监控软件,幸运的是,它是广告并且使用不同的用户代理。 如果它隐藏在一个普通的用户代理后面,就不可能找到它。

为了解决这个问题,我们继续将此用户代理添加到我们从流量中排除的机器人列表中。 不幸的是,在我们将机器人添加到列表之后,这种变化可能会对未来的数据产生影响,但至少它被找到并修复了。

实验分析

此类别主要影响手动触发设置的体验。

例如,这发生在您需要自己处理触发的单页应用程序上。

因此,每当您必须使用与下面类似的代码手动执行此操作时,请密切注意测试中潜在的 SRM。

 window._conv_q = _conv_q || [];
window._conv_q.push(["run","true"]);

实验干扰

这是指用户干预,其中一种变化在体验期间暂停。 想象一下,您有一个拆分 URL 测试运行了几个星期,并且您不小心或故意暂停了变体,只保留原始运行。

紧接着,根据您的网站流量,您会注意到为您的测试计算的 SRM。

采样率不匹配 SRM 实验干扰

在这种情况下,您可以排除暂停变体的日期范围或重置体验数据。

非实验原因

如果以上类别都不能揭示您的 SRM 的根本原因,我们建议您在您的网站上添加错误跟踪软件(如 Sentry),以识别您网站的更深层次的问题。

支持 SRM 警报的 A/B 测试平台

您可能想知道哪些 A/B 测试平台支持此 SRM 功能并为您提供警报,而无需您自己计算。

我们完成了研究并编制了一份工具清单。

转换体验

截至 2021 年 12 月,我们引入了自己的 SRM 方法。

如果您是用户,您可以从项目配置 > 更多设置中启用 SRM 检查。

转换体验应用程序中的采样率不匹配 SRM 检查

然后您将能够在报告中看到 SRM 标签:

样本比率不匹配 SRM 转换体验报告

优化

2021 年 9 月优化开源了顺序测试解决方案,任何人都可以实施该解决方案来检测 SRM。

Optimizely 已将 ssrm-test 转变为生产就绪的后端微服务,可以同时在所有正在运行的实验上运行。

在 Optimizely 的结果页面上,您可以设置警报并从 ssrm-test 获取实时结果:

采样率不匹配 SRM 优化
资源

Optimizely 员工统计学家 Michael Lindon 说,SRM 是一个典型的问题,当测试执行不佳时会出现。

要运行产品实验,需要大量的基础设施,因此可能会出现错误。 例如,如果网站访问者没有始终如一地被分到实验变体中并在原始条件和变体条件下进行转换,则为该用户获得的数据对于评估实验的影响无效。

主要问题是当 SRM 产生可能会影响您的指标并且未被检测到的不准确数据时。

通过 MiaProva 实现的 Adob​​e Target

2021 年 4 月,Adobe Target 与 MiaProva 合作,提供有关 A/B 活动的 SRM 警报。

当检测到不匹配时,这些警报会通知使用 Adob​​e Target 的 MiaProva 客户。 这种方法会自动将卡方测试应用于每个实时 A/B 测试。

采样率不匹配 SRM Adob​​e Target 应用程序
采样率不匹配 SRM Adob​​e 目标警报
来源:Live Dashboard 上的 MiaProva 警报

成长书

GrowthBook 是一个开源 A/B 测试平台,具有贝叶斯统计引擎和针对每个实验的自动 SRM 检查。

采样率不匹配 SRM 增长手册
资源

每个实验都会寻找一个 SRM,并在识别出一个 SRM 时向用户发出警告。

当您预测某个流量拆分(例如 50/50),但看到一些截然不同的情况(例如 40/60)时,您会收到警告。 这仅在 p 值小于 0.001 时显示,表明它极不可能偶然发生。

样本比率不匹配 SRM GrowthBook 警报

这种测试的结果不应该被信任,因为它们可能具有欺骗性,因此发出警告。 相反,用户应该在重新开始实验之前找到并纠正错误的来源。

分裂.io

Split 是一个功能交付平台,可为功能标志管理、软件实验和持续交付提供支持。

每次计算更新时,Split 平台都会检查采样率,以查看目标采样率和当前采样率之间是否存在显着差异。 此样本比率检查可以在关键和组织指标的摘要下方找到,以及其他重要详细信息,例如持续时间和上次更新时间。

分裂.io
资源

样本量比不匹配揭秘

您可能会问,多久查看一次 SRM 是“正常的”?

卢卡斯·维米尔(Lukas Vermeer)说得最好。 即使是大型科技公司在其在线对照实验中也观察到 SRM 的自然频率为 6% 到 10%。

现在,如果 SRM 更频繁地重复,则需要对实验设计或网站进行更深入的调查。

如果您遇到上述问题,我们的团队随时为您提供帮助! 点击这里联系我们的团队。