首页 > 编程知识 正文

数据分析能力(数据分析和测试哪个好)

时间:2023-05-06 08:51:40 阅读:93994 作者:3981

后台收到了隔壁朋友想学习AB测试相关知识的消息,但是市面上的教程太“正式”了,或者知识点太零散了。 今天给大家看的这篇文章,干货生动。

想象一下。 在公司的某个产品开发讨论会上…

“会安装这个功能吗? ”

“我想没问题。 我想XX指标一定会大幅上升。 ”

“我不这么认为。 XX指标也可能受到影响。 不能只考虑可能的利益。 ”

blahblah无限循环吵架中……

“好了,别闹了,打开AB看看效果吧。 ”

虽然现在越来越多的APP已经活了1000万人,但是新功能绝对没有勇气,也不需要轻易上线。 (因为如果全部上线引起用户反感的话,损失是无法估量的。 此时,AB实验成为大型功能在线化前的必备利器——,进行小流量测试,利用测试的效果估算在线化后的效果。

OK,那个AB实验打开后,我们(经常是数据分析师) )应该如何评价这个AB实验的效果,得出这个需求到底会上线的分析结果吗? 这是本论文的重点。

合格的分析师可以提出以下问题。

如何衡量指标是否有显着变化? wxdys看到指标突出时:真的很突出吗? wxdys看到指标不明显时,真的不明显吗? 如何得出合适的AB实验指标判断的结论? 我面对什么样的问题,分别应该如何应对? 接下来,我们一起来看看应该如何解决这些问题~

我怎么衡量一个指标是否有显著变化?

结论:用p值判断,一般认为p值为0.05,指标有明显变化。 原因:假设检验的相关知识。

呃……AB实验是一种假设验证吗? 假设验证是什么意思?

这里举在公开课上看到的例子。 给人一种非常生动的印象。 让我们来看看在实际的Case中,是如何拒绝/接受假设的。

背景:神经学家通过测试某些药物对小鼠反应时间的影响,对实验组100只小鼠的药物进行注释。 神经学家称,未用药小鼠的平均反应时间为1.2s,用药小鼠的平均反应时间为1.05s,样品标准偏差为0.5s。 你觉得这个药对老鼠的反应时间有影响吗?

按照上述步骤阶段性分解。

首先假设药物没有影响。 (H0 )对药物没有影响。 ps .这里还有一个选择,H1 :对药物有影响)如果药物没有影响,实验组的小鼠注射药物后,反应时间的平均值应该是1.2s。 假设老鼠整体的反应平均应该是1.2s,那么这个样本——的平均反应时间为1.05s的概率有多大? 已知求解()1)总体的平均值为1.2s;

(2)已知样品平均值为1.05s,样品标准偏差为0.5s

)3)样本量还可以,所以利用样本标准偏差来估计整体标准偏差(如果不知道这个部分,请补充样本分布。 不详细说明。 ) 0.5/10=0.05

4 ) 1.05计算标准偏差距1.2有多少? —— 1.05-1.2/0.05=3个

5 )抽取样本时,其距离整体平均值1.2的3个标准偏差的地方或其以上的概率有多大? ——概率在正态分布钟型曲线下,除3sigma以外的面积(包括正、负3sigma )。 如果调查正态分布,就会发现概率为0.3%

(6)到此为止,我们得到的结论是,如果接受原假设,药物就会失效,出现像我们这样的采样结果的概率是——0.003 .我们居然抽了? 因此,此时,虽然不是100%确定,但我倾向于接受原假设(对药物无影响)、预选假设)药物有影响。

那么,我们做实验的时候,要判断feature是否有用,我们的想法如下。

当我有足够的样本量时,我会把用户分成两组。 a组(对照组)和b组)实验组。 由于样本量足够,理论上,a组和b组各原始指标的表达必须相同。 b实验在对照组的基础上,进行了功能的改变。 假设这个功能的变更不影响指标。 没有发挥作用。 观察b组指标,经统计学计算,H0成立时,出现b组指标的概率。 基于这个概率,判断我们应该接受还是拒绝3的假设。 从统计学上说,基于原假设,得到实际的这种或者更极端情况的概率值是P-value,也就是p值。 在这个背景问题中,p值为0.003。 一般规定,0.05是判断是否显着的阈值。 当然,这个阈值可以调整。 换句话说,就是这个part的结论。 如何衡量指标是否有显着变化? ——用p值判断。 一般认为p值为0.05,指标有显着变化。

wxdys看到指标显著时:是真的显著吗?

结论:不一定真的很突出。 原因:犯了第一种错误! (经常被提到的阿尔法错误() ) ) ) )。

看到这个,有些伙伴可能有点迷茫。 什么意思? 我刚刚说p值远远小于0.05,是不是拒绝了原假设? 为什么不一定真的很显眼呢?

在这里说明。 我刚才说了,我们拒绝H0,不是因为100%确定H0是错的,而是因为H0是真的概率太低了

拒绝了它。但是不代表它一定就是错的,有可能药是确实没有作用,只是我们选的小鼠刚好反应巨快!!鼠中佼佼者!!!。。

也就是说,AB实验告诉我,显著了!指标显著发生了变化!!!喜大普奔!!!这个时候,我们仍然是有可能犯错的。可能我们的样本指标就是落在了那个5%的区间里。

你可能会想,完犊子了。那我们这还咋评估啊。

但是!!!!虽然我们不敢说100%数据就一定会像表现的那样涨,我们可以给出,“实际没涨,AB实验看起来涨了”的犯错概率。这个过程,就是将“不确定性”进行“量化”的过程。一般如果给定P值0.05,AB实验看起来显著的涨了,但实际没涨,犯这种错误的概率是5%。

总而言之,我们不可能“准确”的预估产品feature上线后的表现,但是它能将“不可预知”的风险,转换为“可以量化”其“不确定性”的问题。

wxdys看到指标不显著时,是真的不显著吗?

结论:不一定真的不显著。原因:犯了第二类错误!(常说的beta错误)

嗯嗯嗯又来了,看到不显著,也不一定是真的不显著……

那这又是为什么呢?我们会可能犯第二类错误:其实策略有效,只是没有被检测出来。

这种错误的概率被记为β。而统计功效(power,也被称为检验效力),被定义为1-β,表示的是“假设我的新策略是有效的,我有多大概率在实验中检测出来”。

什么意思呢?让我们画图来看,右边这个红色曲线是实验组,左边这个蓝色曲线是对照组。大家可以知道的是,如果我实验组取的样本落在了图中蓝色sfdfbx的这部分,其实是应该拒绝原假设的!!但是由于它不在蓝色曲线的拒绝域里,所以我们接受了它。这就是第二类错误了。第二类错误的概率取决于两个曲线的分布情况。

一个合适的AB实验指标判断怎么给出?

这里有个简单的流程。

当我们判断一个指标是否显著时,先看P值。能得到显著与否的结论,但是要注意仍然有概率犯错。

当我们判断一个指标不显著、实验没效果时,要注意是否会存在流量不够的问题,造成了实际有效果,但没被检验出来的可能性。(不过一般来说,开始实验前最好就评估好样本量的问题)

AB实验相关的面试常见问题

1.怎么降低犯第一类错误的概率?

把p值限定得越小,犯第一类错误的概率就越低。因为P值本来就是犯第一类错误的概率……

2.怎么降低犯第二类错误的概率?

降低犯第二类错误的概率,换言之就是提升统计功效。

这个部分和我们置信度(1-p值)、样本量都有关系。

首先,如果我们降低置信度,可以提升统计功效。比如说不需要p值<0.05就认为显著了,我们认为p值<0.1就显著。那么红色的部分会往更中间集中,相对应,蓝色的部分会变小。

不过这种方式的缺点在于,我们犯第一类错误的概率就会变大。

其次,可以提升样本量,使我们的正态分布钟型变更尖,让犯第二类错误的概率变小。

3.怎么确定样本量?

样本量和我们的统计功效息息相关。怎么根据我们希望的统计功效,来反过来推算实验所需的样本量呢?

输入 :

1、指标的base值和两组指标的差异(比如说,现在对照组留存是60%,认为提升到61%才是有意义的,差异就是0.01)

2、指标方差。如一个实验组的指标如阅读数的方差,可用历史数据估算。

3、t检验的显著性水平,默认0.05

4、统计功效,一般取80%,可以调整。

输出:

单个实验组的样本量。

这个部分的公式推导就不展开了(公式推导是我的弱项…),python中提供了相应的计算包,可以去实验一下,感兴趣的也可以自己研究背后的计算函数、原理。

python statsmodels里计算样本量的包

4.产品要求开AABB实验,我听不听?

听你个大头鬼哦。

首先,不科学。抽样产生的误差本身就已经在我们的计算概率里了!为啥还要专门开4组实验对比?

其次,不聪明。多样本进行对比更可能犯错。比如说,一次抽样有5%的可能犯错,四次抽样,产生6组对比(A1A2,A1B1,A1B2,A2B1,A2B2,B1B2),一组对比时不犯错的概率95%,‍假设各组对比结果相互独立,至少一组犯错的概率[ 1 -(1-0.05)^6 ] =0.265,远大于0.05。多来几次抽样,犯错的概率增加。更别提评估成本了——本来只用评估两组,现在需要看6组。

最后,不好使。AABB实验可能会影响实验的灵敏度。流量不变则意味着各组样本流量减少一半,灵敏度下降;加大流量则更多用户进组,有可能引入风险。因此不管怎么说都是加大成本的。

5. 实验做了有效果,上线没有效果是怎么回事?

有可能犯第一类错误。你看到的显著可能不是真的,只是抽样的随机误差带来的~~~

文源:知乎作者 无眠

笔者从业数据分析多年,整理了10G的数据分析学习资料包,需要的朋友转发收藏本文,后台私信我“资料包”即可获得!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。