A/B-test解读
A/B-test是为同一个目标制定两个方案,在同一时间维度,分别让组成成分相同(相似)的用户群组随机的使用一个方案,收集各群组的用户体验数据和业务数据,最后根据显著性检验分析评估出最好版本正式采用。
假设检验的四个步骤:
一.问题是什么?
(1)确定两个假设:零假设和备选假设
零假设和备选假设是对立的。零假设总是表述为研究没有改变,没有效果,不起作用
(2)判断检验类型
单样本检验——检验单个样本的平均值是否等于目标值
独立双样本检验——检验两个独立样本的平均值之差是否等于目标值
(3)确定抽样分布类型
a.当样本数量大于30时,符合中心极限定理,抽样分布呈正态分布
b.样本数量小于30时,抽样分布符合t分布或其他分布
(4)确定检验方向
单尾检验
左尾:若备选假设包含有<,则选左尾检验
右尾:若备选假设包含有>,则选右尾检验
双尾检验
将判断标准一分为二位于抽样分布的两侧,左右侧各占一半判断标准,若假设中包含不等号,则属于双尾检验。
二.构建检验统计量
单个正态总体均值的假设检验
u检验(方差已知):t检验(方差未知):
单个正态总体比例的假设检验
根据样本比率与总体比率的假设值P0 之差来对总体比率进行假设检验
当作为一个等式的原假设为真时,的期望值等于假设值P0,即E()=P0。的标准误差为:
如果np>=5并且n(1-p)>=5,则
两总体均值的假设检验
u1-u2的假设检验的统计量(两总体方差已知):
其中n1和n2为样本量,D0=u1-u2
u1-u2的假设检验的统计量(两总体方差未知):
两总体比例之差的假设检验
当p1=p2=p时,p的合并估计量:
p1-p2的假设检验的检验统计量:
三.求P值和判断标准
当p<=α时,拒绝零假设,接受备选假设
当p>α时,接受零假设
四.得出结论
实例:单样本
环保标准规定汽车的新排放标准:平均值<20ppm,现某汽车公司测试10辆汽车的排放结果如下:15.6 16.2 22.5 20.5 16.4 19.4 16.6 17.9 12.7 13.9 。问题:公司引擎排放是否满足新标准。
一、问题是什么
1、零假设:公司引擎排放不满足标准,即平均值>=20
备选假设:公司引擎排放满足标准,即平均值<20
2、判断检验类型:该例子为单样本检验
3、确定抽样分布
1)用python展示统计描述(平均值、标准差)
计算的样本平均值为17.17ppm,标准差为2.98ppm
2)我们知道当样本数量大于30时,符合中心极限定理,抽样分布呈正态分布,样本数量小于30时,抽样分布符合t分布或其他分布。为了知道这是个样本的分布,我们可以使用python中的displot绘图,画出直方图和拟合曲线
从绘图中可以看出样本数据集近似正态分布,又因为该样本量小于30因此抽样分布符合t分布。自由度df=n-1=9
3)确定检验方向:
由于备选假设中包含<,则属于左尾假设
二.计算p值
1)手动计算
根据t表格,即可找出p值,这里我们也可以用下面链接中的工具得出p值。
https://www.graphpad.com/quickcalcs/pValue2/
最后得到p值为0.015,但这个工具计算的是双尾检验的p值,根据下图我们可以看出双尾检验的p值为单位检验的2倍,因此这里的p值应为 0.15/2 = 0.0075
2)调用python自带方法计算
三、判断标准
建立判断标准检验证据是否有效,给定的判断标准即显著水平α=5%
当p<=α时,拒绝零假设,接受备选假设
当p>α时,接受零假设
四、得出结论
用python代码来判断如下:
左尾判断条件:t<0 and p < alpha
右尾判断条件:t>0 and p < alpha
实例2:A/B测试
简介
对于这个项目,你将要了解的是电子商务网站运行的 A/B 测试的结果。你的目标是通过这个 notebook 来帮助公司弄清楚他们是否应该使用新的页面,保留旧的页面,或者应该将测试时间延长,之后再做出决定
I数据的基本处理
(1) 导入数据库
(2) 导入数据集,并在这里查看前几行:
(3)使用下面的单元格来查找数据集中的行数。
(4)数据集中独立用户的数量
(5)用户转化的比例
(6)new_page 与treatment 不一致的次数
(7) 是否有任何行存在缺失值?
(8)现在创建一个符合测试规格要求的新数据集。将新 dataframe 存储在 df2 中
(9)检查有无不匹配值
(10)df2 中有一个重复的 user_id 。它是什么?
(11)删除 一个 含有重复的 user_id 的行, 但需要确保你的 dataframe 为 df2
(12)不管它们收到什么页面,单个用户的转化率是多少?
(13)一个用户收到新页面的概率是多少?
II A/B测试
(1)假设:
零假设:p_new -p_old <=0
备择假设:p_new -p_old >0
(2)
假定在零假设中,不管是新页面还是旧页面,p_new and p_old都具有等于转化 成功率的“真”成功率,也就是说, p_new and p_old是相等的。此外,假设它们都等于ab_data.csv 中的 转化 率,新旧页面都是如此。
每个页面的样本大小要与 ab_data.csv 中的页面大小相同。
执行两次页面之间 转化 差异的抽样分布,计算零假设中10000次迭代计算的估计值
(3) 在零假设中,p_new和p_old 的 convert rate(转化率) 是多少?
(4)n_new和n_old是多少?
(5)在零假设中,使用 p_new 转化率模拟 n_new 交易,并将这些 n_new 1 与 0 存储在 new_page_converted 中。
(6)在零假设中,使用 p_old转化率模拟 n_old交易,并将这些 n_old 1 与 0存储在 old_page_converted 中。
(7)在 (5) 与 (6)中找到p_new-p_old模拟值
(8)使用(3). 到 (7) 中的计算方法来模拟 10,000个 p_new-p_old 值,并将这 10,000 个值存储在 p_diffs 中
(9)绘制一个 p_diffs 直方图
(10)在p_diffs列表的数值中,有多大比例大于 ab_data.csv 中观察到的实际差值
(11)得出结论
p_value=0.9
α=0.05
p_value>α,接受零假设