AB测试——流程介绍(设计实验)

news2024/11/28 5:43:59

前言: 作为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实验对象分类

实验对象类型下面总结了比较常见的六种:

  1. 用户:以每个用户的唯一标识(比如身份证号、用户ID)作为实验样本可以避免数据混淆,但需要注意用户特性、数量和行为对实验结果的影响,如用户数量较少时需要增加实验时间,保证实验组和对照组具有相似的行为习惯和偏好。
  2. 设备:以设备作为实验对象时,每个设备将只分配给一个实验组或对照组。因为这些设备通常只能由一个用户使用,可以避免同一个用户在两个分桶中的情况,从而确保数据的可靠性。使用设备作为实验对象时,需要考虑到设备的数量、品牌和型号的变化。
  3. 页面或屏幕:这是一种适用于网站和应用程序的实验对象分类,因为这些页面或屏幕通常是用户与应用程序交互的主要方式。使用时,需要考虑到页面或屏幕的种类、内容和布局的变化。
  4. 对话:如果要对用户在应用或网站上的交互行为进行实验,可以使用对话作为实验对象,如聊天机器人或客服。需要确保实验的随机性和可重复性,避免实验组和对照组之间对话内容或应用程序使用场景的差异对实验结果的影响。
  5. 区域:通常是将参与实验的用户按照所在区域划分为实验组和对照组。例如,可以按照城市、国家或地域等将用户分组。在这种情况下,需要考虑到区域的多样性、用户数量的变化、用户行为的差异等因素。同时,需要确保实验组和对照组在每个区域的用户数量相当,以确保实验结果的有效性。
  6. 时间:将参与实验的用户按照时间顺序划分为实验组和对照组。例如,可以按照日期、星期几、小时等将用户分组。在这种情况下,需要考虑到时间的变化、用户数量的变化、用户行为的变化等因素。同时,需要注意确保实验组和对照组在每个时间段内的用户数量相当,以确保实验结果的有效性。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PyTorch】教程:torch.nn.PReLU

torch.nn.PReLU 原型 CLASS torch.nn.PReLU(num_parameters1, init0.25, deviceNone, dtypeNone) 参数 num_parameters ([int]) – 需要学习的 aaa 的数量&#xff0c;尽管作为输入&#xff0c;只有两个值是合法的&#xff0c;1 或者 输入的通道数&#xff0c;默认为 1 。ini…

各种光照模型的shader实现

大家好&#xff0c;我是阿赵。 这里打算给大家介绍一些常用的光照模型的shader实现方法。虽然这些光照模型很多都会在各大引擎内置&#xff0c;一般不需要自己写。但我觉得学习一下&#xff0c;首先对了解渲染原理有帮助&#xff0c;然后对写一些复合效果的shader时&#xff0c…

java安全编码规范考试

java安全编码规范考试 整理不易&#xff0c;收点币&#xff01;&#xff01; 安全编码规范考试.md 下面对zip文件的安全解压缩描述&#xff0c;错误的是 A.zip文件解压时&#xff0c;可以使用entry.getSize(&#xff09;对解压缩文件进行文件大小判断 B.zip文件解压时&…

Spring Cloud ( Eureka集群的搭建 )

操作步骤&#xff1a; 添加主机映射创建Eureka服务 导入依赖编写启动类编写yml复制服务实例测试一、添加主机映射 以 Windows系统为例&#xff0c;如果要构建集群&#xff0c;需要修改 hosts 文件&#xff0c;为其添加主机名的映射。 打开C:\Windows\System32\drivers\etc\h…

DJ1-4 计算机网络和因特网

目录 一、协议层及其服务模型 ISO/OSI 七层参考模型 TCP/IP 参考模型 1. 网际协议栈&#xff08;protocol stack&#xff09; 2. 分层&#xff1a;逻辑通信 3. 协议分层与数据 二、攻击威胁下的网络 1. 植入恶意软件 2. 攻击服务器和网络基础设施 3. 嗅探分组 4. 伪…

为什么机器人操作系统ROS1、ROS2这么难学

AI回复&#xff1a;ROS1、ROS2是机器人操作系统&#xff0c;涉及到很多复杂的概念和技术&#xff0c;需要有一定的编程和机器人知识基础才能学习。此外&#xff0c;ROS1和ROS2的架构和设计也有很大的不同&#xff0c;需要花费一定的时间和精力去学习和适应。但是&#xff0c;一…

DHCP的配置

实验目的熟悉DHCP的应用场景掌握DHCP的配置方法实验拓扑DHCP的配置如图15-2所示: 图15-2:DHCP的配置 实验步骤配置IP地址<Huawei>system-view Enter system view, return user view with Ctrl+Z.

新手入门python实现神经网络,超级简单!

前言&#xff1a; 这篇文章完全是为新手准备的。我们会通过用Python从头实现一个神经网络来理解神经网络的原理。 文章目录神经元1、一个简单的例子2、编码一个神经元把神经元组装成网络1、例子&#xff1a;前馈2、编码神经网络&#xff1a;前馈训练神经网络 第一部分1、损失2、…

C51---串口发送指令,控制LED灯亮灭

1.Code: #include "reg52.h" #include "intrins.h" sfr AUXR 0x8E; sbit D5 P3^7; void UartInit(void) //9600bps11.0592MHz { //PCON & 0x7F; //波特率不倍速 AUXR 0x01; SCON 0x50; //8位数据,可变波…

Spark-RDD 转换算子(双 Value 类型、Key - Value 类型)

双 Value 类型 1、intersection&#xff08;交集&#xff09; 2、union&#xff08;并集&#xff09; 3、subtract&#xff08;差集&#xff09; 4、zip&#xff08;拉链&#xff09; Key - Value 类型 1、partitionBy 2、reduceByKey 3、groupByKey 4、aggregateByK…

FinOps首次超越安全成为企业头等大事|云计算趋势报告

随着云计算在过去十年中的广泛应用&#xff0c;云计算用户所面临的一个持续不变的趋势是&#xff1a;安全一直是用户面临的首要挑战。然而&#xff0c;这种情况正在发生转变。 知名IT软件企业 Flexera 对云计算决策者进行年度调研已经持续12年&#xff0c;而今年安全问题首次…

3.初识Vue

目录 1 vue 浏览器调试工具 1.1 安装 1.2 配置 2 数据驱动视图与双向数据绑定 3 简单使用 3.1 下载 3.2 将信息渲染到DOM上 4 使用vue浏览器调试工具 5 vue指令 1 vue 浏览器调试工具 chrome可能是我浏览器的原因&#xff0c;装上用不了&#xff0c;我们使…

javaWeb核心05-FilterListenerAjax

文章目录Filter&Listener&Ajax1&#xff0c;Filter1.1 Filter概述1.2 Filter快速入门1.2.1 开发步骤1.2.2 代码演示1.3 Filter执行流程1.4 Filter拦截路径配置1.5 过滤器链1.5.1 概述1.5.2 代码演示1.5.3 问题1.6 案例1.6.1 需求1.6.2 分析1.6.3 代码实现1.6.3.1 创建F…

JavaScript Date(日期)对象

日期对象用于处理日期和时间。在线实例返回当日的日期和时间如何使用 Date() 方法获得当日的日期。getFullYear()使用 getFullYear() 获取年份。getTime()getTime() 返回从 1970 年 1 月 1 日至今的毫秒数。setFullYear()如何使用 setFullYear() 设置具体的日期。toUTCString()…

要做一个关于DDD的内部技术分享,记录下用到的资源,学习笔记(未完)

最后更新于2023年3月10日 14:28:08 问题建模》软件分层》具体结构&#xff0c;是层层递进的关系。有了问题建模&#xff0c;才能进行具体的软件分层的讨论&#xff0c;再有了分层&#xff0c;才能讨论在domain里面应该怎么实现具体结构。 1、问题建模&#xff1a;Domain、Mod…

手写模拟SpringMvc源码

MVC框架MVC是一种设计模式&#xff08;设计模式就是日常开发中编写代码的一种好的方法和经验的总结&#xff09;。模型&#xff08;model&#xff09;-视图&#xff08;view&#xff09;-控制器&#xff08;controller&#xff09;&#xff0c;三层架构的设计模式。用于实现前端…

无公网IP快解析实现移动app访问内网应用

随着移动化的发展&#xff0c;国内各大管理软件厂商纷纷推出相应的移动应用服务。移动端为企业提供了不一样的办公方式&#xff0c;从碎片化应用到一体化&#xff0c;同时也为企业办公提供了更高效便捷办公体验。 移动办公和传统pc端在服务器端部署时并没有太大的区别。企业为了…

数据、数据资源及数据资产管理的区别

整理不易&#xff0c;转发请注明出处&#xff0c;请勿直接剽窃&#xff01; 点赞、关注、不迷路&#xff01; 摘要&#xff1a;数据、数据资源、数据资产 数据、数据资源及数据资产的区别 举例 CRM系统建设完成后会有很多数据&#xff0c;这些数据就是原始数据&#xff0c;业务…

线程(操作系统408)

基本概念 我们说引入进程的目的是更好的使用多道程序并发执行&#xff0c;提高资源的利用率和系统吞吐量&#xff1b;而引入线程的目的则是减小程序在并发执行的时候所付出的时间开销&#xff0c;提高操作系统的并发性能。 线程可以理解成"轻量级进程"&#xff0c;…

Request和Response的概述

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;输出优质文章⭐作者主页&#xff1a;︶ㄣ释然⭐如果觉得文章写的不错&#xff0c;欢迎点个关注&#x1f609;有写的不好的地方也欢迎指正&#xff0c;一同进步&#x1f601;Request和Respo…