# 实验管理
# 实验前必读
# 制定实验常见步骤
提出问题 :弹窗的转化率很低?
实验假设 :修改弹窗按钮的文案可以提高弹窗的转化率。
实验策略 :随机筛选两波用户作为对照组 A 和实验组 B ,对照组 A 展示线上文案,实验组 B 展示新文案,获取用户曝光点击行为数据。
实验评估 :判断实验组 B 的弹窗转化率是否有提高,如果提高实验假设得到了验证。否则需要提出新的实验假设进行验证。
# 了解实验指标
核心指标:实验重点关注的指标,每个实验只允许配置一个。
监控指标:实验观察的指标,一般来说实验不允许有负向。
# 常见实验名词解释
业务敏感度与建议样本量:业务敏感度是实验者想要检测的差异大小。比如想要检测 5 %以上的差异,那么业务敏感度就是 5 %。业务敏感度设置的越小,需要的样本量越大。通俗来说就是需要更多的样本来检测更小的差异。目前平台的敏感度是固定值 10 %。同时,平台在这个敏感度下计算出每个组的建议样本量。该建议样本量的含义是,要想检测出 10 %的差异,需要多少样本。如果实验结束时没有出现显著差异,则观察实验的用户数是否达到了建议样本量。如果是,则我们有 80 %(统计功效)的概率说对照组与实验组无差异或差异小于 10 %,反之,我们无法给出是否有差异结论,可能需要延长实验时间或增大实验流量。
置信区间[a,b]:目前实验平台在结果页面展示了 95 %的置信区间。这个区间的含义是指如果我们将这个实验做 100 次,得到 100 个置信区间,有大概 95 个左右的置信区间是包含总体的真实差异的。因此在实验组有显著提升时,实验者可以通过置信区间下界得到实验组提升的一个保守的点估计值。
a和b都是负数,说明实验组相对对照组是下降的,如[-10%,-5%]说明有95%的把握认为策略上线之后实验组效果相比对照组至少下降5%。
a和b都是正数,说明实验组相对对照组是提升的,如[5%,10%]说明95%的把握认为策略上线之后实验组效果相比对照组至少提升5%。
a是负数,b是正数(置信区间包含了0),说明无法得出有效结论。
# 实验 FAQ
1.为什么指标结果没数据?
实验没有发布。创建完实验需要发布实验,才可能在第二天观察到数据。
实验上线的当天无数据。指标数据是按天更新的,上线后的第二天才能观察到数据。
实验的各组流量为 0 。这种情况下,不会有用户命中实验。请确保发布的小程序调用
wx.getExptInfoSync
接口。
2.实验要运行多久?
建议实验至少运行一周。原因如下:
实验时间过短,容易因新颖性导致误判。对于一个新功能,用户可能会因好奇心而使用,即使用户不喜欢这个新功能。这种场景下,可能会出现指标刚开始几天上涨,之后下降。因此应增加实验时间,避免因新颖性导致的误判。
不同的时间可能会影响用户的行为。比如工作日与周末,用户的表现可能不一样。因此,应分析产品的周期性,实验运行时间应尽量包含一个周期。
3.为什么实验有效果,全量上线后没效果?
第一类错误。实验平台使用的是统计学中的假设检验方法。在这种方法框架下,第一类错误是无法避免的。具体的含义是两个组不存在差异的情况下,平台仍旧可能给出两个组有显著差异的结论。这种情况出现的概率是 5 %,大概每 20 次出现一次。
指标结果中展示的是样本的提升,上线之后,有一定的概率会出现总体的提升小于样本的提升。建议关注指标结果中置信区间的下界值。
4.为什么不能每天查看实验结论,有显著提升就上线?
- 会放大第一类错误。正确的实验方法是:实验前需要确定好实验时间,只依据实验结束时间时的结论做决策。此时,实验平台能够保证第一类错误率控制在 5 %。如果实验者每天查看实验结论,有显著就停止实验并作出有差异的决策,那么会放大第一类错误。举个例子,在两个组完全无差异的场景下,用户连续观察 7 天,一旦出现显著差异,就上线,那么做 100 次这样的实验,会有超过 30 %的实验出现第一类错误(准确的第一类错误为:1 - ( 1 - 0.05 )^ 7)。
# 新建 A/B 实验
- 进入实验看板,实验看板主要由实验规模概况和实验列表两部分组成。
实验规模概况:查看某一实验层层正在实验的用户数和可实验的用户数,方便用户判断当前层可用实验流量。
实验列表:查看创建实验的情况以及可以新建实验。
2.新建实验
统计周期
1 天:1 天可查看实验结论,可快速检测差异较大的实验。
7 天:7 天可查看实验结论,实验结论更准确,所有实验都适用。
核心指标
实验重点评估的指标,实验结论主要也是依赖核心指标效果来评估。
系统默认提供了小程序关键指标,用户可以根据实验需要选择作为核心指标。
用户也可以自定义一些指标,过程详见指标创建。
监控指标
- 辅助观察实验效果,建议用户一次选择观察指标不超过 10 个,具体指标创建详见指标创建。
实验层级
选择创建的实验层,不同层流量是正交的,可实现流量复用(同一个用户同时命中多层的实验)。单层流量不足可添加分层。
设置实验总流量比例,各个实验组将均分流量。
实验人群
随机人群:对照组和实验组随机挑选人群。
定向人群:限定画像再随机挑选人群。支持设备、新老用户、广告推荐度、自定义人群定向。
实验参数
实验参数是用于区分实验的唯一标识,请务必确保实验参数的唯一性。
实验参数为字符串,主要用来控制用户的实验分组(根据不同的参数值确定用户分配到哪个实验组)。
实验参数通过基础库接口
wx.getExptInfoSync
获取参数值,并执行不同实验逻辑,具体见实验 API 。
实验分组
设置实验参数值,以便于开发同学区分对照组和不同的实验组
设置"测试微信号"(提交实验即生效,不需要发布实验)。
用"测试微信号"测试
开发版、体验版 上测试(建议使用)
在 开发者工具(1.05.2106292以上版本)且高于
2.17.1
的基础库上测试,如获取不到重新编译运行即可。
提交实验
- 可以在实验列表里面看到创建的相关实验。
3.发布实验
发布实验后查看实时命中用户是否正常。
4.修改实验
- 待发布实验可修改实验总流量比例、指标、实验组等
- 进行中实验只支持修改实验总流量比例,各个实验组将均分流量,满足实验流量灰度功能
5.全量实验
如果实验效果显著,可将某个实验组全量到线上,不需要小程序发版;全量后支持撤销。
# 实验解读
创建实验完成之后,进入实验数据 tab 查看实验结果数据,实验结果主要包含:
指标趋势图:提供离线指标的日度趋势图和命中用户数的实时趋势图。
总体数据:提供累计命中用户数以及各个指标实验组和对照组的效果分析。
核心指标:核心指标详细信息,提供计算的分子、分母以及置信区间。
实验结论:实验运行超过7天(包含 7 天),系统会自动提供实验结论,帮助用户判断实验效果。
人群分析:可以限定人群(目前系统提供人群性别、地域和设备)对实验结果进行进一步分析,挖掘不同人群的实验效果。
# 指标趋势图
数据周期
过往数据:离线指标数据,按天更新。
实时数据:目前暂时提供命中用户的实时命中信息,更新频率为10分钟。
# 总体数据
累计命中用户数:各个组从实验上线到当前累计命中用户数,流量均匀前提下各个组累计命中用户数应该是很接近的。
核心-指标:提供核心指标统计数值以及实验组相对对照组提升的比例,提升如果正向显著会用绿色标记,负向下降显著会用红色标记。
监控-指标:解释同核心指标。
# 核心指标
# 实验结论
实验结论前提
- 运行超过 7 天(包含 7 天)。
- 各个组流量同质:不同质会提示流量不同质,建议重新做实验。
实验结论分类
- 正向:核心指标正向,观察指标无负向。
- 正向待观察:核心指标正向,观察指标有负向。
- 负向:核心指标负向。
- 无效果:核心指标不显著,且命中用户数大于等于推荐样本量。
- 无法下结论:核心指标不显著,且命中用户数小于推荐样本量。
# 人群分析(内测中)
人群维度
- 性别
- 地域
- 设备
数据分析
- 指标趋势
- 总体数据
- 核心指标