AB实验设计-通用内容说明
AB实验主要分为两部分,第一部分搞清楚自己需要实验的场景,第二部分是基于不同的场景如何设计和开展实验。
1.实验准备
- 实验人群用户至少需要1000用户,不然实验参与的样本太少。
- 需要集成不同端支持的AB SDK。
2.实验分组
- 流量能够平均分配到每个实验组,例如100可以考虑2组(每组50)、4组(每组25) 、5组(每组20) 这样处理。
3.实验周期
- 实验周期 = 实验最小总样本量 / 每天可获得样本量
- 建议通用实验时长为7-14天,覆盖一个以上的自然周(考虑某些产品因为工作日流量多,周末流量少,而某些产品是工作日流量少,但是周末流量多),适用于大多数实验场景;如果你的实验是特殊的长期观测实验,可根据需求设置。
4.制定实验方案
- 提出问题:为什么我的注册页面转化率不够高?或者为什么我的推荐系统 点击/曝光 比率不理想?
- 建立实验假设:让注册的按钮文案更又吸引力些?或者更换一套推荐模型?
- 准备方案:不同的按钮文案,按钮的点击次数和页面进入的流量统计,或者不同的推荐模型,推荐内容点击和进入推荐页面的流量统计。
- 验证这个假设:构建了一个不同的按钮文案作为实验组B,与对照组A同时上线,展示给具有相同属性的两部分用户,并获得统计数据。
- 分析数据得出初步结果:如果实验组B成功提高了转化率,那么这个假设得到了验证。否则,需要返回第二步来做出其他假设。
5.了解实验指标
- 核心指标:用来决策实验功能是否符合预期的「直接效果指标」 也叫「成功指标」。只可以设置一个指标为某个实验的核心指标,可在实验报告里面查看实验数据。
- 必看或关注指标:指的是必须守护的业务线指标,实验功能可能对其无直接的因果关联、无法直接带来提升,但一般而言不能对其有显著负向影响。
- 注意:1个实验只能有1个核心指标;核心指标值是分子/分母类型,例如转化率等。
- 常见核心指标:①转化率、留存率;②人均次数类,如pv/uv、sum/uv;③平均值类,如sum/pv。
6.实验场景与实验类型
实验场景 |
实验类型 |
说明 |
---|---|---|
用户端:Web/H5页面,在其页面中的图片、文字、颜色、位置等元素和属性场景:适用于落地页、主页等单页面优化的场景 |
可视化实验 |
1.通过可视化编辑器对文本、图片等元素进行编辑和替换,进而生成多个版本进行实验,探究不同方案的页面效果,如用户停留时长、PV/UV等。2.可视化实验是客户端实验类型,只是AB系统为了无需编码或者减少编码而单独支持的实验功能。 |
用户端:Web/H5营销活动页面场景:整个页面测试,例如广告落地页,运营活动页、注册流程转化页 |
多链接实验 |
1.市场同学对不同广告落地页进行测试,以期比对各落地页的转化率,选出优胜页面。2.运营同学对不同内容页进行测试,尤其是H5活动页,以期比对各活动页带来的转化情况,从而选出优胜活动页。3.产品同学对不同的注册流程页面进行测试,以期比对不同流程带来的用户注册流失率情况。 |
用户端:手机APP,不需要和服务端有请求交互场景:APP开屏界面,客户端的UI样式、交互功能设计等 |
编程实验—客户端 |
1.指通过客户端获取实验分组信息并控制配置生效的实验。2.部分功能只能通过客户端控制,比如客户端的UI样式、交互功能设计等。3.APP唤起时,配置即需生效,来不及和服务端产生请求交互。 |
用户端:通过服务端可以控制实现,主要是服务端内容返回或者服务端配置生效场景:推荐算法内容,客户端有时间和服务端交互获取策略或者内容返回 |
编程实验—服务端 |
1.过服务端获取实验分组信息并控制配置生效或下发的实验。2.部分功能只能由服务端来控制,比如内容分发算法在feed流中会看见什么内容、由服务端逻辑控制的产品功能(如推送)等。3.不要求唤起APP时就使实验配置生效。客户端有充分时间向服务端发起请求,获得实验配置后再向用户展示策略。 |
7.实验报告
7.1 实验的基本数据
- 进组人数:该实验版本进组人数, 通过au简称。
- 绝对数值:该指标在各组中的绝对数值。
- 差异绝对值:当前实验版本相对基准版本(对照版本)的绝对差异。
- 差异相对值:当前实验版本相对基准版本(对照版本)的绝对差异/基准版本值。
- 置信区间:由样本统计量构成的总体参数的估计区间。
- P-value:在原假设为真的前提下随机抽取样本出现极端情况的概率。当p-value<1-置信度水平,认为统计显著。
- MDE:Minimum Detectable Effect最小可检测单位(检验灵敏度),在当前条件下能有效检出置信度的diff幅度。
7.2 指标计算方式
序号 |
指标计算方式 |
含义 |
示例(以“支付”事件及其属性“支付金额”举例:) |
---|---|---|---|
1 |
进组人均次数 |
触发当前事件的进组用户人均发生数量。pv/au,进组用户当前事件总发生次数/进组用户数。 |
pv/au,支付活跃均次=支付事件的点击次数/进入支付实验组的样本数 |
2 |
转化率 |
触发当前事件的进组用户比例。uv/au,某事件发生的总进组用户数/进组用户数。 |
uv/au,支付转化率=支付事件的点击人数/进入支付实验组的样本数(au表示进入实验组的活跃用户) |
3 |
按…求进组人均值 |
sum/au,某属性值求和/进组用户数。 |
sum/au,按支付金额求实验活跃均值(选择pay_amount属性) |
4 |
按...求每日活跃均值 |
sum/sum(dau),某属性值求和/用户活跃天数。 |
sum/sum(dau),按支付金额求每日活跃均值(选择pay_amount属性) |
5 |
每日活跃均次 |
pv/sum(dau),事件发生的总次数/用户活跃天数。 |
pv/sum(dau),支付每日活跃均次=支付事件总次数/用户活跃天数 |
6 |
人均次数 |
事件的人均触发数。pv/uv,进组用户当前事件的总发生次数/进组用户上报当前事件的人数。 |
pv/uv,支付人均次数=支付次数/支付人数 |
7 |
按…求人均值 |
sum/uv,某属性值求和/事件触发进组人数。 |
sum/uv,按支付金额求人均值(选择pay_amount属性) |
8 |
按…求平均值 |
sum/pv,某属性值求和/事件发生次数。 |
sum/pv,按支付金额求平均值(选择pay_amount属性) |
9 |
总次数 |
pv,事件发生的次数。 |
pv,支付次数=支付事件触发次数 |
10 |
总人数 |
uv,事件的总触发进组人数。 |
uv,支付人数=支付事件触发人数 |
11 |
按…求和 |
sum,某属性值之和(仅支持数值类型的求和,不支持string类型求和)。 |
sum,按支付金额求和(选择pay_amount属性) |
7.3 置信度
|
单一指标 |
组合指标 |
---|---|---|
支持 |
进组人均次数:触发当前事件的进组用户人均发生数量。pv/au,进组用户当前事件总发生次数/进组用户数。 |
分子为uv类型,分母为uv类型。 |
不支持 |
总次数:事件发生的次数。 |
|