A/B-test显著性检验

A/B-test显著性检验同步至 https www runblog online 2019 03 18 ab test significance test 前言 本文是我在实习期间老大要求出的 故整理发布到博客上 欢迎大家拍砖 另外 注释内容及部分公式内

同步至:https://www.runblog.online/2019/03/18/ab-test-significance-test/

 

前言

 

A/B-test解读

 

A/B-test是为同一个目标制定两个方案,在同一时间维度,分别让组成成分相同(相似)的用户群组随机的使用一个方案,收集各群组的用户体验数据和业务数据,最后根据显著性检验分析评估出最好版本正式采用

 

使用A/B-test首先需要建立一个测试的版本服务,这个版本服务可能在标题字体、排版、背景颜色措辞等方面与原有版本服务有所不同,然后将这两个版本服务以随机的方式同时推送给测试用户。接下来分别统计两个版本的用户转化率指标然后根据样本数据进行显著性检验。

 

测试目的

 

页面(版本)的某一特定更新对转化率指标(如UV-线索转化率、UV-上架转化率、UV-成交转化率或者线索-上架转化率等)的影响效果。

 

A/B-test显著性检验

 

随机将测试用户群分为2部分,用户群1使用A方案,用户群2使用B方案,经过一定测试时间后,根据收集到的两方案样本观测数据,根据显著性检验结果选取最好方案。

 

为了下文方便说明,我们不妨设A方案为参考方案(或旧方案),B方案为实验方案(或新方案)。以下我们以xx二手车的线索-车辆成交转化率为例(注:所有数据均属虚构,仅做示例说明之用),假设进行A/B-test的时间是一周。

 

选取观测指标

 

使用A方案的人数A/B-test显著性检验,使用B方案的人数A/B-test显著性检验,通常情况下A/B-test显著性检验

 

由样本计算出A方案的线索-车辆成交转化率为A/B-test显著性检验,B方案的线索-车辆成交转化率 为A/B-test显著性检验

 

总体A的分布:A/B-test显著性检验,总体B的分布:A/B-test显著性检验

 

根据中心极限定理[3]可知,A/B-test显著性检验A/B-test显著性检验均可认为近似服从正态分布:

A/B-test显著性检验

 

所以根据正态分布的性质[4]:

A/B-test显著性检验

 

建立原假设和备择假设

 

由于我们的期望结果是B方案所带来的线索-车辆成交转化率高于A方案所带来的线索 -车辆成交转化率,所以原假设和备择假设如下:

 A/B-test显著性检验

构建检验统计量[5]

 

A/B-test显著性检验

.

 

显著性检验结论

 

给定显著性水平为。当A/B-test显著性检验时,拒绝原假设,认为B方案所带来的线索-车辆成交转化率高于A方案所带来的线索-车辆成交转化率,建议可以进行推广;当A/B-test显著性检验时,不能拒绝原假设,即认为B方案所带来的线索-车辆成交转化率不高于A方案所带来的线索-车辆成交转化率,建议暂不建议进行推广。

 

 

A/B-test示例

 

假设我们进行A/B-test一周,参考版本(通常默认是原始版本,简记为A)和实验版本(添加了特定改进的版本,简记为B),分别得到了1000个线索,A的线索-车辆成交转化率为7%,B的线索-车辆成交转化率为8%。如表1所示:

A/B-test显著性检验

 

在这儿,我们是肯定B比A版本所带来的转化率高呢,还是说这仅仅是由于一些随机的因素导致的这样的区别呢?我们严格按照A/B-test显著性检验过程进行如下计算。 

1).选取测量指标:

A/B-test显著性检验

 

2).构建原假设和备择假设:

A/B-test显著性检验

 

3).构建检验统计量:

A/B-test显著性检验

 

我们可以计算得到Z=0.,

 

4).显著性检验结论:

如果取显著性水平A/B-test显著性检验=0.5,则A/B-test显著性检验=1.644854,所以不能拒绝原假设,即认为B版本不一定比A版本所带来的线索-车辆成交转化率高。

 

如果我们将A/B-test的时间拉长,如两周时长的A/B-test分别得到5000条线索量;或者说同样做一周时间的A/B-test,但是测试的比例更大,分别得到5000条线 索量。即 N=5000,且线索-车辆成交转化率保持不变。计算得出Z=1.,在同样显著性水 平下,可以拒绝原假设,得出B比A版本所带来的线索-车辆成交转化率高的结论。

 

上述结论是符合我们的主观感受的!在小样本量时,新版所带来的线索-车辆成交转化率高于旧版本所带来的线索-车辆成交转化率,其原因也有可能是受到随机波动等因素影响,故不能肯定地说明新版要比旧版所带来的线索-车辆成交转化率高;但在大样本量时,或者说长期来看,新版本所带来的线索-车辆成交转化率都稳定地高于旧版本所带来的线索-车辆成交转化率,我们有理由相信,确实新版本所带来的线索-车辆成交转化率高于旧版本所带来的线索-车辆成交转化率。

 

 

A/B-test样本量的确定

 

由上述示例可以看出,样本量的不同对于最终结果是有很大影响的。所以在进行抽样之 前的很重要一步是确定样本量;在实践中,样本量是应该在正式抽样进行A/B-test之前便确认的。放到这里讲的原因是为了通过上述示例加深我们对样本量重要性的认识。

 

实践中,我们对于样本量的确认,可以根据标准误(或者说我们需要检验的差异变化) 来求出,记标准误为d:

A/B-test显著性检验,A/B-test显著性检验是在显著性水平A/B-test显著性检验下的临界值;A/B-test显著性检验是为由样本估计出的总体标准差。

 

 

显然,在给定显著性水平A/B-test显著性检验、需要检验的差异变化d和A版本(参考版本,旧版本)的线索-车辆成交转化率A/B-test显著性检验历史值(或经验值,或小样本预实验后得出的值[8])后,即可推导得出我们进行A/B-test所需的样本量。

 

 

指标推广

 

上文说明的是根据A/B-test进行新、旧版线索-车辆成交转化率的显著性检验。同理,如果需要根据A/B-test进行新、旧版本的UV-线索转化率、UV-上架转化率或者线索-上架转化率等的显著性检验,只需相应修改显著性检验过程中的观测指标(A/B-test显著性检验)即可。

 

 

统计效力检验简述[9]

 

通常情况下,我们一般是以显著性水平为衡量标准进行假设检验的,故对于统计效力检 验的相关内容,可在文末做相关了解。

 

 

文中注释内容

 

A/B-test显著性检验

A/B-test显著性检验

 

A/B-test显著性检验

 

A/B-test显著性检验

A/B-test显著性检验

 

A/B-test显著性检验

 

 

 

原稿如下

 

 

A/B-test显著性检验

 

A/B-test显著性检验

A/B-test显著性检验

A/B-test显著性检验

A/B-test显著性检验

A/B-test显著性检验

A/B-test显著性检验

A/B-test显著性检验

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216513.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午11:41
下一篇 2026年3月18日 上午11:41


相关推荐

  • JavaScript-匿名函数[通俗易懂]

    JavaScript-匿名函数[通俗易懂]什么是匿名函数1、匿名函数,即没有名称的函数2、如果单独只写一个匿名函数,此时是不符合语法要求的会报错。需要给匿名函数包裹一个括号,使之成为表达式。3、被小括号包裹的内容会被js识别为一个函数表达式如何执行和使用匿名函数?需要执行匿名函数后面追加括号即可也就是立即执行函数方式一:小括号只将匿名函数包裹起来后面跟随执行的小括号(常用)(function(){alert(‘匿名函数执行方式一’)})();小括号将匿名函数以及执行匿名函数的小括号都包裹起来

    2022年10月3日
    4
  • Verdi 基础教程

    Verdi 基础教程Verdi 基础

    2026年3月19日
    1
  • 支持向量回归(SVR)的详细介绍以及推导算法

    支持向量回归(SVR)的详细介绍以及推导算法1SVR背景2SVR原理3SVR数学模型SVR的背景SVR做为SVM的分支从而被提出,一张图介绍SVR与SVM的关系这里两虚线之间的几何间隔r=d∣∣W∣∣\frac{d}{||W||}∣∣W∣∣d​,这里的d就为两虚线之间的函数间隔。(一图读懂函数间隔与几何间隔)这里的r就是根据两平行线之间的距离公式求解出来的SVR的原理SVR与一般线性回归的区别SVR一般线性回归1.数据在间隔带内则不计算损失,当且仅当f(x)与y之间的差距的绝对值大于ϵ\

    2022年6月6日
    46
  • 指纹识别算法c++实现

    指纹识别算法c++实现指纹算法需求指纹特征值生成 比对 API 库需求 可输出指纹图像 图像格式为 bmp 小于等于 500DPI 不大于 50K 可输出指纹模板 生成模板需要至少采集几次指纹需说明 建议不超过三次 模板大小不超过 1K 模板生成时间不大于 1 秒 可输出指纹特征值 可以是非字符串格式 特征值大小不超过 512B 可输出指纹特征值字符串 字符串为可见字符 长度不超 1024 指纹比对时 支持输入指纹特征值字符串比对 指纹比对时 支

    2026年3月16日
    2
  • python3画图中文乱码_pycharm 画图中文乱码

    python3画图中文乱码_pycharm 画图中文乱码importmatplo pyplotasplti 出现中文乱码原因 matplotlib 中找不到中文字体解决方法 1 找到中文字体文件的地址和字体文件名通常 C Windows Fonts 字体文件名 2 加载字体 zh font matplotlib font manager FontProperti fname C Windows Fon

    2025年7月8日
    4
  • Spring Cloud微服务实战

    Spring Cloud微服务实战

    2022年3月12日
    63

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号