相互排斥的实验

云眼About 4 min

相互排斥的实验

本主题介绍如何使用互斥实验并防止可能使结果无效的交互效应。使用互斥组可确保用户不会看到适用于同一标帜的重叠实验。

互斥组的工作原理

对于不相互排斥的实验,云眼灰度实验对每个实验使用唯一值来分桶用户。唯一值决定了用户是否进入特定实验。由于此值是随机的、唯一的,并且在实验之间并不相互排斥,因此某些用户可能会输入多个实验。有关更多信息,请查看有关分桶工作原理的文档。

例如,假设有两个实验:A 和 B。每个流量分配open in new window 20%(符合实验条件的总流量的百分比)。

以下是预期的流量分配:

  • 16% 的流量仅属于实验 A
  • 实验 B 中只有 16% 的流量落在实验 B 中
  • 实验 A 和实验 B 中都有 4% 的流量
  • 64% 的流量不在任何实验中

在上面的示例中,实验 A 和实验 B 的结果可能出现偏差。如果同时看到 A 和 B 的用户与只看到 A 或 B 的用户的行为不同,则 A 和 B 的结果会因重叠而倾斜。这称为交互效应。

如果实验 A 和 B 互斥,则云眼灰度实验会选择相同的随机值(互斥组唯一)来存储实验 A 和 B 中的用户。此方法可确保相同用户的实验不会重叠。如果实验 A 和实验 B 互斥,则流量分配如下所示:

  • 20% 的流量仅属于实验 A
  • 实验 B 中只有 20% 的流量落在实验 B 中
  • 60% 的流量不在任何实验中

云眼灰度实验还可确保互斥组中在不同时间运行的实验之间的互斥性。

最佳实践

为了防止交互作用效应的任何可能性,可以考虑使所有实验相互排斥。但是,有时,使项目中的所有实验相互排斥需要比可用流量更多的流量。根据达到显著性所需的流量级别以及正在测试代码库的哪些部分,我们建议某些实验重叠,而某些实验相互排斥。

在以下情况下,您更有可能看到交互效果:

  • 您正在应用程序的同一区域上运行两个实验。
  • 您正在对可能存在大量重叠的同一流运行两个实验。
  • 您正在运行的实验可能会对与其他实验共享的转化指标产生重大影响。

如果这些要点不适用,则通常不需要创建互斥实验。实验的两个变体都按比例暴露于另一个实验。

但是,在以下几种情况下,建议创建互斥实验或运行顺序实验(等待一个实验结束,下一个实验开始)。即使您确保实验是互斥的,仍然可以看到在不同时间运行的实验的交互效果。在对某些用户群体进行实验后,永远不可能为将来的实验获得真正无偏见的群体。如果担心在不同时间运行的实验之间的交互效应,请在创建新实验之前完成互斥组中的所有实验。

例如,假设创建了一个包含四个实验(A、B、C 和 D)的互斥组,每个实验的流量分配率为 25%。假设停止实验 D 并开始另一个实验 E。在这种情况下,E 的实验结果可能会有偏差,因为 E 中的所有用户之前都接受了 D 的处理。 等待实验 A、B 和 C 完成,然后再开始实验 E,以确保流量在所有以前的实验中均匀采样。

在为业务做出重要决策时,请评估实验重叠的风险承受能力。评估优先路线图,以确保您正在规划变更设计、目标和执行计划,以最好地满足业务需求。

更多信息

使用互斥

云眼中的互斥实验open in new window

Last update:
Contributors: “zhangweixue”