AB测试——原理介绍(中心极限定理、大数定理、假设检验、两类错误)

news2025/1/16 15:53:33

作为AB测试的学习记录,本文主要整理总结了AB测试背后的数学原理和一些概念解释。


1、控制变量法

基于控制变量法的思想,通过对比两组样本(实验组和对照组)的表现是否有差异,从而验证“变量”的作用。

借用中学生物课上的例子:探究种子萌发的环境条件的实验。
在这里插入图片描述

为了确定阳光对种子萌发有影响,需要确保除光照外所有环境变量一致。实验需要设置实验组和对照组,其中,对照组是正常接受光照的种子(没有其他特殊待遇);实验组是黑暗环境下的种子(有特殊待遇:没有光照)。

最后通过对比两组种子的发芽情况,得出“阳光对种子是否有影响”的结论。此外,还可以对比水分、温度等等环境变量对种子萌发的影响。

同理, 在实际的商业环境中,用户就像是这些待发芽的种子,我们可以通过控制产品设计、营销策略、推荐算法等等“变量”,去提高它们的“萌芽率”——活跃度、留存率、消费金额等等。因此,我们需要进行AB实验去检验各种策略、设计对公司的运营是有效的。

简言之,AB测试是一种评估运营方案是否有效的实验方法。 当不确定两种(或者多种)待选方案中哪个表现更好时,通过直接的实验手段去验证,找出最佳的解决方案。

但这种实验的前提是,样本量足够且变量可以控制。若样本量不足,例如刚上架的APP没有多少注册用户也就没有实验的必要性。

2、中心极限定理VS大数定理

2.1 中心极限定理

随着试验次数的增加,一组独立同分布的变量的均值可以近似看作服从正态分布,且方差也会随着试验次数的增加而减小。简言之,无论总体是什么分布,只要样本量足够大,样本的均值分布都会趋于正态分布。

具体的验证过程可以查看笔记《Python验证中心极限定理》。

样本和总体都呈正态分布,样本量的均值和总体均值一致。 当N固定时,样本的均值和总体一致,样本的方差等于总体的方差/N

独立同分布:指随机过程中,任何时刻的取值都为随机变量,如果这些随机变量服从同一分布,并且互相独立。比如掷色子,第一次和第二次掷出的结果都不会相互影响,而且结果是随机的。
在这里插入图片描述

2.2 大数定理

大数定律的核心在于将随机变量X所对应的随机试验重复多次,随着试验次数的增加,X的均值会愈发趋近于E(X)。即,样本量越大,越靠近总体。

2.3 两个原理的区别

中心极限定理是说无论抽样分布如何均值服从正态分布;而大数定律根本和正态分布无关,是说样本大了抽样分布近似总体分布。

3、假设检验

1) 提出假设

  • 原假设 (null hypothesis,H0):需要拒绝掉的假设,我们不希望看到的结果:新方案对核心指标不会有显著性影响。
  • 备择假设 (alternative hypothesis,H1):和原假设相反的假设,是我们想要的结果:新方案对核心指标有显著性影响。

PS: 在提出假设这一步,我个人的难点是总记不住两个假设的定义。 后面知道了一句顺口溜:“越小越拒绝",意思是P值越小,越拒绝原假设。然后联想推出:P值越小越好,所以在对P值进行判断时,记住不要大的数,越接近0越好。P值越小,我们越要拒绝的原假设。既然原假设是用来拒绝的,那么原假设就是我们不想要的那个结果

2.1) 选定检验方向

根据备择假设确定检验方向:

  • 双侧检验:备择假设没有特定的方向性,形式为“≠”这种检验假设称为双侧检验

  • 单侧检验:备择假设带有特定的方向性,形式为”>””<“的假设检验,称为单侧检验。 其中备择假设 “<“称为左侧检验; “>”称为右侧检验

2.2) 选定检验方法

常用的检验方法有 t检验z检验

判断使用什么检验方法,我们需要看样本量总体方差是否已知,判断的流程如下图所示:
在这里插入图片描述

**一般情况下,绝对值指标用T检验,相对值指标用Z检验。**因为绝对指标的的总体方差,需要知道每一个用户的值,这个在AB实验中肯定不可能。而相对值指标是二项分布,可以通过样本量的值计算出总体的值,就如同10W人的某页面点击率是10%,随机从这10W人中抽样1W人,这个点击率也是10%一样。

3) 结果判断

在这里插入图片描述

显著性水平
指当原假设实际上正确时,检验统计量落在拒绝域的概率,简单理解就是犯弃真错误的概率。
显著性水平α越小,犯第I类错误的概率自然越小,一般取值:0.01、0.05、0.1等。

  • 当给定了检验的显著水平a=0.05时,进行双侧检验的Z值为1.96。
  • 当给定了检验的显著水平a=0.01时,进行双侧检验的Z值为2.58。
  • 当给定了检验的显著水平a=0.05时,进行单侧检验的Z值为1.645。
  • 当给定了检验的显著水平a=0.01时,进行单侧检验的Z值为2.33。

一般情况下,都是选择a=0.05作为判断:

  • 如果P≤α,那么拒绝原假设
  • 如果P>α,那么不能拒绝原假设

拒绝域: 拒绝域是由显著性水平围成的区域。

检验统计量
对原假设和备择假设作出决策的某个样本统计量,称为检验统计量。
t-test和z-test对应的检验统计量就是 t值 和 z 值。

P值:
P值是用来判定假设检验结果的一个参数,反映某一事件发生的可能性大小,即P值是一个概率值。统计学根据显著性检验方法所得到的P值,一般以P<0.05 为有统计学差异。


4. 两类错误

弃真错误:也叫第I类错误或α错误。它是指原假设实际上是真的,但通过样本估计总体后,拒绝了原假设。明显这是错误的,我们拒绝了真实的原假设,所以叫弃真错误,这个错误的概率我们记为α。(这个值也是显著性水平,在假设检验之前我们会规定这个概率的大小。)

取伪错误:也叫第II类错误或β错误。它是指原假设实际上假的,但通过样本估计总体后,接受了原假设。明显者是错误的,我们接受的原假设实际上是假的,所以叫取伪错误,这个错误的概率我们记为β。把统计功效定义为1-β,一般情况下, β 取值0.2,则统计功效的取值为0.8。

举个栗子:一类错误就是这个产品不能给我们带来收益,但是错误判断它可以带来收益 。这个会导致坏产品上线。二类错误就是,这个产品实际上是好产品,能给我们带来收益,但是我们错误认为它不能赚钱。这个错误会导致拒绝好的产品上线(取伪错误)。 相比之下,一类错误更不能接受。我们宁愿让10个好产品不上线,也不能让1个坏产品上线了,因为一个坏的产品可能带来无法挽回的客户损失。

引申问题: 为什么原假设是"想要拒绝的假设"呢?
答: 因为原假设被拒绝如果出错的话,只能犯第I类错误,而犯第I类错误的概率已经被规定的显著性水平所控制。

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

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

相关文章

Linux常用命令——xauth命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) xauth 显示和编辑被用于连接X服务器的认证信息 补充说明 xauth命令用于显示和编辑被用于连接X服务器的认证信息。 语法 xauth(选项)(参数)选项 -f&#xff1a;不使用默认的认证文件&#xff0c;而使用指定的…

动手深度学习-线性神经网络:softmax回归

目录1.分类问题2. 网络架构3.softmax运算4. 损失函数交叉熵损失函数参考教程&#xff1a;https://courses.d2l.ai/zh-v2/ 1.分类问题 从回归到多类分类&#xff1a;对类别进行一位有效编码——独热编码&#xff08;one-hot encoding&#xff09;。 独热编码是一个向量&#x…

HTTP与HTTPS的区别,HTTPS提高性能,HTTP2的新特性

目录数据传输区别安全性区别端口区别交互区别HTTPS的工作流程HTTPS的实现原理机密性完整性身份认证和不可否认HTTPS 使用流程HTTPS性能优化点HTTP2的特性向下兼容HTTP/1头部压缩二进制虚拟流、多路复用数据传输区别 http也相当于HTTP协议&#xff0c;是超文本传输协议的意思&a…

PyQt6快速入门-多文档界面(MDI)

多文档界面(MDI) 文章目录 多文档界面(MDI)1、子窗口创建2、主窗口创建3、运行结果多文档界面(Multi Document Interface,MDI)是一种应用程序界面管理方法。MDI应用程序一般由一个主窗口和多个子窗口组成,这些子窗口在主窗口里显示,并共享主窗口的菜单栏,工具栏。在MDI应用…

netty(1):NIO 基础之三大组件和ByteBuffer

1 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream&#xff0c;它就是读写数据的双向通道&#xff0c;可以从 channel 将数据读入 buffer&#xff0c;也可以将 buffer 的数据写入 channel&#xff0c;而之前的 stream 要么是输入&#xff0c;要么是输出&…

C++生成.dll文件后在Python中引用(包括传递参数是double型、char*数组,接收参数也为数组)

一、问题描述 博主想要实现的C函数原型如下&#xff1a; double* getInfo(int flag, double xyz[], char *xodrPath)也就是需要传递参数为三个不同类型的参数&#xff0c;返回值为double类型的指针&#xff08;数组&#xff09;。 那么如何在Python中如何通过这个函数生成的…

完全兼容GM8775C方案|替代GM8775C设计|CS5518替代GM8775C DSI转双LVDS设计方案

GM8775C 型 DSI 转双通道 LVDS 发送器产品主要实现将 MIPI DSI 转单/双通道 LVDS功能。GM8775C输入端DSI符合 协议支持 MIPI D-PHY 1.00.00 和MIPI DSI 1.02.00&#xff0c;可实现 1 到 4通道 DSI 信号接收。最大数据率 1Gbps/通道。视频输入格式支持 16bit RGB565、18bit RGB6…

Mybatis 一对一、一对多、多对多

今天我们来复习一下 Mybatis 框架吧 总所周知&#xff0c;Mybatis 是一款优秀的 基于ORM 半自动 轻量化 的 持久层框架 ORM&#xff1a;对象关系映射&#xff0c;简单的说就是表结构对应实体类 半自动&#xff1a;可灵活配置SQL&#xff0c;优化代码性能 轻量化&#xff1a…

php源代码保护——PHP加密方案分析解密还原

前言 php是一种解释型脚本语言.与编译型语言不同,php源代码不是直接翻译成机器语言.而是翻译成中间代码(OPCODE) ,再由解释器(ZEND引擎)对中间代码进行解释运行 . 在php源代码的保护在原理可以分为3大类. 源代码混淆(编码)OPCODE混淆(编码)修改解释引擎(虚拟机) 在部署上可…

Vue学习笔记 ④

文章目录template 选项Vue 生命周期生命周期图示生命周期钩子beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyed组件基础组件是什么&#xff1f;组件注册全局组件局部组件组件名组件复用自闭合组件组件的 data 选项单个根元素组件\_Prop注册自定…

怎么排除无效问卷?

目录 1、答题限制 1&#xff09;设置问卷验证码/密码 2&#xff09;设置填写唯一链接 2、题目设置 1&#xff09;设置陷阱题目 2&#xff09;打乱题目顺序 3&#xff09;设置跳转逻辑 4&#xff09;题目数量限制 3、问卷筛选 问卷调查是一种能够在进行社会调研时帮助我…

SAP ABAP发送HTML格式的邮件

输入参数&#xff1a; I_SUBJECT&#xff1a;内容的简短描述 IT_MESSAGE_BODY&#xff1a;邮件主体部分&#xff08;convert string to table&#xff09; IT_ATTACHMENTS&#xff1a;附件内容 I_SENDER_MAIL&#xff1a;发送者的电子邮件地址 I_ATTMSG_CHECK&#xff1a;…

浙大MBA/MPA/MEM复试中的五大认知误区

在每年的研究生复试过程中都不乏大意失荆州者&#xff0c;经过联考初试的洗礼走到复试环节&#xff0c;却因为录取排名的变化而止步于录取大门口。在这些案例中&#xff0c;不少考生其实是针对复试这个环节有诸多认知误区&#xff0c;本期杭州达立易考结合MBA/MEM/MPA在职类硕士…

CentOS配置静态IP

CentOS配置静态IP1.获取VMnet8虚拟网卡的网段2.编辑虚拟机虚拟网络3.虚拟机中网络配置4.验证配置1.获取VMnet8虚拟网卡的网段 通过ipconfig -all查询VMnet8网卡的网段&#xff0c;这个等会需要使用 这里是&#xff1a;192.168.177 这里注意&#xff0c;还需要记录一下宿主机&…

rust字符串

字符串类型 诸位在入门rust的时候&#xff0c;要认真&#xff0c;因为字符串类型在rust中有好几种&#xff0c;一不小心就搞混了类型&#xff0c;导致代码编译报错。好在有强大的rust-analyzer和vscode帮助我们。我们直接通过一段代码来开始认识rust的字符串类型。 fn main()…

nginx学习笔记5(小d课堂)

全局异常兜底数据返回 我们如果访问的路径不存在&#xff0c;会给我们返回一个404.那么我们就可以通过nginx配置去返回兜底数据&#xff1a; 修改完配置&#xff0c;重启nginx。 这样我们就返回我们的兜底数据了。 nginx封禁恶意ip 我们现在随便选择一个ip进行封禁测试。 我们现…

.Net Core 6.0 WebApi配置跨域

ASP.Net Core 6.0 WebApi配置跨域 Program.cs文件代码如下&#xff1a; //配置跨域 builder.Services.AddCors(cor > {var cors configuration.GetSection("CorsUrls").GetChildren().Select(p > p.Value);cor.AddPolicy("Cors", policy >{poli…

92、【树与二叉树】leetcode ——111. 二叉树的最小深度:层次遍历+先序DFS+后序DFS[子问题分解](C++版本)

题目描述 原题链接&#xff1a;111. 二叉树的最小深度 解题思路 1、迭代法&#xff1a;层序遍历BFS 最小深度的特点是第一次遍历到结点的左右指针为NULL&#xff0c;此时该路径为最短路径。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* …

探索SpringMVC-组件之HandlerExceptionResolver

前言 在介绍完Handler、HandlerAdapter、HandlerMapping之后&#xff0c;剩下的比较关键的组件就是HandlerExceptionResolver、ViewResolver。其他的像国际化、主题、文件上传、重定向&#xff0c;这些锦上添花的组件都是一个框架需要关心的。但不是我们平常使用的核心功能&am…

蓝桥杯省赛习题练习(三)

题目来源&#xff1a;2022年第十三届省赛(B组)真题 目录1.九进制转十进制运行结果2. 顺子日期运行结果3. 刷题统计运行结果4. 积木画1.九进制转十进制 问题描述&#xff1a;九进制正整数 (2022)9 转换成十进制等于多少&#xff1f; #include<stdio.h> #include<math.h…