业务侧-到底应该怎么做A/Btest

A/Btest是什么

A/Btest是在产品正式发版之前,设计两个或更多不同的产品方案,将用户和流量分组,保证用户分组的合理性的情况下,让用户看到不同的产品界面,收集用户的真实反馈,帮助产品决策最优方案。

A/Btest的重点和特点

重点:

  1. 用户抽样分组的合理性
  2. 流量分配的合理性

特点:

  1. 结论可信度高:
    A/B测试在正式发版之前,对产品方案进行验证,少量的样本量和实际数据来推广到全部流量,相对于直接正式发版,预测发版结果来说,更具有可信度。

  2. 可并行:
    A/B测试是将两个甚至多个方案同时进行检验,保证每个版本所处环境一样的情况下,测试方案的时间也相同。避免了因时间不同产生的周期性差异,也节省了验证时间。

A/Btest怎么做

PS:A/Btest需要有一定的流量基础,否则将流量分配后,每个分组得到的流量过小,不能得到相对准确的结论

实验分组
  1. 用户分组
    1)基于设备号或用户ID分组,根据IP地址的奇偶性
    2)可重叠分层分桶方法,根据固定的hash函数对用户唯一标识进行取模、分桶
    将流量分成可重叠的多个层。因为很多类实验从修改的系统参数到观察的产品指标都是不相关的,完全可以将实验分成互相独立的多个层。例如 UI 层、推荐算法层、广告算法层,或者开屏、首页、购物车、结算页等。

    单单分层还不够,在每个层中需要使用不同的随机分桶算法,保证流量在不同层中是正交的。也就是说,一个用户在每个层中应该分到哪个桶里,是独立不相关的。具体来说,在上一层 001 桶的所有用户,理论上应该均匀地随机分布在下一层的 1000 个桶中。

    通过可重叠的分层分桶方法,一份流量通过 N 个层可以同时中 N 个实验,而且实验之间相互不干扰,能显著提升流量利用率。

    从实操上来说,我们通常采取下面的方法:

    首先,确定 Layer,确定请求 Tag。例如从 UserID,DeviceID、CookieID、手机号 中选一个,支持匿名流量的,一般会选用 DeviceID 或者 IMSI 等作为请求 Tag。

    然后,选一个你喜欢的 Hash 函数,尽量选个使用方便、随机性更强的;

    最后,通过 Hash(Layer, Tag) % 1000 确定每层分桶。如果 Hash 函数支持 seed,那么使用 Layer 作为 seed,否则作为 SALT,即将 “Layer+Tag” 作为输入参数

检验

标准:

  1. 无偏性:
    假设在1%流量上某功能可以提高10%的点击率,那么在全量上也应该大约提高10%。
  2. 低方差:
    方差越小,可靠性越高。

假设检验,建立原假设和备择假设:
H0是要拒绝的假设
H1是我们想要的假设

由于是两个样本显著性检验,数据量较大,一般使用z检验
z = λ b − λ a σ b 2 N + σ a 2 N 2 z=\frac{λ_b-λ_a}{\sqrt[2]{\frac{σ_b^2}{N}+\frac{σ_a^2}{N}}} z=2Nσb2+Nσa2 λbλa

都是业务沉淀获得的先验数据,或是先做一次测试,对这些值进行估计。

最后根据显著性水平,做出结论。

如果得不到显著的结论怎么办

原因:

  1. 数据量不够,实验时间不足

  2. 实验结论就是如此。那就需要具体分析原因,重新优化实验方案。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值