A/B test

A/B test 是线上策略的效果验证方法,在大型互联网公司非常常见。对于A/B 实验效果有明显差异的,可以直接给结论,但对于A/B 实验效果差不多的情况,需要用到 “假设检验” 来分析。

一、什么是 A/B-test ?

【目的】为同一个目标制定两种(多种)方案,对比不同方案的效果。

【方法】在同一时间维度,分别让组成成分相同(相似)的用户群组随机的使用一个方案,保证不同群体的唯一影响变量就是 ”测试方案“,收集各群体(方案)效果数据,根据显著性检验评估方案效果。

【数学原理】

1、大数定律:在一个随机事件中,随着试验次数的增加,事件发生的频率趋于稳定值,即概率。

2、中心极限定理:如果样本量足够大,则样本均值的分布将近似于正态分布,与该变量在总体中的分布无关。

3、定理应用:通过计算样本均值的正态分布,可以分配置信区间,可以进行T检验(即两个样本均值之间是否存在差异),可以进行方差分析(即3个或更多样本的均值之间是否存在差异)。

【A/B分流原理】

对并行实验非常多的大公司来说,逐渐开始探索“无限分层”的方法。每个实验都可以看成独立的层,只保证层间流量分桶的正交性,所有的实验都可能存在重叠情况。

 

二、什么是 假设检验?

【数学原理】

1、将测试用户群随机分为2组,用户群1使用A方案,用户群2使用B方案,由于每次实验结果要么转化成功,要么失败,所以A/B的分布可看作是伯努利分布,也叫二项分布。

2、当二项分布的样本量趋于无穷大时,可以近似看作服从正态分布。

【检验原理】

H0 是原假设(要拒绝的假设),H1 是备责假设(我们想要的假设):

第一类错误:真实(H0)无区别,判断为”有区别“,我们把第一类错误出现的概率用α表示,一般选择5%。

第二类错误:真实(H1)有区别,判断为”无区别“,我们把第二类错误出现的概率用β表示。根据条件概率的定义,可以计算出β = 1 - power

【实例A/B test步骤】

此部分引自:https://zhuanlan.zhihu.com/p/75762862

实例背景简述

某司「猜你想看」业务接入了的新推荐算法,新推荐策略算法开发完成后,在全流量上线之前要评估新推荐策略的优劣,所用的评估方法是A/B test,具体做法是在全量中抽样出两份小流量,分别走新推荐策略分支和旧推荐策略分支,通过对比这两份流量下的指标(这里按用户点击衡量)的差异,可以评估出新策略的优劣,进而决定新策略是否全适合全流量。

指标:CTR

变体:新的推荐策略

假设:新的推荐策略可以带来更多的用户点击。

收集数据:以下B组数据为我们想验证的新的策略结果数据,A组数据为旧的策略结果数据。均为伪造数据。

我们是想证明新开发的策略B效果更好,所以可以设置原假设和备择假设分别是:

H0:A>=B

H1:A < B

利用 python 中的  scipy.stats.ttest_ind 做关于两组数据的双边 t 检验,为了得到单边检验的结果,需要将 计算出来的 pvalue 除于2 取单边的结果(这里取阈值为0.05)。
from scipy import stats
import numpy as np
import numpy as np
import seaborn as sns

A = np.array([ 1, 4, 2, 3, 5, 5, 5, 7, 8, 9,10,18])
B = np.array([ 1, 2, 5, 6, 8, 10, 13, 14, 17, 20,13,8])
print('策略A的均值是:',np.mean(A))
print('策略B的均值是:',np.mean(B))

'''
策略A的均值是: 6.416666666666667
策略B的均值是: 9.75
'''
import scipy.stats
t, pval = scipy.stats.ttest_ind(B,A)  #表示B-A
print(t,pval)

'''
1.556783470104261 0.13379164919826217
'''

根据 scipy.stats.ttest_ind(x, y) 文档的解释,这是双边检验的结果。为了得到单边检验的结果,需要将 计算出来的 pvalue 除于2 取单边的结果(这里取阈值为0.05)。

求得pvalue=0.13462981561745652,p/2 > alpha(0.05),所以不能够拒绝假设,暂时不能够认为策略B能带来多的用户点击。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值