| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 分享一个超详细的数据分析案例【Python】附ABTest详细介绍 -> 正文阅读 |
|
[人工智能]分享一个超详细的数据分析案例【Python】附ABTest详细介绍 |
目录必须看的前言本文全程干货,建议朋友们收藏后慢慢阅读! 另外,我主页上还有不少与ABTest和数据分析相关的博客,感兴趣的朋友可以再去看看,希望能给你带来收获! 一、ABTestABTest类似于以前的对比实验,是让组成成分相同(相似)的群组在同一时间维度下去随机的使用一个方案(方案A、或者B、C…),收集各组用户体验数据和业务数据,最后分析出哪个方案最好。 实现步骤
PS: 先说一下,这里的实现步骤并非权威步骤,不是一定要这么划分。 假设检验要想充分搞懂ABTest,必须理解它的原理——假设检验。
假设检验是对 ABTest(或任何随机实验)的进一步分析,意在评估随机性是否可以合理地解释 A 组和 B 组之间观测到的差异。 这里需要介绍一下几个专业术语:
假设检验的基本思想是“小概率事件”原理,其统计推断方法是带有某种概率性质的反证法。小概率思想是指小概率事件在一次试验中基本上不会发生。反证法思想是先提出检验假设,再用适当的统计方法,利用小概率原理,确定假设是否成立。对于不同的问题,检验的显著性水平α不一定相同,一般认为,事件发生的概率小于0.1、0.05或0.01等,即“小概率事件”。但是,如果说你犯下第一类错误(即拒绝正确的假设: H 0 H_0 H0?是真,但拒绝 H 0 H_0 H0?)的成本越高,你的α值就要设置得越小。 接下来介绍假设检验的基本步骤:
如何判断一个样本统计量符合什么分布?如何选定统计方法?那就得判断你的样本统计量符合什么分布了。
下面呢,则是关于Z分布,T分布,卡方分布的简单了解,其中注意考虑多个总体问题时如何计算处理。 不同分布的拒绝域对称型(Z分布、t分布)双侧检验: 非对称型(卡方分布、F分布)卡方分布: 拒绝域:
二、项目实战项目来源: 数据介绍: 主要提供了三个数据集:
本分析报告的主要使用广告点击情况数据,涉及字段如下:
接下来正式开始实战。 1 数据预处理
2 样本容量检验在进行ABTest前,需检查样本容量是否满足试验所需最小值。 这里需要借助样本量计算工具: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是第一个和第二个样本的标准差。减法是对自由度数量的调整。
一般上Cohen’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概率)事件。反过来说,我们只做了一次ABTest就得到了零假设中的极端情况,则零假设很有可能是不成立的。
思考: 若diffs的分布就是标准正态(这里只是近似),则竖线左侧的面积占比其实就是p值(左侧or右侧or双侧要根据备择假设给定的方向),那p值到底要多小才算真的小? 这需要我们自己给定一个标准,这个标准其实就是 α,是犯第一类错误的上界,常见的取值有0.1、0.05、0.01。
4 结论通过三种方法的计算得出,在两种营销策略中,策略二对广告点击率有显著提升效果,且相较于对照组点击率提升了近一倍,因而在两组营销策略中应选择第二组进行推广。 参考鸣谢: 结束语好文值得收藏! 推荐关注的专栏 👨?👩?👦?👦 机器学习:分享机器学习实战项目和常用模型讲解 CSDN@报告,今天也有好好学习 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 10:43:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |