作为一名假统计人,来介绍一下什么是T检验、Z检验,再拓展到工业界里经常提到的AB test吧。
回顾T检验和Z检验的原理和方法流程有助于AB test噢!
1. 什么是T检验?
1) 统计学上的解释:主要用于样本含量较小(例如n<30),总体标准差σ未知的正态分布的检验。
2) 那他有什么用呢?
i) 比较两组数据的均值是否显著差异
ii) 比较在不同时期的同一组数据中的均值是否显著差异
iii) 比较该数据的均值与已给均值是否有显著差异
iv) 回归模型的解释变量对被解释变量是否有显著影响
所以,我们发现,t检验离不开均值和显著差异这两个词。下次我们遇到情况,类似在营销推广的时候,检验旗舰店与普通店是否存在显著差异的时候,t检验可以派上用场;在比较同一家店不同年份之间营销额是否显著提升或者下降的时候,t检验可以派上用场;在比较一批产品的重量/持续时间等质量指标是否达标的时候,t检验可以派上用场。
3) T检验的流程是啥?
和其他检验一样,流程大致是:
S1. 提出原假设与备择假设
在实际操作中,通常将研究者希望收集证据予以拒绝的假设作为原假设,而将研究者希望通过搜集证据予以支持的假设作为备择假设。
比如,质量标准规定产品平均重量达到500克为合格品,质量检验人员通常希望找出不合格产品,则研究者希望通过收集证据以拒绝该产品是合格的,也就是该批产品平均重量不足500克。那么我们的原假设就会是该产品的平均重量大于等于500克。
两者具体的关系,如表格:
S2. 计算T统计量
以单样本为例:
对T分数的大致理解是:
t分数是两组之间的差异与组内的差异之间的比率。 t分数越大,组之间的差异就越大。t分数越小,组之间的相似度越高。
简而言之:越大的t分数表明分组是越不同的,越小的t分数表面分组是越相似的。
S3. 与之前设定的α值对应的P值进行对比,判断出是否显著差异。
4) 傻傻分不清的P值要怎么看?
那么多大的t分数才够大呢?用什么来衡量t分数呢?这时,我们日常傻傻分不清的P值就要闪亮登场了。
P值就是我们错误拒绝原假设的概率。例如P值为0.01的时候,也就是说我们错误地拒绝原假设的概率只有0.01,那么我们有理由相信原假设原本就是错误的,而非检验错误导致。简而言之,P值越小,越有理由拒绝原假设。
(市面上有许多关于P值的解释,以上解释是我唯一能说服自己的)
https://www.cnblogs.com/lijingblog/p/11043513.htmlwww.cnblogs.com习惯地,我们以以下表格为标准选择拒绝或拒绝不了原假设:
5) 经常和P值一起出现的α值是什么?
那为什么还有α值?
是的,开始无限套娃阶段。
在套娃之前回顾第一类错误与第二类错误
所以利用t检验做出的结论并不是百分之百正确的,仍有很小的几率会犯错误。对于上面的例子,有些人会认为1%的概率已经很小了,可以拒绝原假设,还有些人会认为1%的概率虽然很小,但不足以拒绝原假设。为了解决这个问题,统计学家们提出了一个阈值,如果犯第一类错误的概率小于这个阈值,就认为可以拒绝原假设,否则认为不足以拒绝原假设。这个阈值就叫α。
所以这个套娃的过程就是:怎么判断是否显著差异啊?问T分数吧!T分数大不大啊?问P值吧!这个P值能不能拒绝原假设啊?问α吧!这个α怎么决定啊?问甲方爸爸!
最后,这个套娃过程终于结束了!
T检验_zrx的博客-CSDN博客blog.csdn.net2. 什么是Z检验?
当你搞清楚T检验之后,T检验的好兄弟Z检验就没啥问题了。
当你遇到大样本(n>30),或总体方差已知的情况下,又想实现T检验的功能,那么就用Z检验吧!
3. 为什么小样本要用T检验而不是Z检验呢?
Z分布与T分布,是两个分布,概率函数公式的存在差异,T分布较Z分布多了一个自由度的变量,惩罚小样本,增加其拒绝原假设H0的难度,因而小样本采用T检验,优于Z检验。
4. AB test
为什么选择在这篇文章讲解AB test是因为当我们回顾了两个经典、适用性广的检验过程之后,可以更好地衔接到工业界经常使用到的AB test。
i) AB test用来干什么?
当我们在设计网页的时候,我们可能会纠结我们的导航菜单究竟放在最上方还是左手边还是哪里?我们说了不算,要我们用户说哪个好才行。于是,AB test就是帮助我们判断出把导航菜单放在哪里的时候,使用我们网站的用户更多。这类似于生物钟的控制变量法。将用户划分成不同的小组,在相同的时间维度上进行单一变量的改变,并通过最终展现出来的数据指标来衡量方案的好坏。当然因为用户群体较大,所以在分组时要注意各个用户群组的组成成分应该相似。
ii) 如何设计好一个好的AB test?
a) 确定对照组和实验组,最好是做单变量的实验,一次只改变一个变量。
b) 分流时尽量排除混杂因素,一般情况下采用随机分流即可。
c) 检查流量是否达到最小样本量要求,达不到要求则没法进行后续的分析,实验结果不可信。
d) 确定本次实验的对比指标,就是如果方案之间存在差别需要通过什么来衡量?
e) 准确收集用户行为数据,这就要求埋点必须正确。
f) 分析指标的显著性,如果指标不显著则表示实验无效。
g) 确定引起显著性的根本原因,排除混杂因素导致实验结果的显著性。
h) 最终给出实验结论:有效 or 无效
iii)怎么test?
和前面T检验的流程一样:原假设,备择假设→推断出使用什么检验→计算统计量的值→设定α与对应的P值→统计量的值和P值做对比→得出结论
以下是在github上找到某位大佬的用python写的AB test的代码
xzy-lw/ABtestgithub.com