有哪些方法可以确保 A/B 测试的总体划分是随机的?

数据挖掘 数据挖掘 统计数据 数据 实验 测试
2021-10-10 02:42:55

在启动 A/B 测试之前,有哪些方法可以确保控制组和目标组中的人口分布对于特定标签(例如购买率)是随机的。

3个回答

只需将它们分成 50/50(或其他百分比,取决于您想要什么)。一旦你想测试一个特定的指标,请确保如果你只能为 A 组的一部分生成该指标,因为某些特定的属性(即你需要这个指标的信息 C),以便仅将它与 B 组中的人进行比较也有信息 C 以避免偏见。

示例:我有 200,000 个客户。我将它们分成 50/50。我正在针对随机广告测试我的新推荐方法。但是,我的推荐人仅在他们在上个月进行过搜索时才有效。取回结果后,我将不得不检查对照组是否过滤为仅包含过去一个月搜索过的人。在过去一个月内搜索过的人更有可能与您建立更紧密的联系,因此如果您检查整个群体,您会高估推荐人的表现。

或者,您可以知道他们是否有信息 C 已经拆分组,但您可能想要测试不同的东西,因此事先拆分可以为您提供额外的信息,但您的组可能略有不平等,但代价很小大样本量这根本不是问题。

在某些情况下,进行分层抽样很有用。例如,假设您的总体中有 4 个不同的组,每个组具有不同的 n(例如,A = 10k,B = 20k,C = 30k D = 40k)。在创建训练/测试时,您可能希望确保每个子集保持相同比例的子组。这可以确保训练/测试比纯随机分配更好的等效性(这可能导致不平衡的训练/测试)。

您可能想在此处提供更多信息。这要么非常简单,要么非常困难,具体取决于您的需求。

@Brandon Loudermilk 非常热衷于推荐分层,特别是对于购买率、先前购买的产品等。这会让你走得很远,但有几个地方严重依赖,其中很多归结为实验设计:

  • 你希望测试什么
  • 什么定义了成功?10%的改善?0.001% 的改进?
  • 你期望每组有多少观察?
  • 您是即时将用户分配到组,还是事先设计?

例如,如果您正在动态执行此操作,如果您的工具可以拆分给定变量/该变量的四分位数,则它应该根据用户所属的层将用户置于 A 或 B 中。这将导致每次使用都有 50/50 的机会落在正确的桶中 - 你永远不应该在一个桶中只有高消费者。

话虽如此 - 如果您可以在测试之前设计它,您应该能够通过在测试之前执行此操作来相当容易地确保这种拆分。但是,如果您有复杂的实验设置,您可能需要查找阻塞/实验设计。最后一点,请记住,您不能测试随机性 - 只能测试随机性的符号。