A / B测试排序算法

时间:2015-09-22 12:40:53

标签: sampling ab-testing

我想制作一个算法,该算法可以对每个受试者可变数量的属性进行A / B测试。

例如我有1000人具有以下属性:他们来自两个部门,一些是经理,一些是女性等。这些属性可能会根据情况增加/减少。

我想制作一个算法,将所有属性的A和B中的最佳表示分成两个。所以我想要两组500人,两个部门的数量相同,管理人员数量相等,女性人数相等。更具体地说,我想保持A和B中每个属性的比例。因此,如果我们有10%的经理,我希望10%的样本A和样本B成为管理者。

关于从哪里开始的任何指示?我很确定这样的算法存在。我有一种直觉,认为在某些情况下这可能是无法解决的,因为可能会有奇数的管理人员和女性和部门。

2 个答案:

答案 0 :(得分:-1)

列出所有a / b变量的排列。

 Dept1,Manager,Male
 Dept1,Manager,Female
 Dept1,Junior,Male
 ...
 Dept2,Junior,Female

通过所有人并将他们分配到各自的排列。也许首先将人们的顺序随机化,以确保他们被添加到每个排列中的顺序没有偏差。

 Dept1,Manager,Male-> Person1, Person16, Person143...
 Dept1,Manager,Female-> Person7, Person10, Person83...

进行第二个过程,遍历每个排列,并将一半人分配给一个测试组,另一半分配给另一个测试组。您需要考虑组中的奇数人数,但这应该很容易考虑,显然更大的样本量会减少这个奇数对最终结果的影响。

答案 1 :(得分:-1)

分组的算法很简单 - 将每组具有相同维度的人分配给治疗,将一半分配给治疗,将一半分配给对照。您无需担心奇数人,无论您使用哪种统计测试都会考虑到这一点。如果某个维度是如此偏斜(即,整个样本中只有2个女性),那么将这个维度抛出可能是明智的。

简单的A / B测试通常使用t检验或g检验,但在您的情况下,您最好使用ANOVA来确定治疗对每个维度的重要性