| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 数据分析中最常听到的A/B测试究竟如何理解?附天池项目实战演练 -> 正文阅读 |
|
[开发测试]数据分析中最常听到的A/B测试究竟如何理解?附天池项目实战演练 |
今天分享一下一个利用A/B测试解决问题的项目,本文会尽可能详细的将我所理解的A/B测试应用到项目当中,希望对大家有所帮助。 那在开始之前我会在重新介绍一下什么是A/B测试? 目录一、A/B测试A/B测试类似于以前的对比实验,是让组成成分相同(相似)的群组在同一时间维度下去随机的使用一个方案(方案A、或者B、C…),收集各组用户体验数据和业务数据,最后分析出哪个方案最好。 实现步骤
假设检验要想充分搞懂A/B测试,必须理解它的原理——假设检验。
假设检验是对 A/B 测试(或任何随机实验)的进一步分析,意在评估随机性是否可以合理地解释 A 组和 B 组之间观测到的差异。 这里需要介绍一下几个专业术语:
假设检验的基本思想是“小概率事件”原理,其统计推断方法是带有某种概率性质的反证法。小概率思想是指小概率事件在一次试验中基本上不会发生。反证法思想是先提出检验假设,再用适当的统计方法,利用小概率原理,确定假设是否成立。对于不同的问题,检验的显著性水平α不一定相同,一般认为,事件发生的概率小于0.1、0.05或0.01等,即“小概率事件”。 接下来介绍假设检验的基本步骤:
检验方法u检验和t检验t检验是用t分布理论来推断差异发生的概率,从而判定两总体均数的差异是否有统计学意义,主要用于样本含量较小(如n<60),总体标准差σ未知,呈正态分布的计量资料。若样本含量较大(如n>60),或样本含量虽小,但总体标准差σ已知,则可采用u检验(亦称:z检验)。但在统计软件中,无论样本量大小,均采用t检验进行统计分析 。 t检验和u检验的适用条件:①样本来自正态总体或近似正态总体;②两样本总体方差相等,即具有方差齐性。在实际应用时,如与上述条件略有偏离,对结果亦不会有太大影响;③两组样本应相互独立。根据比较对象的不同,t检验又分为单样本t检验、配对t检验和两独立样本t检验。 F检验采用F检验检验方差齐性,要求样本均来自正态分布的总体。检验统计量F等于两样本的较大方差 比较小方差 ,其检验统计量公式为: 统计学家为应用的方便编制了的F分布临界值表,求得F值后,查F界值表得P值(F值愈大,P值愈小),然后按所取的α水准做出推断结论。 由于第一个样本的方差既可能大于第二个样本的方差,也可能小于第二个样本的方差,故两样本方差比较的F检验是双侧检验。 二、项目实战项目来源: 数据介绍: 主要提供了三个数据集:
本分析报告的主要使用广告点击情况数据,涉及字段如下:
接下来正式开始实战。 1 数据预处理
2 样本容量检验在进行A/B测试前,需检查样本容量是否满足试验所需最小值。 这里需要借助样本量计算工具:https://www.evanmiller.org/ab-testing/sample-size.html 首先需要设定点击率基准线以及最小提升比例,我们将对照组的点击率设为基准线。
3 假设检验我们先查看一下这三种营销策略的点击率情况。
其中策略一提升0.2个百分点,策略二提升1.3个百分点,只有策略二满足了前面我们对点击率提升最小值的要求。 接下来需要进行假设检验,看策略二点击率的提升是否显著。 3.1 提出零假设和备择假设设对照组点击率为 p 1 p_1 p1?,策略二点击率为 p 2 p_2 p2?,则:
3.2 确定检验方向由备择假设可以看出,检验方向为单项检验(左)。 3.3 选定统计方法由于样本较大,故采用Z检验。此时检验统计量的公式如下: z = p 1 ? p 2 ( 1 n 1 + 1 n 2 ) × p c × ( 1 ? p c ) z= \frac{p_1-p_2}{\sqrt{( \frac{1}{n_1}+\frac{1}{n_2})\times p_c \times (1-p_c)}} z=(n1?1?+n2?1?)×pc?×(1?pc?)?p1??p2??其中 p c p_c pc?为总和点击率。 3.3.1 方法一:公式计算
所以我们可以得出结论:在显著性水平为0.05时,拒绝原假设,策略二点击率的提升在统计上是显著的。 假设检验并不能真正的衡量差异的大小,它只能判断差异是否比随机造成的更大。因此,我们在报告假设检验结果的同时,应给出效应的大小。对比平均值时,衡量效应大小的常见标准之一是Cohen’d,中文一般翻译作科恩d值:
d
=
样
本
1
平
均
值
?
样
本
2
平
均
值
标
准
差
d=\frac{样本_1平均值-样本_2平均值}{标准差}
d=标准差样本1?平均值?样本2?平均值? 其中s是合并标准差,n1和n2是第一个样本和第二个样本的大小,s1和s2是第一个和第二个样本的标准差。减法是对自由度数量的调整。
一般上baiCohen’s d取值0.2-0.5为小效应,0.5-0.8中等效应,0.8以上为大效应。 3.3.2 方法二:Python函数计算
至此,我们可以给出报告:
根据前面案例,我们用的是两个比率的z检验函数proportion.proportions_ztest,输入的是两组各自的总数和点击率;如果是一般性的z检验,可以用weightstats.ztest函数,直接输入两组的具体数值,可参考https://www.statsmodels.org/stable/generated/statsmodels.stats.weightstats.ztest.html
作为补充,我们再检验下策略一的点击率提升是否显著。
3.3.3 方法三:蒙特卡洛法模拟蒙特卡洛法其实就是模拟法,用计算机模拟多次抽样,获得分布。 在零假设成立(p1>=p2)的前提下, p1=p2 为临界情况(即零假设中最接近备择假设的情况)。如果连相等的情况都能拒绝,那么零假设的剩下部分( p1>p2)就更能够拒绝了。 定义effect_tb.csv中样本的总点击率为 p_all:
实际上每次模拟都得到了一个大小为316205的样本,此处得到了10000个样本。在图上将模拟得到的diffs绘制为直方图,将effect_tb.csv中样本的点击率差值绘制为竖线:
在diffs列表的数值中,有多大比例小于effect_tb.csv中观察到的点击率率差值?
本次方法得到的答案是0,和方法二中的P值接近(一样)。 上图的含义是,在p_old=p_new时,进行10000次模拟得到的差值中,0%的可能比effect_tb.csv中的差值更极端,说明effect_tb.csv在p_old=p_new的前提是很小概率(这次是0概率)事件。反过来说,我们只做了一次A/B测试就得到了零假设中的极端情况,则零假设很有可能是不成立的。
思考: 若diffs的分布就是标准正态(这里只是近似),则竖线左侧的面积占比其实就是p值(左侧or右侧or双侧要根据备择假设给定的方向),那p值到底要多小才算真的小? 这需要我们自己给定一个标准,这个标准其实就是 α,是犯第一类错误的上界,常见的取值有0.1、0.05、0.01。
4 结论通过三种方法的计算得出,在两种营销策略中,策略二对广告点击率有显著提升效果,且相较于对照组点击率提升了近一倍,因而在两组营销策略中应选择第二组进行推广。 参考鸣谢: |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/28 11:40:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |