【数据分析】业务分析之ABtest

A/B测试
AB测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用。
在这里插入图片描述
为什么要进行A/B测试
1.产品的新功能对KPI影响有多大?

  • 新版本哪个更好,按钮。。。
  • 产品对KPI的影响有多大
    在这里插入图片描述

2.什么时候适合进行A/B测试

  • 决定是不是要使用新的产品设计和功能
  • 新的产品和功能对我们的数据指标有多大的影响
  • 通过真实数据和理论的比较,更好得了解用户

3.什么时候不适合进行A/B测试?

  • 没有清晰的对照组
  • 公司LOGO
  • 很难获得用户的数据或者测试时间过长

4.A/B测试的基本统计学知识
假设检验
简单来说,就是要我们观察到的两组数据的差异,比偶然差异
大得多,我们就认为两组之间的差异是真实存在的。

原假设和备择假设
原假设(H0):两组没有差异
备择假设(Ha):两组有差异

在这里插入图片描述

  • 当出现第一类错误时,可能导致错误上线一些无效策略,增加了
    系统复杂度
    原假设为真,不拒绝原假设,实际上两个版本没有任何区别,实验结果认为有差别,对产品功能进行改变,导致决策错误
  • 出现第二类错误时,则可能会错过某些真正有助于体验提升的
    有效策略
    备择假设为真,接受原假设。实际上两个版本有区别,但是实验结果认为版本没有差别,没有投放版本更好的功能
  • 第一类错误更严重,增加错误决策复杂度。第二类错误最坏就是保持原状。

置信水平、P值和统计功效
置信水平:可以接受的第一类错误发生的概率(自行规定,一般0.05)
P值:实际情况中第一类错误发生的概率,小于置信度时显著
统计功效:1 - (第二类错误发生的概率),一般0.8

5.设计A/B测试一般步骤
在这里插入图片描述

案例: 某公司准备新上线了一款夏日防晒外套,两个运营同事为选
择该外套的搜索结果主图产生了争论。
业务方找到你,希望你能够针对这两个不同的主图做一个AB
测试

第一步:确定目标及假设

  • 目标
    通过进行AB测试来实验更换产品主图对我们核心数据指标的影响
  • 原假设:更换产品主图不会对搜索结果的点击率有影响
  • 备择假设
  • 把产品主图换成展示模特搭配的图片,能够增加搜索结果的
    点击率
  • 部分增加的点击量能够进一步转化成购买
  • 点击量的增加在移动端更加明显

第二步:确定数据指标

  • 核心指标
  • 点击率:点击量/搜索结果展示量
  • 购买率:有效订单/点击量(访客)
  • 交易额
  • 用户行为相关的数据指标
  • 跳出率
  • 页面访问时长
  • 回访率
  • 产品分享

第三步:确定最小提升值
这个数字最终会让我们决定我们需要多少测试多少用户及测试多长时间

  • 当前点击率:5%
  • 新版本可以接受的最小点击率:5.5%

我们要确保能够测试到足够的用户来观测到10% 的提升

第四步:计算测试的用户数量以及测试时长

理论上,样本量越多越好
当样本数量很少的时候,测试的结果不稳定,难以得出确信的结
论。
工作中,样本量越少越好
小公司流量有限; 试错成本大

网上有很多样本数量计算器,需要我们提供原始版本的数据
(通常是转化率)和统计显著性(一般是95%),有些计算器会
需要我们提供统计效力(一般是80%),然后就可以计算出我
们所需要的样本数量。
根据所需要的样本数量 & 测试网站/APP的日流量,就可以
计算出AB测试的时长。

在这里插入图片描述
在这里插入图片描述

其中n是每组所需样本量,因为A/B测试一般至少2组,所以实验
所需样本量为2n;
α和β分别称为第一类错误概率和第二类错误概率,一般分别取0.05和0.2;
Z为正态分布的分位数函数;Δ为两组数值的差异,如点击率1%到1.5%,那么Δ就是0.5%;
σ为标准差,是数值波动性的衡量,σ越大表示数值波动越厉害。
从这个公式可以知道,在其他条件不变的情况下,如果实验两组
数值差异越大或者数值的波动性越小,所需要的样本量就越小。

6.如何对A/B测试的结果进行分析

  • 数据可靠性检查
    检查一些不应该因为AB测试而产生变化的指标,如果这些指标发生了变化的话应当进一步查证这些变化的原因
  • 显著性检验
    如果结果显著:全局实施新的版本如果结果不显著:进行进一步的分析,比如对用户进行维度上的细分,着重关注有没有辛普森效应; 检查测试的设计是不是有问题

7.A/B测试里的坑

  • 不要以全概偏
    当我们做了一次A/B测试后,发现试验版本的数据结果并不
    理想,于是就认定所有的地区或渠道的效果都是负面的,这
    是典型的区群谬误
    在这个概念中,认为群体中的所有个体都有群体的性质。但
    如果仅基于群体的统计数据,就对其下属的个体性质作出推
    论,那么得出的结论往往是不准确的。

在这里插入图片描述

  • 在谷歌和火狐浏览器表现都很好,在IE浏览器表现不好,可能是因为IE插件没更新,版本问题
  • 如果因此给出B版本表现并不好的结论,有可能错过在谷歌和火狐的提升
  • 不要因为观测到P值显著就提前结束测试
    试验给出的p-value值是基于认为你设计的试验是已知样本和效应大小的,所以单纯使用p-value作为停止试验的准则是不太正确的。以及,如果你持续的监控试验的发展和p-value,就比较容易看到真实的效果。
    在这里插入图片描述
  • 有可能是某一天的特殊情况
  • 也有可能是样本量过小
  • 辛普森悖论
    案例1: 假设我从医生处得知自己得了肾结石,该医生向我展示了两种疗法效果的对比数据。疗法A为开刀手术,疗法B为微创手术。
    两种疗法效果对比如左图:
A疗法B疗法
患者人数350350
治愈成功率83%75%

从两组数据对比结果来看,我似乎应选择疗法B,因为其成功率更高。
但为了谨慎起见,我又咨询了一位医生。第二位医生向我展示了从同一个疗法实验中得出的另一种数据对比结果:

A疗法B疗法
小结石87%(234/270)93%(81/87)
大结石69%(55/80)73%(192/263)

据该医生解释,肾结石只分为小结石和大结石,没有中等大小的结石。而根据以上数据对比结果,他推荐使用疗法A,因为无论是治疗小结石还是大结石,疗法A的成功率都更高。

面对两个矛盾的测试结果,我应该选择哪种疗法呢?

正确的答案是B疗法!

为什么在第二个实验中B疗法对于大结石和小结石的治愈率均高于A,但是整体的治愈率却低于A疗法呢?仔细观察这组实验数据的话,我们不难发现数据的两个特征:

  • 不管用什么疗法,大结石的治愈率都比小结石的治愈率低
  • A疗法更常被用于小结石,而B疗法更常被用于治疗大结石

综上所述,当我们把整体数据结合起来的时候,同样的整体样本数量中,B疗法被大量用于治愈率较低的大结石,因此B疗法的整体治愈率被拉低了

案例2:辛普森悖论的其他案例
一所美国高校的两个学院,分别是法学院和商学院,新学期招生。人们怀疑这两个学院有性别歧视。两个学院的统计数据如左边表格所示,女生的录取率在两个学院均高于男生的录取率。

但是将两组数据结合在一起后,女生反而有着更低的录取率。
这个例子的数据特征和之前的例子相似:

  • 录取率在两个学院之间有差别
  • 男生和女生申请不同的学院的比例也有很大差别
    因为男生更愿意申请录取率更高(相对于商学院来说)的法学院,从而拉升了男生的整体录取率

两个学院的总体录取率

录取拒收总数录取比例
男生2099530468.8%
女生14311025356.5%

商学院

录取拒收总数录取比例
男生8455315.1%
女生5110115233.6%

法学院

录取拒收总数录取比例
男生2015025180.1%
女生92910191.1%
  • 选择样本时要注意网络效应
    网络效应是指样本和样本间存在某种联系,不在是互相
    独立的样本,造成我们的测试结果不够准确。
    例如,对Facebook用户群体活跃度测试,A群体中是否有一些人是B群体中的好友,两个群体之间是有正向或者负向影响的
  • 在测试途中污染控制变量
    如果在测试途中我们发现控制变量收到污染,应当停止
    测试并依据具体的情形重新定义实验假设,重新测试
  • 进行A/A 测试保证流量的可靠性
    通过在正式A/B测试前进行A/A测试来观测被选中的流量是不是有偏差
    在进行测试之前对两组变量进行差异分析,确保差异是AB测试的原因导致的

8.在A/B测试中如何避免辛普森悖论?

  • 想要避免辛普森悖论,最主要是要对AB测试进行科学的流量分割,保证试验组和对照组里的用户特征是一致的,并且都具有代表性,可以代表总体用户特征。
  • 在AB测试的设计上,如果我们觉得某两个变量对测试结果都有影响,那我们就应该把这两个变量放在同一层进行互
    斥试验,不要让一个变量的试验动态影响另一个变量的检验。如果我们觉得一个试验可能会对新老客户产生完全不
    同的影响,那么就应该对新客户和老客户分别展开定向试验,观察结论。
  • 在AB测试结果的分析上,我们需要对结果进行多维度细分的对比。除了总体对比,也看一看对细分受众群体的试验
    结果,不要以偏盖全,也不要以全盖偏。一个版本提升了总体活跃度,但是可能降低了年轻用户的活跃度,那么这个
    试验版本是不是更好呢?一个试验版本提升总营收0.1%,似乎不起眼,但是可能上海地区的年轻女性iPhone用户的
    购买率提升了20%。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26307.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生物信息学竞赛:糖尿病数据挖掘

糖尿病数据挖掘 一理:机器学习量化分析糖尿病致病因子下载:临床数据线性回归预测糖尿病LightGBM 预测糖尿病糖尿病因子分析变量相关性分析 一文:当前科学理解慢病之王的解决方案是什么怎么治疗怎么预防 一理:机器学习量化分析糖尿…

VS Code插件之Debugger for Chrome

号称2018最火的编辑器,不用用怎么行? 不多说直接开始踩坑之路。 要在vs中启动chrome控制台怎么办?vscode并没有集成环境,这里我们需要借助一个插件Debugger for Chrome。 选择左边安装包选项,点击商店搜索Debugger for…

Vscode对C/C++可视化的代码跟踪调试

文章目录 可视化的代码跟踪调试1、安装Visual Studio Code2、用vscode编译调试C\C 总结 可视化的代码跟踪调试 ubantu18.04的环境下,在命令行工具gdb调试基础上,利用可视化调试前端软件Visual Studio Code,(后端依然依赖gcc、gdb…

VS Code真机测试步骤

VS Code真机测试步骤 前提:你的电脑跟你的手机是在同一个网络环境下。电脑连手机热点; 1. 在扩展里搜索live server,下载安装; 2. 打开cmd 命令窗口(快捷键是winr); 输入…

VS Code调试C代码

1、前言 首先说明的是vscode是代码编辑器,并不是编译器,它本身并不能编译C语言。 在这里我们使用的是MinGW-w64作为C语言的编译器。MinGW-w64的前身是MinGW的全称是:Minimalist GNU on Windows。它实际上是将经典的开源 C语言 编译器 GCC 移…

VScode的代码截图插件CodeSnap

CodeSnap : 在 VS Code 中为您的代码截取漂亮的屏幕截图! 插件名:CodeSnap官方地址:CodeSnap - Visual Studio Marketplace特征: 快速保存代码的屏幕截图将屏幕截图复制到剪贴板显示行号许多其他配置选项用法:选中需要…

Vscode——调试数据可视化插件debug-visualizer

debug-visualizer是一款极其优秀的调试数据可视化插件 安装方法 第一步:vscode插件库安装 debug-visualizer第二步:环境内输入 pip install vscodedebugvisualizer 使用方法 启动调试Ctrl Shift P 打开命令面板,输入 Debug Visualizer: …

VS Code 最好的 Git 可视化插件

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇 作者丨小集 来源丨小集(ID:zsxjtip) Visual Studio Code 有几组 git 命令来为您的代码存储库执行和执行多项任务。但是&#xff0…

如何使用VScode软件测试接口

我们知道,Visual Studio Code(简称VScode)软件一般用于编写前端代码,但其实,它也可以很方便的用于接口测试,达到和postMan一样的效果。 怎么实现呢? 步骤如下: 1.安装 REST Clien…

视频特效软件有哪些?这些软件值得一试

大家平常在制作视频时,经常需要将多个视频拼接,但是如果两个视频中间没有什么转场过渡的话,会显得很单调。我们可以增加一些转场、音乐、特效,这样整支视频看起来效果会好很多。讲到视频特效,可能有些小伙伴会觉得它很…

python :超级大乐透

体育彩票 超级大乐透 dlt.py # codingutf-8 import randomdef xuanhao(total, count):element [x1 for x in range(total)]result []for i in range(count):res element[random.randint(0, len(element)-1)]element.remove(res)result.append(res)return result# 超级大乐透…

发卡网源码

简介:发卡网带代理功能,安装简单。 网盘地址:https://pan.baidu.com/s/1E3AtqCmBZPjXgaiUEXrM6Q 提取码:rsu4 展示:

最新鲸发卡企业发卡网系统源码+免授权

正文: 心心念念的鲸发卡来啦,企业发卡源码,鲸发卡。目前全网最稳定的发卡系统之一。 在运营版本,既然做就要把他当作一项事业来做。 程序开源无加密,完整运营级程序,非市面上垃圾程序BUG一堆。 此程序经过市场验证…

功能强大的发卡网源码+支付接口超多

正文: 有二十三个支付接口,三套前台模板。 由于还得更新其他源码,就填充了一个商品,UI看起来不错,脑补了下, 填充完商品后,应该会更好看。 程序: wwbwf.lanzouf.com/iigbh09ygu6b 图片:

【.NET AI Books 前言】Azure OpenAI Service 入门

本书是为 .NET 开发者而写的,让 .NET 开发者能快速掌握 Azure OpenAI Service 的使用技巧。 ChatGPT 的到来意味着我们已经置身于 AI 引起的全新变革中,作为开发者你可能将面临几种改变: GPT 模型到来后,如何去架构好企业解决方案…

github基本操作

目标 把本地的一个项目放到github上,方便浏览和管理 步骤 要将本地代码推送到 GitHub 上,您需要执行以下步骤: 1. 在 GitHub 上创建一个新的仓库。 2. 在本地计算机上使用 Git 命令行工具初始化一个新的 Git 仓库。 3. 将本地代码添加到 …

如何构造个人 AI 策略:从 AI 绘画的演进与 ChatGPT 现状出发?

持续关注 AI 相关探索:https://github.com/phodal/ai-research PS:就本文的结论而言,我相信你已经或多或少的有所体会了。也因此,本文更多的是展现一个思考的过程,而不是一个纯粹的结论。 AIGC 是什么?它是…

如何利用CPU Cache写出高性能代码,看这些图就够了!

世界就像个巨大的马戏团,它让你兴奋,却让我惶恐,因为我知道散场永远是——有限温存,无限辛酸。——卓别林 我们平时编写的代码最后都会交给CPU来执行,如何能巧妙利用CPU写出性能比较高的代码呢?看完这篇文章…

对视频剪辑应用灰度图像变换+Moviepy生成灰度视频处理遇到几个有意思的问题

一、引言 最近在学习图像处理的《直方图处理》,对直方图均衡处理效果感觉非常有用。 以前学习Moviepy音视频剪辑时,用的卓别林的一个黑白视频片段,感觉视频的噪点比较多,画面也整体偏暗,不禁想看看如果对其进行直方图…

大厂正在「去大厂化」

大厂逐渐不再是「大厂」。 撰文 | 佘宗明 大厂还值得去吗? 这成了摆在很多年轻人面前的问题。 搁几年前,这都不能称之为问题。 扁平化管理、快速上升空间、弹性工作制……比JK制服还诱惑。「财务自由」的召唤,更是胜却人间无数情怀。 那现在呢…