发现这篇文章字数破3K了……作为一枚新时代的懒惰社畜,白天工作不停撸代码,晚上回家继续码字真的……有点累。
写下这个标题的时候,我有点心惊胆战。作为一个统计学学渣,想了很久觉得实在不好意思班门弄斧大肆介绍假设检验的原理,毕竟在关注我的人里不乏统计学大佬。既然是介绍面试的经验,我准备在文章里,结合自己面试过程中遇到的一些问题,概括假设检验的基本概念以及如何将其运用在工作的AB实验中。对假设检验的详细论述感兴趣的同学,建议自己琢磨安德森的《商务经济统计》(后台回复“数据”即可领取电子书)。
AB实验是数据分析、产品运营、算法开发在工作中都时常接触到的工作。按钮颜色、广告算法、标签排序,这些互联网产品里常见的功能与展示都是在一次次AB实验中得到优化。
在实习中,并不是每一个实习生都能接触到AB实验,这也让很多没有相关经历的人误认为AB实验是一项高大上的工作任务。但其实——
许多公司搭建了可(sha)视(gua)化的AB实验平台,业务、运营以及产品都一眼看出AB实验的结果……不过,由于企业搭建的AB实验平台在权限、监控上有诸多限制,加上很多Leader出于实习生实习期短、留用概率小的顾虑,大部分实习生都不会参与完整的AB项目。
可是——
尽管在实习中没有接触过AB实验,在简历中也没提到丝毫,这不代表在面试中就能逃过一劫……
我在实习中就没有接触过AB实验,但面试官仍然对我抛出来的项目分析过程饶有兴趣,也会问我有没有使用AB实验作出优化。得益于面试前全方位的准备,我的面试回(tao)答(lu)往往是:
面试官:“你有没有想过用AB实验来优化项目?”
瑟瑟发抖的我:“不好意思,我在做项目的时候想过用AB实验,但由于XXXX的原因无法落实。不过我自己构思了比较完整的实验思路……(此处省略若干字),如果有机会让我实施AB实验,我相信能够让项目表现更好。”
其实这是一个很加分的回答。在面试官看来,眼前的候选人虽然没有参与AB实验,但自己琢磨思考了项目优化方案,应该有不错的自我学习和自我驱动能力 (给自己鼓掌撒花ing)。
引申一步,当你对自己的项目足够熟悉时,哪怕没有机会开展AB实验,仍然可以和我一样,在回答项目相关问题时,代入自己对AB实验的思考。
好了,言归正传,进入今天的正题。
01 我们先介绍统计检验
在统计学中,想要证明一个命题是正确的,只能通过证明其否命题是错误的来达到目的。假设检验是用统计数据来判断命题真伪的方式。我们常常会假设两个命题:
H0:备受质疑的命题
H1:有待验证的问题
那如何来证明H0和H1孰对孰错呢?这时候我们需要用到P值。
P值是什么?P值就是在H0假设成立的情况下,得到样本观察结果或更极端的观察结果出现的概率。
这句话好绕口,我们可以简单的理解成P代表了对H0命题的支持程度。所以P值越小,H0命题正确的概率就越小,H1命题正确的概率越大。我们有常常会指定显著性水平α=0.05,当P<α时,H0命题成立的概率<0.05,这是一个受到统计学支持的假命题。
在学习统计学时,我们接触了一大堆显著性水平,显著区间的概念;在考完统计学后,统统还给了大学老师……如果是面试数据分析相关的岗位,强烈建议复习一下,再总结成方便自己记忆的文字,存入面试文档(插播一句,后台好多人私信我面试文档里准备了哪些内容……按当前进度,一只伪装加班狗表示写到这一块预计应该要4月了吧emmmm)。
若是有面试官问我:“置信区间和置信度你了解吗?”
根据准备在面试文档中的内容,我能够脱口而出:“在假设检验的过程中,我们往往采用样本数据特征来估计整体的数据特征。在中心极限定理里,我们知道从总体中进行N次样本抽取,N次样本的均值会围绕总体均值上下波动。因此,置信区间就是为总体的均值提供了一个可波动的范围,置信区间与置信度是相对应的。例如,在95%的置信度下,置信区间为【a,b】,也就是说,抽取100次样本,其中有95次样本的均值能够落在【a,b】范围内。”
可惜我做了充分的准备,并没有面试官问我这个问题(哭)
也有人问,面试中面试官会以什么形式来问假设检验的知识点呢?举一个栗子 :
面试VIVO的时候面试官随口提问:“你会怎么证明中医的有效性?”
我当时的回答是:
“我会用假设检验来做证明。
第一步,提出两个命题。H0命题是中医无效;H1命题是中医有效。在这里,H0命题是我希望被推翻的命题,而H1命题是我希望被证实的命题。
第二步,随机选择两组生理特征、疾病状况一致的人。一组人不给予治疗;另一组人给予中药治疗,持续观测两拨人生理状况。
第三步,对两组人的生理数据进行独立样本t检验,观测统计结果P值。
第四步:设定显著性水平α=0.05,如果统计结果P≤0.05,则推翻了H0假设,证明在该显著性水平下,中医是有效的。”
所以我们简化一下,回答假设检验相关题目的时候,遵循“提出命题-选择实验对象-检验-输出结论”的流程即可。只是有一点,建议多使用“第一第二第三”、“首先其次最后”这些次序词,用以展示相对流畅的思考逻辑。
不知道我讲清楚了没有……如果没有,建议结合《商务经济统计》再继续理解几遍,自我感觉以上内容应该可以应付绝大多数面试过程中的假设检验问题。
好了……不管了,我要强行进入第二个话题了……
02 工作中的AB实验是如何开展的?
再举一个简单的栗子。过去在对首页产品进行排序时,往往是运营人员结合自己工作经验进行人工排序,现在算法小哥更新了产品排序的逻辑,希望通过AB实验证明自己的算法优于运营人工推荐,提高转化效果。
算法小哥和开发沟通好上线AB实验,用转化率(CR)来评估不同排序方式的效果,并设定显著性水平α=0.05。在这场AB实验中,用到的两个假设分别是:
H0:运营的人工排序效果好(备受质疑、希望被推翻的命题)
H1:算法的推荐算法效果好(有待验证,希望被证实的命题)
在AB平台观察今天的实验效果,数据结果显示P=0.003,可以理解成数据统计结果对H0的支持力度只有0.003,小于显著性水平0.05,这时候H1命题成立,相比运营的手工排序,算法工程师的推荐算法取得了更好的效果。
那在这个实验里,有什么要注意的点吗?
——嗯,AB实验有很多需要注意的问题。
(1)AB组是否真的只有一个变量
这场AB实验的变量是产品排序的逻辑,但大家都想开展AB实验,在首页上同期开展的AB实验有几十个,UI想测试筛选框的颜色、产品想测试标签的文案……。这种背景下,我们AB实验里被划分为A群体和B群体的用户往往同时参与了N多实验,不能绝对保证变量的唯一性。一般而言认为流量足够大,其AB实验和我们观测的AB实验没有直接交集,可以忽略其影响。
(2)新策略是否真的上线了
因为研发每天都有很多AB实验,而且AB实验平台出错也是常有的事情。所以我们要在别人告诉我们AB实验上线了以后,自己验证实验策略是否真的上线了。
(3)在实验前确定评估指标
我们的实验评估指标是CR转化率。这一点在实验上线前就要沟通好。
(4)多观察几天数据
很多AB实验上线后前几天数据表现是不稳定的,最好持续观察半个月再给出结论。
(5)存档AB测试的结果
对于数据分析师来说,每一个项目、每一个分析都需要做复盘和存档。比如AB实验项目,可以用一个标准化的模板来记录测试内容,为什么测试,测试对接人,测试效果等等,在年终的时候可以更好的汇报和复盘。
在大半年的工作中,终于有机会接触到诸多的AB实验,慢慢感知到各种AB实验原来殊途同归。但不可置否,它仍然是互联网产品迭代的利器,仍然是分析师证明自身价值的手段之一。想来这也是为什么诸多的面试官喜欢在面试中询问AB实验、假设检验的原因。
——如果将来我成为了面试官,我也会这么问
——对了,携程的春招内推暂时结束了,后台私信我就不一一回复了……如果7月我还在,欢迎大家继续找我内推……
近一年的工作中也攒下了不少的经验,准备在公众号慢慢整理数据分析方向校招的知识点和准备方式,目前想好的内容主要是:
【1】费米估算问题(已完成)
【2】业务场景题(已完成)
【3】AB实验和假设检验(已完成)
【4】应届生-数据分析方向自我介绍怎么准备(已完成)
【5】面试常见的SQL语法
【6】不懂算法但害怕面试中问到怎么办
【7】如何在面试中展示数据分析报告或者项目
【8】我的自我剖析文档有什么内容
………………
关注公众号回复“数据”即可收到一波我整理的pdf电子书,包括
1.精益数据分析
2.增长黑客
3.数据化管理
4.统计数字会撒谎
5.growing io出品的互联网第一本数据分析手册
等等
想要书或者想跟进的可以关注我~平时也会更新一些工作中对数据分析、数据产品、数据可视化的思考,一起交流啦~~~
微信公众号:阿狸和小兔