Statistics A/B测试配分函数

Statistics A/B测试配分函数,statistics,ab-testing,hash-function,abtest,Statistics,Ab Testing,Hash Function,Abtest,我想把我的用户分成几个组来运行A/B测试 通常的方法是将每个用户随机分配到一个变量,并存储该关系,直到a/B测试结束。但这将迫使我将这种关联存储在某个地方,我想避免它 由于用户已经在我的应用程序中注册,我希望有一个功能,可以在我的测试中统一分布用户,这样我就可以在a/B测试中获得非扭曲的结果 我应该使用哪种散列函数?此ACM说明md5是一个很好的散列函数,可以获得均匀分布且实验之间无相关性的结果: 我们发现只有加密散列函数MD5没有生成 实验之间的相关性。SHA256(另一个加密 hash)非常

我想把我的用户分成几个组来运行A/B测试

通常的方法是将每个用户随机分配到一个变量,并存储该关系,直到a/B测试结束。但这将迫使我将这种关联存储在某个地方,我想避免它

由于用户已经在我的应用程序中注册,我希望有一个功能,可以在我的测试中统一分布用户,这样我就可以在a/B测试中获得非扭曲的结果

我应该使用哪种散列函数?

此ACM说明md5是一个很好的散列函数,可以获得均匀分布且实验之间无相关性的结果:

我们发现只有加密散列函数MD5没有生成 实验之间的相关性。SHA256(另一个加密 hash)非常接近,需要五方交互才能生成 相关性.NET字符串哈希函数甚至无法传递 双向交互测试


乘以一个大的奇数,取模2的乘积?@wildplasser这是我最初的想法之一,但我没有足够的信心使用它。你能给我指出一些资料,告诉我它会和传统的伪随机选择一样好吗?好吧,测试一下!这是一个伯努利过程,因此01(ab)之间的分布可能与50/50略有不同。顺便说一句:你不需要乘法:奇数保持奇数,偶数保持偶数。。。(但是你可以测试产品的第I位)@wildplasser,即使我测试的是均匀分布的(50/50)。我如何确保变体中的用户之间没有隐藏的相关性(我不知道)。例如,最老的用户(较小的id)可以分组在其中一个变体中,并且对变体更敏感。。。。。。或者蓝眼睛的人可能在其中一个群体中比例过高,或者年轻人,或者女性,或者亚洲人,甚至德国人。对其运行一些摘要统计信息,您将看到。链接已断开