写点什么

细节决定 A/B 测试的成败:有底线的样本量

  • 2020-04-05
  • 本文字数:2531 字

    阅读完需:约 8 分钟

细节决定A/B测试的成败:有底线的样本量

在 Testin A/B 测试的运作中,我们曾经遇到过这种情况(这是一道案例分析题):


某位不愿透露姓名的客户 A 先生为他的产品迭代准备了为期半个月的 A/B 测试。他希望新的版本能比原版多带来 5 个百分点的转化率。经过半个月的等待,有 1000 名用户进入测试,并使得新版转化率成功达到了目标。但是令他疑惑的是,对于这个实验结果的 p-value 和 power 检验均不达标。也就是说,这个结果并不可信。



两大检测指标


A 先生深感困惑。他不知道该怎么办:是因为效果看似达到了于是停止实验?还是因为检验不达标而做其他的补救措施?


针对 A 先生的问题,我们进行了一系列分析,最后确定了症结所在:样本量不足。A 先生的实验实际上需要至少 1500 人,但是目前只有 1000 人进入实验,也就是说样本量的缺口达到了 500。若想解决这个问题,只要继续让流量进入实验,达到最低需要的样本量,即可。


看了这个案例,你可能会产生这些疑惑:


  • 会出现这些情况居然是因为 样本量给的不足?这与实验有什么联系?

  • 如果是的话,做一个测试,要给出 多少样本量 才是足够的?

  • 而且,为什么不能让所用用户参与到测试中来,那样一定能保证有足够的数据可以收集不是吗?


——出现这种困惑的客户并不少见,我也是在进一步接触 A/B 测试以后才明白这其中的关键所在:样本量大小。

有底线的样本量

在上一篇推送《细节决定A/B测试的成败:不可忽视的抽样》中,我们搞明白了 A/B 测试和抽样之间的关系,引用一下上一篇中对于抽样的叙述:


“在 A/B 测试中,我们无法知道所有用户的行为(如点击率)的真正均值……必须通过抽样,抽取 一部分具有代表性的用户 来测试不同版本的效果(例如均值),从而基于抽样数据进行统计分析。……”


那么,这“ 一部分具有代表性的用户 ”具体数量应该是多少呢?是不是随便划拉一下数据条,拉个多少多少人来测试就行了呢?


并不。因为,如果 样本的容量太小,会导致参数估计值的大小和符号违反经济理论和实际经验,使结果不可信


举个栗子,陆仁甲的头儿要确定全国十几亿人喜欢吃啥主食,然后陆仁甲划拉了几百号人来一问,哦这些人大部分喜欢吃米饭,然后陆仁甲就说全国人民偏好吃大米——???一想就知道不对是吧。


所以说 确定你的实验对于样本量大小的需求 是很重要的。然鹅,我在网上那些 A/B 测试入门教程里少有看到对于样本量估算的介绍,大量的 A/B 测试科普文章仍旧停留在介绍 A/B 测试怎么怎么厉害怎么怎么牛逼,要怎么怎么做怎么怎么注意(是的没错之前我们公众号也是这样的 233),


但就是不告诉你到底应该划拉多少人来做。


别慌。这就告诉你怎么搞这个样本量。

给样本量“秀下限”

为了搞清楚这个样本量的估算是怎么弄起来的,我跑去找我们 Testin 技术部的大佬寻求了一下技术支援:


大佬:“哦就这事儿,其实吧!要确定样本量这事儿老简单了!”


“喏,给你我们搞 A/B 测试的时候用的方法:


“我们用 UV 来计算实验需要样本量和剩余时间。由于 t 分布需要一个自由度的参数,而自由度的计算需要样本量 n。这里样本量需要计算,所以不能用 t 分布,而用 z 分布。如果将自由度设置成无穷大,那么累计概率与 z 分布一样,此处用正态分布进行实验。


“在原假设为真的条件下,假设原始版本和版本一的流量之比为 1:k,则样本量之比为 n:m=1:k


“设 x 是指 最小提升率,比如你原来的转化率是 50%,你定一个最小提升是 10%,那么你最后的得到的转化率就是 55%;另外这个 原始版本转化率 也要设置好


“然后整体实验样本量为 n+m=(1+k)*n,这时候我们再带入这条公式


(说着大佬拿出了一条长长的写满根号 xyzγδαβ的公式……)



——不不打住打住啊我不是来上高等数学的啊别一言不合就建模啊饶了我吧


技术部的大佬太牛逼了高数学渣表示实在不懂啊……


不过这并没有关系。你想啊,假设有一个黑箱,我们只要知道怎么搞进去一些数字,然后黑箱给我们搞出来一些答案就行了对吧!只要会用就行了对吧!(才不是因为学渣看不懂在找借口呢哼)


所以技术部的大佬们早就准备好了一款样本量计算器,专门为我们 Testin 的客户估计每次实验的样本量:



(其实这种计算器并不少见,你也可以直接在网上搜索并使用样本量计算器来估算,只是由于学术界对于样本量估计的争论也是各有各的说法,所以其他计算器使用的公式与我们的可能存在些许差别)


重点是,当你进行 A/B 测试的时候,要先估算好这个样本量的数值,然后再 拉取不少于这个数量的用户 来进行测试就行了。

没上限的样本量……?

经过上面两大块的叙述,想必你也意识到了:样本量越大,实验结果的可靠性就越有把握。


但是这就意味着样本量越大越好吗?


(就像现在的手机,屏幕真是越来越大了,但是大就好吗?那你咋不端着个平板电脑打电话呢……)


诚然,样本容量太小,会使抽样误差太大,使调查结果与实际情况相差很大,影响调查的效果,因此做实验的时候,都建议加大流量投入,也因此不建议月活用户数量太少的客户做 A/B 测试。但 样本容量太大,势必会造成人力、物力和财力的很大浪费。这点大家都懂,成本嘛。


但是可能你又有疑问了,我做 A/B 测试的时候只是在线上收集数据罢了,又不用承担太大的成本,那我加大测试流量有什么好担心的呢?


我们再举个夸张的栗子:陆仁乙有款产品,月活用户几百万。他要进行产品迭代,搞了个 A/B 测试,A 版是原版,B 版是新版 1,C 是新版 2(是的没错谁告诉你 A/B 测试只能有 AB 两版的啦,同时测试几个版本是可以的哦)为了追求更精确的结果,他给每个版本都分配了 25 万用户。经过了一周的测试,陆仁乙开心地发现 C 版拥有超过原版数个百分点的转化能力,同时喜闻乐见地发现 B 版的 25 万用户因为 B 版本体验非常不好,有数万用户删除了应用……


——看到这里你或许明白我要说什么了:不要忘了我们搞测试的初衷是什么:找到最好的版本,规避可能带来的损失。让如此多的用户参与,本就可能带来不可估量的损失了。


毕竟,改革,是有失败的风险的,当你为了追求结果的准确性而 盲目提高样本量 的时候,你所要承担的 风险成本(指由于风险的存在和风险事故发生后人们所必须支出的费用和减少的预期经济利益)已经在不知不觉间上升了。


现实社会不是象牙塔中的理论世界,很多东西是要考虑实际的。因此,如何选择合适的样本容量,才能既满足模型估计的需要,又减轻收集数据的成本,是一个重要的 实际问题


2020-04-05 16:54709

评论

发布
暂无评论
发现更多内容

腾讯云 CIF 工程效能峰会顺利开幕,CODING 发布系列新产品

CODING DevOps

Orbit Nocalhost Compass 研发度量 项目协同

自定义View:属性动画和硬件加速

Changing Lin

10月月更

浪潮云说丨浪潮云AI能力广场 集成AI服务,打造AI开放平台

云计算

Linux下进程崩溃定位

正向成长

OOM崩溃

合约跟单系统软件开发资料(搭建)

现成交易所系统软件开发案例

从语聊房 SDK 的诞生,看 PaaS 服务的演进过程

融云 RongCloud

区块链数字货币交易所系统软件开发详情(源码)

合约交易系统软件开发介绍(源码搭建)

区块链交易所系统开发方案(案例)

博鳌科创论坛第二届大会区块链分论坛预告

Geek_6e23d8

区块链 博鳌亚洲论坛

Bazel与Gradle构建工具差异对比

轻口味

android 构建工具 10月月更

Java自定义异步功能实践

FunTester

Java 线程池 接口测试 异步 FunTester

WICC 话题剧透|Beeto 陈昊:中东爆款社交平台是怎样炼成的

融云 RongCloud

Flink Could not find any factory for identifier 'XXX' 排查过程

大可大大大

官方线索|脉脉1024程序员嘉年华

穿过生命散发芬芳

1024我在现场

现成合约交易系统软件开发案例

Kubernetes Service Proxy 无秘密

绅鱼片

Kubernetes 网络 iptables k8s网络 kube-proxy

区块链交易所系统软件开发资料(源码)

关于FL Studio20通道机架的一些使用技巧

懒得勤快

语聊房 SDK,下一代场景化解决方案新范式

融云 RongCloud

Transformer模型在语音识别领域最新进展,百度语音发布重大技术突破SMLTA2

科技热闻

北京天源迪科携迪易采参加“第五届中央企业电商化采购发展高峰论坛”

科技热闻

现成合约交易系统开发模板

Kubernetes CRI 分析 - kubelet 创建 Pod 分析

青云技术社区

云计算 云原生 kubenetes

/var/lib/docker目录磁盘满了,更换默认目录

阿呆

CTF专题一2021网络WEB题目解析

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

架构实战营-模块一作业

御道而行

架构实战营

区块链数字货币交易所系统开发资料(案例)

SQL实现连续登陆人数天数统计

大象灵感

sql 大数据 hive 数据仓库 数据分析

iOS 布道者龙神:永远挑战难度值增加 30% 的事情

融云 RongCloud

细节决定A/B测试的成败:有底线的样本量_文化 & 方法_云测数据_InfoQ精选文章