我假设当您说“我需要两个 [原文如此] 对同一组用户执行一些测试我可能会遇到问题”时,您打算在开始时将所述用户组重新随机分配到新的控制组和治疗组中新的测试。
一个可能的中间立场是随机化两次,即首先将用户随机化到许多桶中,然后在需要运行新测试时将桶随机化到治疗/对照组中。
这也有几种口味:
1.“确定性地”将用户分配到桶中(基于足够随机标识符的一些规则,该标识符与用户特征和处理完全无关),随机挑选桶进行测试:
例如,实验者可以根据用户 ID 的最后一位创建 10 个桶。这假设您有足够的用户,因此最后一位数字与某些每小时/每天的季节性无关。对于每个测试,实验者然后随机选择 5 个桶进入对照组,5 个桶进入治疗组,例如:
- 测试 1 - 对照:5、9、6、0、3;处理:4、8、1、7、2
- 测试 2 - 对照:1、7、2、6、9;处理:3、4、8、5、0
- 测试 3 - 对照:7、4、2、6、3;处理:0、9、1、5、8
...等等[1]。
2.将用户随机分配到桶中,确定性/随机选择桶进行测试:
这是许多大型科技公司的实验平台使用的方法。参见例如[2]或[3]的图1。在[2]中,他们将用户和用户集群作为实验单元,但分桶原理是相同的。
用户根据一些哈希被随机分配到 1,000 个桶中,并记录他们的桶分配。然后,实验者将决定他们的实验需要多少个桶(例如,每个对照/处理 100 个),并选择或由实验平台随机分配他们需要的桶。
这种方法有一个优势,而实验者可以强制执行某种桶排除,而实验者会阻止参与特定实验的用户也加入即将开始的实验,因为治疗可能会相互影响。
从理论上讲,这两种方法都会导致对照组和治疗组之间的随机分配。当然,这假设您有足够的用户并且您的分桶实现是正确的,这是需要仔细检查的。
[1] 我使用带有以下选项的随机整数集生成器
:
生成 5 个集合,每个集合有 10 个唯一的随机整数。
每个整数应该有一个介于 0 和 9 之间的值...
✔️ 使用逗号分隔集合成员
⚫ 按生成的顺序打印集合”。
[2] B. Karrer 等人,大规模网络实验,在:KDD'21中。可用:https ://arxiv.org/pdf/2012.08591.pdf
[3] J. Rydberg,Spotify 的新实验平台(第 2 部分)。可用:https ://engineering.atspotify.com/2020/11/02/spotifys-new-experimentation-platform-part-2/