无法在用户级别随机化时的 A/B 测试方法

数据挖掘 测试 实验
2022-02-19 13:09:06

当无法将用户随机分配到测试和控制存储桶时,我正在尝试为运行测试的不同方法寻找建议。

例如,如果我拥有 10 家商店,并且有一个用于为商品定价的算法,那么我可能想测试一种会导致价格变化的新算法。我可以看到一些方法,但我不清楚我是否想念其他人并且希望听到更多。

标准 A/B 测试:

如果我要随机分配购物者来测试或控制存储桶,那么这对他们来说显然是一种糟糕的体验(鉴于价格是可见的)。

折返实验

也许相反,我决定运行一个折返实验,其中控制定价算法运行 6 小时,然后测试定价算法运行 6 小时,依此类推。这显然比标准的 A/B 方法要好,但我觉得它仍然存在问题(即,如果价格变化导致长期客户行为发生变化,但行为改变需要一些时间 - 也许折返不会不要捕捉这个)。

因果影响法

另一种方法可能是使用因果影响风格分析,其中我将某些商店设置为“控制”商店,将其他商店设置为“测试”商店,然后在测试商店更改算法并分析我的兴趣指标,其中我们在测试车间相对于对照车间的时间序列中寻找因果效应。这里的缺点是您似乎高度依赖控件代表测试车间的程度。

除了 A/B 测试之外,还有没有人有任何其他建议,或者甚至在某个地方我可以阅读更多关于不同实验设置的信息?

1个回答

我建议不要切换回来,因为购买数据可能会表现出季节性(例如,下午 2 点至下午 6 点/星期二的交易量较低,12 月的交易量较高,公司在某些月份投放广告等),这将成为一个不必要的外生因素,使复杂化实施后分析。

我倾向于因果影响方法。但是,在选择商店作为控制与测试之前,应检查某些事项(这是一个启动列表,请随时适应您的业务领域)。

  1. 确定要衡量的 KPI 作为目标,是每个客户的收入吗?每个客户的利润?还是每家商店的总利润?该算法是否旨在提高每个客户的 KPI 或更多客户?

  2. 检查所选商店是否有一些历史记录,以确保在实施测试之前它们在所选 KPI 方面相似。请记住删除异常客户/交易。

  3. 检查是否在控制和测试存储桶中选择了足够的商店,以检测具有统计意义的所需阈值增加。

希望这可以帮助!:)