写在前面
作为一只老产品猫,对于业务理解、用户调研、流程梳理、交互设计等,不能算得心应手,也已经形成自己的工作方法,但对于A/B测试功能设计,懂得这些远远不够。
【资料图】
A/B测试作为一个决策工具,知道如何科学地进行实验很重要。假设检验是用样本去推断总体,并不能保证结论的正确性,我们要知道这个工具/模型的边界在哪里,知道它的约束条件和可能存在的陷阱,在产品和数据模型设计中充分考虑这些因素,才能搭建出真正有价值的工具。
所以我记录了产品研究过程中发现的,那些对于产品经理来说晦涩难懂但又很重要的问题,作为学习总结分享。
01
什么是A/B测试
A/B测试是指把平台的流量进行均匀分组,每组投放不同方案,然后根据数据指标判断方案间是否存在显著性差异,最终进行方案决策,比如从广告图的不同配色方案中决定哪个更能吸引用户。
主要包括以下步骤:
定义问题——分析现状,提出假设。
实验设计——设计实验方案、定义评估指标、估算样本量、确定分流策略、设置投放时长。
实验投放——抽样投放,收集实验数据。
分析决策——分析效果数据,决定发布版本或调整后继续迭代测试。
02
评估指标设计
AB测试评估指标,一般会包括两类:
原则上应该保持稳定的的指标。对比实验应该在保持其它因素相同的情况下,观察某一变量对目标的影响。因此,我们要求实验组和对照组的稳定性指标不应存在显著性差异,以防止其它因素误导实验的最终决策。比如不同的广告图设计应该不影响广告栏位的曝光量。
方案效果评估指标。这是衡量方案效果提升的指标,比如广告点击率。评估指标可以有好几个,设计时要注意覆盖用户体验指标、业务转化指标等。
记住,指标的设计是主观的,因此一切数据都带有个人主观偏见,设计指标时应时刻注意指标与业务的关联,避免错误的指标导致的错误结论。
另外,统计上有显著性差异,并不能代表优化方案带来的效果提升有业务价值。
统计学家Gene V. Glass说:“统计显著性(statistical significance)是有关于结果最无聊的事情,你应该根据量化来描述结果。
不光只是指出某种治疗对人会有影响,还应当告诉人们这种影响究竟有多大。”
因此,我们可以在实验前根据业务经验确定每个效果评估指标的效应值(effect size),然后在假设检验满足显著性水平要求的情况下,进一步计算方案的效应值,判断是否在业务上有显著影响。
常用科恩公式衡量效应大小:
分子为分组样本均数差,分母为合并标准差。比如,对于广告效果实验,我们想观察的是用户有没有点击这个广告图片,属于两点分布,取值是0或者1,所以样本均值=(取值为1的样本数)/样本总数=点击率。
双独立样本合并标准差计算公式如下:
一般要求方案在统计意义上有显著性提升,且提升幅度在业务上有现实意义,才认为优化方案有价值。
03
样本量估计
假设检验是用样本去推断总体,因此得到的结论也不是绝对正确的,存在两类可能的错误:
弃真错误。零假设实际是成立的,但因为抽取的样本恰好让观察值落入了拒绝域,导致拒绝零假设。在假设检验中,这个概率不大于显著性水平α,所以假设检验已经充分控制了弃真错误的概率。
纳伪错误。零假设实际是不成立的,但因为抽取的样本恰好落入了接受域,导致认为零假设成立。假设检验的α越小,纳伪错误的概率β就越高,因此假设检验并没有对这个错误概率进行控制。
在α确定的情况下,为使β变小,可以增加样本量,但样本量太多又会浪费流量资源,所以我们需要科学地确定最小样本量。
统计学上,在α、β、effect size确定的情况下,可以通过下面公式求出最小样本量:
单尾实验样本量——
双尾实验样本量——
n——每组所需样本量,因为AB测试一般至少2组,所以实验所需样本量为2n
α——第一类错误概率,一般取0.05
β——第二类错误概率,一般取0.2
z——正态分布的分位数函数
σ——标准差
u1-u2——优化方案对评估指标提升值
上面的都是理论,怎么推导的我也没怎么看懂
实际应用中,不同软件、计算工具用的公式也不一样,没搞明白谁更准确,不过最终算出来的样本量其实差不多。
所以,我觉得产品经理嘛,知道公式怎么用或者用哪些工具预估样本量就可以了。
一般我们处理的都是比例类指标假设检验问题,下面用两个公式举例。假设目前转化率p1=30%,我们希望通过新方案转化率提升0.5%,即(p2-p1)=0.5%.设定α为0.05,β为0.2 。
公式一
公式二
计算出来的n分别是104355,104357。网上很多文章这里用的都是双尾的样本量,个人觉得这里用单尾就行,如理解有误,欢迎指正
实验前,计算出每个评估指标需要的样本量,取最大值进行测试即可。
工具上有在线计算器、R(power.prop.test)、python(statsmodels.stats.power)等。
04
测试执行时长
AB测试的执行时长会影响测试结论的准确性。比如,时间太短的话,可能参与测试的用户主要是产品高频用户,或者进入实验的样本量不足而影响测试结论。另外,新奇效应可能导致优化方案在短期内带来好的效果,但长期影响不大;或者由于学习曲线的存在,当我们进行了一些视觉或者交互调整时,用户短时间内未适应。
AB测试时间长度并没有一个统一的标准,主要看测试的内容和目标用户的使用习惯,要与用户使用周期相匹配,覆盖多个周期才能得到足够数量且有代表性的样本,同时要注意包含工作日和节假日。