A / B测试平均分配访客

时间:2013-11-22 21:15:42

标签: ab-testing

我正在编写和测试a / b测试库。我正在使用Math.Random(...)调用在变体之间拆分访问者。

然而,这并不顺利。变异A与变异B的显示差异超过20%。

有没有人知道更好的选择,除了比较显示器,如果差异大于X%,决定在不调用Math.Random的情况下显示其他变体?

2 个答案:

答案 0 :(得分:2)

如果您希望100%确定在A和B之间具有相同数量的视图,则应该在cache / db中存储已为其指定了最后一个变体的变体。然后在每个请求上分配其他变体。这样你就有了A / B / A / B / A / B等。

答案 1 :(得分:2)

如果你想让事情比A / B / A / B / A / B答案更随意,你可以将你随机生成的A或B的几率与成员最少的组相比较。

例如,如果Random返回一个介于0和1之间的数字,那么您将得到以下内容:

variation = if(Random() > 0.5) { variationA } else { variationB }

如果将其更改为(nrOfA / B =选择A / B的次数):

variation = if(Random() > (nrOfB / (nrOfA + nrOfB))) { variationA } else { variationB }

然后选择A或B的可能性将取决于它们与另一个相比有多大。较大的B与A相比,A的选择机会越大,反之亦然。