数据分析学习笔记——A/B测试

news2025/6/4 7:02:10

目录

前言

A/B测试中的统计学方法

假设检验

Levene's Test莱文测试

t 检验(两组均值差异)

实战案例

数据来源及参考资料

代码详解

导入数据

计算ROI

Request检验

GMV检验

ROI检验

结语


前言

什么是A/B测试?说白了就是中学生物实验里常说的控制变量。实验对象分为A组(对照组)、B组(实验组)来测试某个行为的影响。在互联网企业,为了判断某个行为的效益,或者挑选更加合适的方案就会采用A/B测试。A/B测试的核心在于两组样本除了实验条件不一样,其他条件都一样。因此A/B测试依赖如下假设。

  • 每个因子水平的数据均呈正态分布​
  • 案例独立性:样本案例应相互独立​
  • 方差的同质性:同质性是指各组之间的方差应近似相等​
  • 从因子水平定义的总体中独立且随机地获得观察结果

A/B测试中的统计学方法

假设检验

假设检验的原理其实是反证法。先对总体提出一个假设(原假设 H_0,再通过样本数据判断该假设是否成立。若样本数据与原假设矛盾,则拒绝 H_0,接受备择假设H_1;反之,则不拒绝 H_0。关键逻辑为小概率事件原理。假设检验依赖 “小概率事件在一次试验中几乎不会发生” 的原理:

1. 若原假设成立,那么某个与其相关的事件A发生的概率极小。

2. 若在一次抽样中,事件A竟然发生了,则有理由怀疑原假设的正确性。

也就是我们常说的具有统计学上的显著意义。而这个事件A的概率也就是我们常说的P值。而往往我们还会设定一个显著性水平,这个显著性水平是标准的小概率事件的概率(这么说不知道对不对啊,描述感觉不太严谨),由前人大量的实践得到的。当P值小于这个显著性水平时,则符合假设,因为这个小概率事件的概率比假定的标准还小。当P值大于这个显著性水平时,则怀疑假设,因为这个小概率事件的概率比假定的概率要大,那么原假设便值得怀疑。

Levene's Test莱文测试

Levene's test 主要用于检验多个组数据的方差是否相等,适用于两组或多组数据。

t 检验(两组均值差异)

适用于 正态分布数据 且 样本量较小(n≤30)的两组均值比较

实战案例

对滴滴打车的运营数据进行A/B测试,判断投入优惠卷对ROI、GMV、订单数量(requests)是否有影响。

数据来源及参考资料

工作台 - Heywhale.com

方差分析简介(结合COVID-19案例)

代码详解

导入数据

#数据导入
import pandas as pd
test = pd.read_excel('test.xlsx')
test.head()

结果

计算ROI

#计算ROI

test['ROI']=test['gmv']/(test['coupon per trip']*test['trips'])
test.head()

结果

其实这里有一个问题,这个成本对应的优惠券的投入成本,但是这里gmv是优惠券带来的利润增长,还是总利润呢?如果是总利润,那对应的是总成本。不能把其他行为带来的收益增长算到投入优惠券上去。

Request检验

#levene检验requests是否齐方差

requests_A=test[test.group=='control'].requests
requests_B=test[test.group=='experiment'].requests

import scipy.stats as st
st.levene(requests_A,requests_B)

#配对样本t检验(两独立样本t检验之前需检验是否齐方差,此处不需要)

st.ttest_rel(requests_A,requests_B)

GMV检验

#levene检验gmv是否齐方差

gmv_A=test[test.group=='control'].gmv
gmv_B=test[test.group=='experiment'].gmv

st.levene(gmv_A,gmv_B)

#配对样本t检验(两独立样本t检验之前需检验是否齐方差,此处不需要)

st.ttest_rel(gmv_A,gmv_B)

ROI检验

#levene检验ROI是否齐方差

ROI_A=test[test.group=='control'].ROI
ROI_B=test[test.group=='experiment'].ROI

st.levene(ROI_A,ROI_B)

#配对样本t检验(两独立样本t检验之前需检验是否齐方差,此处不需要)

st.ttest_rel(ROI_A,ROI_B)

结语

一起学习,共同进步!

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

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

相关文章

基于RK3568/RK3588/全志H3/飞腾芯片/音视频通话程序/语音对讲/视频对讲/实时性好/极低延迟

一、前言说明 近期收到几个需求都是做音视频通话,很多人会选择用webrtc的方案,这个当然是个不错的方案,但是依赖的东西太多,而且相关组件代码量很大,开发难度大。所以最终选择自己属性的方案,那就是推流拉…

解决 Win11 睡眠后黑屏无法唤醒的问题

目录 一、问题描述二、解决方法1. 禁用快速启动2. 设置 Management Engine Interface3. 允许混合睡眠其他命令 4. 修复系统文件5. 更新 Windows 或驱动程序6. 其他1)更改电源选项2)刷新 Hiberfil.sys 文件3)重置电源计划4)运行系统…

[ElasticSearch] RestAPI

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

Linux中的shell脚本

什么是shell脚本 shell脚本是文本的一种shell脚本是可以运行的文本shell脚本的内容是由逻辑和数据组成shell脚本是解释型语言 用file命令可以查看文件是否是一个脚本文件 file filename 脚本书写规范 注释 单行注释 使用#号来进行单行注释 多行注释 使用 : " 注释内容…

dvwa3——CSRF

LOW: 先尝试change一组密码:123456 修改成功,我们观察上面的url代码 http://localhost/DVWA/vulnerabilities/csrf/?password_new123456&password_conf123456&ChangeChange# 将password_new部分与password_conf部分改成我们想要的…

【学习笔记】Transformer

学习的博客(在此致谢): 初识CV - Transformer模型详解(图解最完整版) 1 整体结构 Transformer由Encoder和Decoder组成,分别包含6个block。 Transformer的工作流程大体如下: 获取每个单词的em…

欢乐熊大话蓝牙知识12:用 BLE 打造家庭 IoT 网络的三种方式

🏠 用 BLE 打造家庭 IoT 网络的三种方式 不止是“蓝牙耳机”,BLE 还能把你家“点亮成精”! 👋 前言:BLE 不只是蓝牙耳机的“代名词” 蓝牙?很多人一听就联想到“耳机连接失败请重试”。但你知道吗?现在 BLE(Bluetooth Low Energy)在智能家居中已经偷偷搞起了大事情。…

02.上帝之心算法用GPU计算提速50倍

本文介绍了上帝之心的算法及其Python实现,使用Python语言的性能分析工具测算性能瓶颈,将算法最耗时的部分重构至CUDA C语言在纯GPU上运行,利用GPU核心更多并行更快的优势显著提高算法运算速度,实现了结果不变的情况下将耗时缩短五…

MES管理系统:Java+Vue,含源码与文档,实现生产过程实时监控、调度与优化,提升制造企业效能

前言: 在当今竞争激烈的制造业环境中,企业面临着提高生产效率、降低成本、提升产品质量以及快速响应市场变化等多重挑战。MES管理系统作为连接企业上层计划管理系统与底层工业控制之间的桥梁,扮演着至关重要的角色。它能够实时收集、分析和处…

LeetCode算法题 (搜索二维矩阵)Day18!!!C/C++

https://leetcode.cn/problems/search-a-2d-matrix/description/ 一、题目分析 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 ta…

VectorStore 组件深入学习与检索方法

考虑到目前市面上的向量数据库众多,每个数据库的操作方式也无统一标准,但是仍然存在着一些公共特征,LangChain 基于这些通用的特征封装了 VectorStore 基类,在这个基类下,可以将方法划分成 6 种: 相似性搜…

HackMyVM-First

信息搜集 主机发现 ┌──(kali㉿kali)-[~] └─$ nmap -sn 192.168.43.0/24 Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-31 06:13 EDT Nmap scan report for 192.168.43.1 Host is up (0.0080s latency). MAC Address: C6:45:66:05:91:88 (Unknown) …

跨平台浏览器集成库JxBrowser 支持 Chrome 扩展程序,高效赋能 Java 桌面应用

JxBrowser 是 TeamDev 开发的跨平台库,用于在 Java 应用程序中集成 Chromium 浏览器。它支持 HTML5、CSS3、JavaScript 等,具备硬件加速渲染、双向 Java 与 JavaScript 连接、丰富的事件监听等功能,能处理网页保存、打印等操作,助…

WEBSTORM前端 —— 第3章:移动 Web —— 第3节:移动适配

目录 一、移动Web基础 1.谷歌模拟器 2.屏幕分辨率 3.视口 4.二倍图 二、适配方案 三、rem 适配方案 四、less 1.less – 简介 2.less – 注释 3.less – 运算 4.less – 嵌套 5.less – 变量 6.less – 导入 7.less – 导出 8.less – 禁止导出 五…

弱光环境下如何手持相机拍摄静物:摄影曝光之等效曝光认知

写在前面 博文内容为一次博物馆静物拍摄笔记的简单总结内容涉及:弱光环境拍摄静物如何选择,以及等效曝光的认知理解不足小伙伴帮忙指正 😃,生活加油 我看远山,远山悲悯 持续分享技术干货,感兴趣小伙伴可以关注下 _ 采…

【HTML】基础学习【数据分析全栈攻略:爬虫+处理+可视化+报告】

- 第 102 篇 - Date: 2025 - 05 - 31 Author: 郑龙浩/仟墨 文章目录 HTML 基础学习一 了解HTML二 HTML的结构三 HTML标签1 标题2 文本段落3 换行4 加粗、斜体、下划线5 插入图片6 添加链接7 容器8 列表9 表格10 class类 HTML 基础学习 一 了解HTML 一个网页分为为三部分&…

Next.js路由导航完全指南

在前端框架(如 React、Vue 等)或移动端开发中,路由系统是实现页面 / 界面导航的核心机制。Next.js 采用 文件系统路由(File System Routing),即根据项目目录结构自动生成路由。 Next.js 目前有两套路由解决…

五、web安全--XSS漏洞(1)--XSS漏洞利用全过程

本文章仅供学习交流,如作他用所承受的法律责任一概与作者无关1、XSS漏洞利用全过程 1.1 寻找注入点:攻击者首先需要找到目标网站中可能存在XSS漏洞的注入点。这些注入点通常出现在用户输入能够直接输出到页面,且没有经过适当过滤或编码的地方…

【C++高级主题】命令空间(六):重载与命名空间

目录 一、候选函数与命名空间:重载的 “搜索范围” 1.1 重载集的构成规则 1.2 命名空间对候选函数的隔离 二、重载与using声明:精准引入单个函数 2.1 using声明与重载的结合 2.2 using声明的冲突处理 三、重载与using指示:批量引入命名…

Tomcat运行比较卡顿进行参数调优

在Tomcat conf/catalina.bat或catalina.sh中 的最上面增加参数 1. 初步调整参数(缓解问题) set JAVA_OPTS -Xms6g -Xmx6g -Xmn3g # 增大新生代,减少对象过早晋升到老年代 -XX:MetaspaceSize256m -XX:MaxMetaspaceS…