AB测试——流程介绍(设计实验)
前言: 作为AB测试的学习记录,接上文内容, 本文继续介绍假设建立和实验设计部分,包括实验对象、样本量计算(显著性水平、统计功效及最小可检测效应)、实验周期。
相关文章:
AB测试——原理介绍
AB测试——流程介绍(定义问题和指标选取)
3. 假设建立
3.1 原假设和备择假设
在AB测试中,我们需要建立原假设和备择假设:
- 零假设(H0)是默认的假设,即控制组和实验组之间没有显着差异。它表明两组之间任何观察到的差异都是由于机会因素造成的。
- 备择假设(Ha)与零假设相反。它表明控制组和实验组之间存在统计学上显着的差异,而这种差异不是由于机会因素造成的。
3.2 案例说明
例如,我们进行了一个AB测试,将用户随机分为A组和B组,在A组中采用原来的页面设计,在B组中采用新的页面设计,然后比较两组用户的转化率。我们建立如下的假设:
- 原假设(H0):页面设计对转化率没有显著影响,A组和B组的转化率相同。
- 备选假设(H1):页面设计对转化率有显著影响,A组和B组的转化率不相同。
一个完整的AB测试假设可以描述为:“通过改进网站的页面设计(优化方向)来提高注册转化率(测试指标),我们将测试两个版本的网站页面(测试变量):版本A和版本B。我们希望看到版本B的注册转化率显著优于版本A,我们将在测试期内每个版本中招募至少1000名用户(测试样本量),测试期为两周(测试时间)。”
在AB测试中,建立清晰明确的假设非常重要,它能够帮助我们更好地理解测试目标和测试方案,高测试的可信度和有效性,从而优化产品和服务的效果
4. 实验设计
4.1 确定实验对象
4.1.1实验对象分类
实验对象类型下面总结了比较常见的六种:
- 用户:以每个用户的唯一标识(比如身份证号、用户ID)作为实验样本可以避免数据混淆,但需要注意用户特性、数量和行为对实验结果的影响,如用户数量较少时需要增加实验时间,保证实验组和对照组具有相似的行为习惯和偏好。
- 设备:以设备作为实验对象时,每个设备将只分配给一个实验组或对照组。因为这些设备通常只能由一个用户使用,可以避免同一个用户在两个分桶中的情况,从而确保数据的可靠性。使用设备作为实验对象时,需要考虑到设备的数量、品牌和型号的变化。
- 页面或屏幕:这是一种适用于网站和应用程序的实验对象分类,因为这些页面或屏幕通常是用户与应用程序交互的主要方式。使用时,需要考虑到页面或屏幕的种类、内容和布局的变化。
- 对话:如果要对用户在应用或网站上的交互行为进行实验,可以使用对话作为实验对象,如聊天机器人或客服。需要确保实验的随机性和可重复性,避免实验组和对照组之间对话内容或应用程序使用场景的差异对实验结果的影响。
- 区域:通常是将参与实验的用户按照所在区域划分为实验组和对照组。例如,可以按照城市、国家或地域等将用户分组。在这种情况下,需要考虑到区域的多样性、用户数量的变化、用户行为的差异等因素。同时,需要确保实验组和对照组在每个区域的用户数量相当,以确保实验结果的有效性。
- 时间:将参与实验的用户按照时间顺序划分为实验组和对照组。例如,可以按照日期、星期几、小时等将用户分组。在这种情况下,需要考虑到时间的变化、用户数量的变化、用户行为的变化等因素。同时,需要注意确保实验组和对照组在每个时间段内的用户数量相当,以确保实验结果的有效性。
4.1.2 明确目标群体
除了确定好实验对象的类型,还需要明确实验目标群体。实际实验中,往往只需要针对特定对象进行实验,基本很少会有把所有用户/设备当做实验对象的情况。
比如在页面设计中,针对B端和C端的页面是不同的,当实验针对的是B端商家的界面优化时,实验就与C端用户无关,即可排除掉无关的C端用户。同时,登录方式包括网页、APP, 网页页面优化和手机用户的体验无关。尽量减少不相干的用户
在实际应用中,需要根据实验的具体情况来选择适合的实验对象分类,并确保实验设计合理、随机性良好,以获得可靠的实验结果。
4.2 计算样本量
4.2.1最小样本量的意义
实验和业务的要求不同。实验是希望样本量越大越好,样本量越大越能保证实验结果准确;但是业务方希望样本小,可以降低风险,加速迭代。
样本量过小可能会导致测试结果不够准确,而样本量过大则可能会浪费资源。因此,实验必须 满足最小样本量,实验结果中的数据检验才可信。如果没有计算样本大小,可能会提前停止测试而得出错误结论。
样本量计算工具网址
加粗样式
4.2.2 显著性水平(Significant level)
显著性水平是指在假设检验中拒绝零假设的概率,用α表示。通常使用的显著性水平是0.05或0.01,表示假设检验中有5%或1%的概率出现误判,即错误地拒绝了真实的零假设。
换言之,在95%或99%的情况下,我们可以相信实验结果的可靠性。
1-α 为置信度或置信水平
4.2.3 统计功效(Statistical power)
统计功效(statistical power)是指在统计假设检验中,能够正确拒绝原假设的概率,即检验能够发现真实效应的概率。 也可以解释为,正确地获得小的P值(<0.05)的概率。
在计算样本量时,通常会根据要求选择实验的功效为0.8或0.9(或更高),即β在0.2(或0.1)以下。
引用百度百科解释:
在假设检验中, 当原假设错误时, 接受正确的替换假设的概率。
已知在假设检验中:α错误是弃真错误,β错误是取伪错误。取伪错误是指,原假设为假,样本观测值没有落在拒绝域中,从而接受原假设的概率,即在原假设为假的情况下接受原假设的概率。
由此可知, 统计功效等于1-β。
它是在假设真实存在一定的效应差异时,我们能够在实验中检测到这种效应的概率。
统计功效与一类错误和二类错误密切相关,因为增加统计功效会降低二类错误的概率,但同时可能增加一类错误的概率。
4.2.4 最小可检测效应(Minimum detectable effect)
MDE指在实验中你希望能够检测到的最小变化量。 换句话说,它是一个指标,可以帮助我们确定是否需要进行实验,并确定实验的样本大小。在实际运用中,我们通常会设定一个最小可检测效应值,如果实验的结果小于该值,我们则认为实验结果不具有显著性,不值得进一步的关注。
通常情况下,最小可检测效应越小,需要的样本量就越大。
举个例子:
一个旅行网站希望能够验证一个方案去提高旅游报销的销售额。
已知: 1)网站每年有730,000个用户预定;2)预计保险的净利润为每个用户3美元;3)新方案将花费团队总计75000美元成本。
因此,在年度基础上,网站必须销售25,000份保险才能达到盈亏平衡,相当于添加保险的预订量为3.42% (25000 / 730000 = 0.0342)。通过ROI计算,3.42%将是一个合理的MDE。 即与现在相比,新方案需要对保险销量有3.42%的提升,该实验才有意义。
4.3 实验周期
一般而言,AB测试的实验周期应当足够长,以确保测试结果具有统计学意义和稳定性。
测试周期过短可能会导致测试结果不可靠或稳定性差,而测试周期过长则会延长测试周期和成本,影响测试效率。
在实际应用中一般是1~2周,以确保在不同时间段的测试结果差异不会对测试结果造成显著影响。此外,测试时长还应当根据测试指标和变化量大小来决定,一些指标可能需要更长的测试周期才能反映出变化的效果。
需要考虑周期效应和新奇效应:
4.3.1 周期效应(period effect)
周期效应是指用户行为周期带来的效应,比如季节效应、周内效应。用户可能会在某些时间点表现出与其他时间点不同的行为。
为了避免周期效应对实验结果的影响,可以采取以下措施:
-
控制外部变量:尽可能地控制与实验相关的外部变量,例如假期、天气等因素。这样可以减少这些外部因素对实验结果的干扰,并更准确地评估实验的效果。
-
分层实验:在实验设计中,可以将用户分成不同的层级,例如按照地理位置、年龄、性别等进行分层。这样可以更好地控制周期效应的影响,因为不同层级的用户可能会受到不同的周期性影响。
-
长期实验:如果实验的目的是评估某个长期效果,那么可以考虑将实验设计成长期实验,以避免周期效应的影响。通过持续观察实验结果,可以更好地确定实验的效果,并减少周期效应对实验结果的干扰。
4.3.2 新奇效应(novelty effect)
新奇效应是指在用户面对新的或不同于以往的体验或设计时,会对其产生兴趣和好奇心,从而可能会导致其行为发生变化,而这种变化可能与实验本身无关。
为了避免新奇效应对实验结果的影响,可以采取以下措施:
-
增加对照组数量:增加对照组数量可以帮助我们更好地确定实验结果是否受到新奇效应的影响。如果对照组数量足够大,那么我们就可以比较对照组和实验组之间的行为差异,从而确定实验结果是否具有统计显著性。
-
分阶段实验:将实验分成多个阶段进行,逐步引入新设计或体验,可以帮助我们更好地了解用户行为的变化。通过观察不同阶段的实验结果,我们可以更准确地确定新奇效应的影响,并确定新设计或体验所带来的真正效果。
参考资料:
https://www.invespcro.com/blog/calculating-sample-size-for-an-ab-test/
https://www.eyeofcloud.com/abtest-widget/124.html
https://machinelearningmastery.com/statistical-power-and-power-analysis-in-python/
https://towardsdatascience.com/how-to-set-the-minimum-detectable-effect-in-ab-tests-fe07f8002d6d
相关文章:
AB测试——流程介绍(设计实验)
前言: 作为AB测试的学习记录,接上文内容, 本文继续介绍假设建立和实验设计部分,包括实验对象、样本量计算(显著性水平、统计功效及最小可检测效应)、实验周期。 相关文章: AB测试——原理介绍 A…...
C++中的智能指针有哪些?分别解决的问题以及区别?
1.C中的智能指针有4种,分别为:shared_ptr、unique_ptr、weak_ptr、auto_ptr,其中auto_ptr被C11弃用。 2.使用智能指针的原因 申请的空间(即new出来的空间),在使用结束时,需要delete掉࿰…...
通达信捉妖改良CCI指标公式,简洁巧妙
高端的食材,往往只需要简单的烹饪方式。好的指标也是一样,只需要简单处理,就可以实现不错的效果。捉妖改良CCI指标公式属于意外之喜,编写指标时写错了,研究后发现结果比原想法更好。 捉妖改良CCI指标公式利用了CCI&am…...
「Python 基础」面向对象编程
文章目录1. 面向对象编程类和实例访问限制继承和多态type()isinstance()dir()实例属性和类属性2. 面向对象高级编程\_\_slots\_\_property多重继承定制类枚举类元类1. 面向对象编程 Object Oriented Programming 简称 OOP,一种程序设计思想,以对象为程…...
【K3s】第23篇 一篇文章带你学习k3s私有镜像仓库配置
目录 1、私有镜像仓库配置 2、registries.yaml Mirrors Configs 1、私有镜像仓库配置 可以配置 Containerd 连接到私有镜像仓库,并使用它们在节点上拉取私有镜像。 启动时,K3s 会检查/etc/rancher/k3s/中是否存在registries.yaml文件,并指示 containerd 使...
Redis学习【12】之Redis 缓存
文章目录前言一 Jedis 简介二 使用 Jedis2.1 测试代码2.2 使用 JedisPool2.3 使用 JedisPooled2.4 连接 Sentinel 高可用集群2.5 连接分布式系统2.6 操作事务三 Spring Boot整合Redis3.1 创建工程3.2 定义 pom 文件3.3 完整代码3.4 总结四 高并发问题4.1 缓存穿透4.2 缓存击穿4…...
Bootargs 参数
bootargs 的参数有很多,而且随着 kernel 的发展会出现一些新的参数,使得设置会更加灵活多样1。除了我之前介绍的 root、console、earlyprintk 和 loglevel 之外,还有以下一些常用的参数:init: 用来指定内核启动后执行的第一个程序…...
Mybatis框架源码笔记(七)之Mybatis中类型转换模块(TypeHandler)解析
1、JDBC的基本操作回顾 这里使用伪代码概括一下流程: 对应数据库版本的驱动包自行下载加载驱动类 (Class.forName("com.mysql.cj.jdbc.Driver"))创建Connection连接: conn DriverManager.getConnection("jdbc:mysql://数据库IP:port/数据库名称?useUnico…...
论文阅读《Block-NeRF: Scalable Large Scene Neural View Synthesis》
论文地址:https://arxiv.org/pdf/2202.05263.pdf 复现源码:https://github.com/dvlab-research/BlockNeRFPytorch 概述 Block-NeRF是一种能够表示大规模环境的神经辐射场(Neural Radiance Fields)的变体,将 NeRF 扩展到…...
【Matlab】如何设置多个y轴
MTALAB提供了创建具有两个y轴的图,通过help yyaxis就能看到详细的使用方式。 但是如果要实现3个及以上y轴的图,就没有现成的公式使用了,如下图所示。 具体代码 % 数据准备 x10:0.01:10; y1sin(x1); x20:0.01:10; y2cos(x2); x30:0.01:10;…...
圆桌(满足客人空座需求,合理安排客人入座圆桌,准备最少的椅子)
CSDN周赛第30期第四题算法解析。 (本文获得CSDN质量评分【91】)【学习的细节是欢悦的历程】Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… 地址:https://lq…...
如何入门大数据?
我们首先了解一下大数据到底是什么~ 大数据开发做什么? 大数据开发分两类,编写Hadoop、Spark的应用程序和对大数据处理系统本身进行开发。 大数据开发工程师主要负责公司大数据平台的开发和维护、相关工具平台的架构设计与产品开发、网络日志大数据分…...
如何在Vite项目中使用Lint保证代码质量
通常,大型前端项目都是多人参与的,由于开发者的编码习惯和喜好都不尽相同,为了降低维护成本,提高代码质量,所以需要专门的工具来进行约束,并且可以配合一些自动化工具进行检查,这种专门的工具称为Lint,可能大家接触得最多就是ESLint。 对于实现自动化代码规范检查及修…...
Spark高手之路1—Spark简介
文章目录Spark 概述1. Spark 是什么2. Spark与Hadoop比较2.1 从时间节点上来看2.2 从功能上来看3. Spark Or Hadoop4. Spark4.1 速度快4.2 易用4.3 通用4.4 兼容5. Spark 核心模块5.1 Spark-Core 和 弹性分布式数据集(RDDs)5.2 Spark SQL5.3 Spark Streaming5.4 Spark MLlib5.5…...
社科院与杜兰大学金融管理硕士项目——人生没有太晚的开始,不要过早的放弃
经常听到有人问,“我都快40了,现在学车晚不晚呢”“现在考研晚不晚?”“学画画晚不晚?”提出这些疑问的人,往往存在拖延,想法只停留在想的阶段,从来不去行动。当看到周边行动起来的人开始享受成…...
Spatial-Temporal Graph ODE Networks for Traffic Flow Forecasting
Spatial-Temporal Graph ODE Networks for Traffic Flow Forecasting 摘要 交通流量的复杂性和长范围时空相关性是难点 经典现存的工作: 1.利用浅图神经网络(shallow graph convolution networks)和 时间提取模块去分别建模空间和时间依赖…...
IP协议+以太网协议
在计算机网络体系结构的五层协议中,第三层就是负责建立网络连接,同时为上层提供服务的一层,网络层协议主要负责两件事:即地址管理和路由选择,下面就网络层的重点协议做简单介绍~~ IP协议 网际协议IP是TCP/IP体系中两…...
可视化组件届的仙女‖蝴蝶结图、玫瑰环图、小提琴图
在上一篇内容中为大家介绍了几个堪称可视化组件届吴彦祖的高级可视化图表。既然帅哥有了,怎么能少得了美女呢?今天就为大家介绍几个可视化组件届的“美女姐姐”,说一句是组件届的刘亦菲不为过。蝴蝶结图蝴蝶结图因其形似蝴蝶结而得名…...
人的高级认知:位置感
你知道吗?人有个高级认知:位置感 位置感是啥?咋提高位置感? 趣讲大白话:知道自己几斤几两 【趣讲信息科技99期】 ******************************* 位置感 就是对自己所处环境和自身存在的领悟 属于人生智慧 来源于阅历…...
MATLAB——信号的采样与恢复
**题目:**已知一个连续时间信号 其中:f01HZ,取最高有限带宽频率fm5f0。分别显示原连续时间信号波形和 3种情况下抽样信号的波形。并画出它们的幅频特性曲线,并对采样后的信号进行恢复。 step1.绘制出采样信号 这部分相对简单…...
Docker Nginx 反向代理
最近在系统性梳理网关的知识,其中网关的的功能有一个是代理,正好咱们常用的Nginx也具备次功能,今天正好使用Nginx实现一下反向代理,与后面网关的代理做一个对比,因为我使用的docker安装的Nginx,与直接部署N…...
手把手教你实现书上的队列,进来试试?
一.队列的基本概念队列的定义队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允…...
【springboot】springboot介绍
学习资料 SpringBoot 语雀 (yuque.com)【尚硅谷】SpringBoot2零基础入门教程(spring boot2干货满满)_哔哩哔哩_bilibiliSpringBoot2核心技术与响应式编程: SpringBoot2核心技术与响应式编程 (gitee.com) Spring 和Springboot 1、Spring能做什么 1.1…...
PMP项目管理项目整合管理
目录1 项目整合管理概述2 制定项目章程3 制定项目管理计划4 指导与管理项目工作5 管理项目知识6 监控项目工作7 实施整体变更控制8 结束项目或阶段1 项目整合管理概述 项目整合管理包括对隶属于项目管理过程组的各种过程和项目管理活动进行识别、定义、组合、统一和协调的各个…...
ADS中导入SPICE模型
这里写目录标题在官网中下载SPICE模型ADS中导入SPICE模型在官网中下载SPICE模型 英飞凌官网 ADS中导入SPICE模型 点击option,设置导入选项 然后点击ok 如果destination选择当前的workspace,那么导入完成之后如下: (推荐使用…...
C++:异常
在学习异常之前,来简单总结一下传统的处理错误的方式: 1. 终止程序,如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。 2. 返回错误码,缺陷:需要程序员自己去查找…...
3.初识Vue
目录 1 vue 浏览器调试工具 1.1 安装 1.2 配置 2 数据驱动视图与双向数据绑定 3 简单使用 3.1 下载 3.2 将信息渲染到DOM上 4 使用vue浏览器调试工具 5 vue指令 1 vue 浏览器调试工具 chrome可能是我浏览器的原因,装上用不了,我们使…...
【C语言复习】程序的编译与链接
程序的编译与链接写在前面程序的编译与链接编译的过程程序编译环境程序执行过程编译链接的过程预处理预处理符号#define条件编译写在前面 程序的编译与链接是C语言中非常重要的一节。关键点在于详解C语言的程序编译和链接、宏的定义和与函数的区别、条件编译等知识。 程序的编…...
Golang sql 事务如何进行分层
在写代码过程中遇到了需要使用gorm执行sql事务的情况,研究了一下各位大佬的实现方案,结合了自身遇到的问题,特此记录。 代码架构介绍 . ├── apis ├── config ├── internal │ ├── constant │ ├── controller │ ├──…...
linux系统openssh升级
linux系统openssh升级 说明 整个过程不需要卸载原先的openssl包和openssh的rpm包。本文的环境都是系统自带的openssh,没有经历过手动编译安装方式。如果之前有手动编译安装过openssh,请参照本文自行测试是否能成功。 如果严格参照本文操作,保…...
一分钟做网站/百度经验实用生活指南
微软已经改变了 Enterprise Library 4 源代码的许可协议, 以基于开源友好的 Microsoft Public License (Ms-PL) 许可协议发布。源代码可以从 模式与实践CodePlex 社区 上得到。Enterprise Library 4.0有大量的新功能和更新。这更宽松的许可协议(Ms-PL)为…...
朋友圈转wordpress文章显示缩略图/哪里有网络推广
//数据结构基本概念 #include<iostream> using namespace std;/* 数据 – 程序的操作对象,用于描述客观事物 数据的特点: 可以输入到计算机 可以被计算机程序处理 数据是一个抽象的概念,将其进行分类后得到程序设计语言中的类型。如&am…...
2023年新闻热点事件/seo整站优化哪家好
题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长。 输入格式 输入文件第一行为两个整数n,m(1<n,m<100),接下来n行,每行m个数字,用空格隔开,0或1. 输出格式…...
学生做网站怎么收费/商业软文代写
发文词:类似于新刊物的“发刊词”,我们也写两句发文词。笔者前些年关于SAP的文字主要包括“SAP那些事”系列文章中了,这些文章的视角主要是从顾问的角度进行描述的,侧重的也是系统功能和顾问职业的描述。 最近,笔者认…...
网页制作一个网站八个页面咋做/国内广告联盟平台
文章目录软硬件环境硬件软件Opencv和ROS发布摄像头数据节点图像接收和处理节点软硬件环境 硬件 下位机:树莓派4B(4G)上位机:PCUSB摄像头 软件 上下位机都是Ubuntu 18.04系统ROS melodic Opencv和ROS OpenCV格式图片…...
怎样 建设电子商务网站/大数据查询平台
查看所有关于python的线程 ps -ef|grep python 或 netstat -lntp 或 ps -a kill -9 14865...