首页 > 其他分享 >A/B测试说起来容易做起来难,请先搞清楚原理再动手

A/B测试说起来容易做起来难,请先搞清楚原理再动手

时间:2023-03-31 13:55:49浏览次数:36  
标签:起来 AB 搞清楚 错误 假设 实验 测试 我们 页面

[A/B测试说起来容易做起来难,请先搞清楚原理再动手 - 每日头条](https://kknews.cc/zh-sg/news/3yy4rqo.html)

文源:阿伦的数据分析之路 作者:艾伦nmk

 

ABTEST系列文章将会围绕以下六个问题进行展开,比较系统的梳理数据分析师应掌握的AB测试技巧,本章为ABTEST系列文章第一章,“什么是AB测试和AB测试的统计学原理”

1.什么是AB测试?

2.AB测试的统计学原理?

3.统计功效是什么?

4.灵魂拷问!AB实验要开多久,样本量要多少?

5.如何优雅的分析AB实验的结果?

6.AB实验常见注意要点

AB测试经典案例

在切入正题前,我们先来看一个有趣的案例,奥巴马在当年竞选时,竞选团队有一个重要的任务是对竞选页面进行优化,目的是为了提高用户的注册率,获得更多的募捐奖金。竞选团队一共设计了6个页面,各有不同的特点,但最终需要选出一个页面来作为主打,你能帮他们选出哪一个页面是最好的吗?

在真正的历史上,竞选团队做了这么一个方案,他们将6个页面在小范围内同时推出并随机的让每个页面获得相同的用户数量,记录下每个页面的注册率。结果发现最优页面的注册率为11.6%,比最初版本页面的注册率8.26%提升了40.6%。增加了2,880,000个电子邮件地址,并转化为额外的约近6,000万美元捐款。从定性的角度我们很难去选出哪个页面是最好的,但通过AB测试定量的去判断可以帮助我们更好的决策。

最佳页面如下:

什么是A/B实验?

在这里我们引用王晔博士对AB实验给出的一个定义,AB实验就是“为了验证一个新的产品交互设计、产品功能或者策略、算法的效果,在同一时间段,给多组用户(一般叫对照组和实验组,用户分组方法统计上随机,多组用户统计角度无差别)分别展示优化前和优化后的产品交互设计,并通过数据分析,判断优化前后的方案在一个或多个评估指标上是否符合预期的一种实验方法“。

这段话可能比较拗口,下面我们用更通俗的语言再来理解一遍,AB实验就是我们在线上可以切出一部分用户(降低风险),完全随机的分成两组或多组(确保人群一致),一组保持现有的方案叫对照组,另外一组使用改进的方案叫实验组,使用统计的方法对两组之间指标差异进行分析,评估是否符合预期的一种方法。

为什么要做A/B实验?

A/B实验核心的价值是降低风险和准确评估改动影响,下面我们来看两个场景:

场景A

小A作为一款日活300万产品的产品经理在新版本自信满满的新上线了一个feature(改动),结果版本发布后线上留存大跌,给产品带来了重大损失

场景B

小A和小B在新版本同时上线了一个feature,发布后线上留存大涨,小A和小B都认为是自己的feature提高了留存,两个人争执不休

如果没有AB测试,以上两个场景可能就会在互联网公司工作中频繁出现。快速迭代是互联网产品的一大特点,如何在迭代中降低错误尝试带来的损失以及准确评估每一个feature对产品的影响是快速迭代的关键所在。AB实验为这两个问题提供了解决方案,能够切出小部分用户去做实验的特性可以降低风险,而变量的唯一性又让我们可以准确的评估feature带来的影响

A/B实验的统计学原理

AB实验的核心统计学原理是“假设检验”,什么是假设检验?

假设检验是用来判断样本与样本,样本与总体之间的差异是由抽样误差引起还是本质差别造成的统计推断方法,其基本原理是先对总体特征做出某种假设,然后通过抽样研究的统计推理,对此假设应该被拒绝还是接受做出判断,假设检验使用了一种类似反证法的推理,通过AB实验,我们要验证的其实是一对假设,原假设和备择假设。

举个例子,我认为把按钮从圆形改成正方形可以提高用户的人均点击数,那么我的原假设就是“把按钮从圆形改成正方形可以提高用户的人均点击数”,备择假设是“把按钮从圆形改成正方形不能提高用户的人均点击数” ,这是一对互斥的假设,如果我们能证明原假设不成立,那么备择假设在某种程度上就可以被推断为成立。

假设检验的基本思路是“小概率事件在少量实验中是几乎不可能出现的”,如果在实验中出现了小概率事件,那么我们就可以推断原假设是错误的,从而推断备择假设可能是正确的。

两类错误

由于假设检验是根据有限的样本信息对总体作推断,我们做出的结论都可能因为抽样误差而作出错误的判断。

比如我们认为瑞士的平均收入要高于我国,随机抽5个瑞士人和5个中国人做比较,如果抽到的中国人是马云、马化腾、王健林、李嘉诚和我的话,那这个结论肯定就不成立了,这就是抽样误差可能会带来的错误。在假设检验过程中,我们可能会犯两种错误,第一类错误(弃真)和第二类错误(纳伪)。

为了更形象的说明两类错误,我们看下面这张图片,在这里我们的原假设是 “没有怀孕”,备择假设是“怀孕了”,对图1来岁,没有怀孕我们认为其怀孕了,我们错误的拒绝了原假设,这就是弃真,对图2,怀孕了我们认为其没有怀孕,这就是纳伪。

在AB实验中,两类错误的表现往往是:

弃真:我的实验改动实际没有用,但我认为它有用

纳伪:我的实验改动实际有用,但我认为它没有用

在统计学中,我们用显著性水平(α)来衡量犯第一类错误的概率,统计功效β来衡量犯第二类错误的概率,对于这两类错误,一般来说我们认为第一类错误的危险性更大。

比如我们做了一个产品上的改动通过AB实验判断它是对留存有促进作用,但这里我们犯了第一类错误,改动上线后留存不增反降,可能就会造成了重大损失,所以我们会尽量降低犯第一类错误的风险,第二类错误也是需要避免的,只不过避免犯第一类错误的优先级会更高。

显著性水平(α)

上面我们提到了由于抽样误差可能会带来犯二类错误的风险,幸运的是统计学为我们提供了指标去量化我们犯错的可能性的有多大。在统计学中,我们用显著性水平(α)来衡量犯第一类错误的概率,统计功效β来衡量犯第二类错误的概率

那么显著性水平(α)该怎么运用呢?首先我们要先有这么一个认知,由于抽样误差的存在,我们每次在总体中抽取样本计算指标均值可能和“真实均值”都是有误差的,但根据中心极限定理,如果我们在总体样本中不断的去抽取样本计算指标均值,所得到的结果应会是近似正态分布,分布以真值会中心,均值越接近真值,出现的概率就越大

举个例子,我们设计了一个新的策略并且认为这个策略可以提高用户的人均停留时长,由此我们做出的原假设是“策略不能提高用户的人均停留时长”,备择假设是“策略可以提高用户的人均停留时长”,已知策略生效前的用户使用时长分布如下图所示,呈正态分布。

现在我们在总体中随机抽一部分样本施加策略,计算其样本使用时长均值,如果发现均值落在非红色区域,那么因为抽样误差也很有可能会出现这个取值,但如果均值落在了红色区域,我们就认为“小概率的事件发生了“,根据假设检验的基本思想,“小概率事件在少量实验中是几乎不可能出现的”,我们就可以拒绝原假设“策略不能提高用户的人均停留时长”,从而有很大的信心推断策略生效了。

如果上面理解有困难的话,我们再举一个通俗的例子,我有个朋友说他是一个射箭8环选手,平均成绩是在8环,但我不信,我让他射一次试一试,如果他只命中了1环,那我就有理由怀疑他是在骗我,因为对于一个平均成绩在8环的射箭选手来说,射中1环是很小概率的事件。

容易看出,红色区域的面积设定的越小,我们拒绝原假设的条件就严格,犯第一类错误的可能性就越小,显著性水平(α) 就是我们能接受的犯第一类错误的可能性,一般来说,业界普遍设定显著性水平(α) 为5%。

标签:起来,AB,搞清楚,错误,假设,实验,测试,我们,页面
From: https://www.cnblogs.com/ministep/p/17276050.html

相关文章

  • 接口自动化之测试数据动态生成并替换
    一、测试数据1.随机库random查看内置random方法,该方法自行学习,不再介绍。showprint([namefornameindir(random)ifcallable(getattr(random,name))])['Random','SystemRandom','_Sequence','_Set','_accumulate','_acos......
  • 好饭不怕晚,Google基于人工智能AI大语言对话模型Bard测试和API调用(Python3.10)
    谷歌(Google)作为开源过著名深度学习框架Tensorflow的超级大厂,是人工智能领域一股不可忽视的中坚力量,旗下新产品Bard已经公布测试了一段时间,毁誉参半,很多人把Google的Bard和OpenAI的ChatGPT进行对比,GoogleBard在ChatGPT面前似乎有些技不如人。事实上,GoogleBard并非对标ChatGPT......
  • 测试题2
         ......
  • 第三方软件测试报告为什么具备法律效力且更权威?
    软件产品在经开发人员开发完成后至上线必有一个软件测试的活动过程,该活动过程最后有一份输出文档便是软件测试报告。企事业单位在进行科技成果鉴定、产品验收、享受退税等步骤时,盖有CMA、CNAS章的软件测试报告必不可少的。一、什么是第三方软件测试报告?第三方软件测试......
  • Mac应用Drone Station结合普通游戏手柄让AR Drone飞起来
    ARDrone直升机确实很好玩,但以前只有用iPad,iPhone,iPodTouch,安卓智能手机,及Linux电脑才能玩,不过有了DroneStation,玩家现在可以使用Mac结合游戏手柄来玩。玩家可以用一个普通游戏手柄来控制飞行器,目前兼容USBXbox360,PS3,Extreme3D pro,DualActionGamepad,ThrustmasterT-Fl......
  • Qt读串口数据耗时测试
        QTimer*timer=newQTimer();   connect(timer,SIGNAL(timeout()),this,SLOT(OnTimeoutSendDataToRadio1()));   timer->start(1000);   qDebug()<<"StartTimer...";   m_pSerialPortWK3=newQSerialPort();   connect(m_pSerialPortWK......
  • 测试文章
    测试文章代码<scripttype="text/javascript"color="47,135,193"opacity='0.5'zIndex="-2"count="199"src="https://files.cnblogs.com/files/blogs/761969/canvas-nest.min.js"></script><sc......
  • 使用UI Automation实现自动化测试 --微软提供的控件Pattern
    微软提供的控件PatternSystem.Windows.Automation命名空间System.Windows.Automation.BasePattern为控件模式类提供基实现System.Windows.Automation.DockPattern表示在某个停靠容器内公开其停靠属性的控件System.Windows.Automation.ExpandCollapsePatte......
  • 软件测试|web自动化测试神器playwright教程(八)
    前言selenium中提供了一个seleniumIDE的工具用于脚本录制,我们通过插件市场安装之后,便可以将我们对浏览器页面的操作录制成脚本,并输出成java或Python等语言的脚本,我们可以通过生成的脚本再次回放我们的操作。作为一个比selenium更加强大的web自动化测试工具,当然也拥有录制的功能了,......
  • Web 自动化测试工具 All In One
    Web自动化测试工具AllInOneseleniumappiumfiddlerjmeter...SeleniumSeleniumWebDriver如果你想创建健壮的、基于浏览器的回归自动化套件和测试,在许多环境中扩展和分发脚本,那么你想使用SeleniumWebDriver,一个驱动浏览器的语言特定绑定的集合——它本来的方式驱动。......