Code前端首页关于Code前端联系我们

什么是 A/B 测试?统计知识?实现 Python

terry 2年前 (2023-09-25) 阅读数 50 #后端开发

1 的简单示例。什么是 A/B 测试

A/B 测试(也称为拆分测试或分组测试)是一种比较网站或应用程序的两个版本以确定哪个版本性能更好的方法。 AB 测试本质上是一种实验,其中随机向用户显示页面的两个或多个版本,并通过统计分析确定哪个版本对于给定的转化目标(指标,例如 CTR)表现更好。

A/B test是什么?统计学知识?结合Python实现简例

2。 A/B 测试的工作原理

在 A/B 测试中,您可以设置对网页或应用程序屏幕的访问权限并对其进行修改以创建同一页面的第二个版本。这种更改可以像单个标题或按钮一样简单,也可以是整个页面的重新设计。然后,一半流量显示页面的原始版本(所谓的小部件),另一半显示页面的修改版本(所谓的变体)。

A/B test是什么?统计学知识?结合Python实现简例

当用户进入页面时,如上图所示,带有箭头标记的灰色按钮(控件)和红色按钮(版本)可以利用隐藏点收集用户的点击行为数据,并通过它们进行分析。统计引擎(用于 A/B 测试)。然后,您可以确定此更改(变化)对特定指标(此处为用户点击率 (CTR))是否有正面影响、负面影响或没有影响。

实验数据结果可如下:

A/B test是什么?统计学知识?结合Python实现简例

3. A/B 测试的目的是什么?

A/B 测试使个人、团队和公司能够通过用户行为结果的数据不断仔细地修改他们的用户体验。这使他们能够形成假设并更好地理解为什么修改的某些元素会影响用户行为。这些假设可能会被证明是错误的,这意味着他们个人或团体对于给定目标的最佳体验的想法可能不适用于使用 A/B 测试的用户,或者可能会被证明是正确的。

因此,A/B 测试不仅仅是一次比较来解决差异,而是可以持续使用 A/B 测试来不断改善用户体验,并随着时间的推移提高某个目标,例如转化率。

例如,一家 B2B 技术公司希望提高营销活动登陆页面中潜在客户的质量和数量。为了实现这一目标,团队尝试对标题、视觉图像、表单字段、号召性用语和整体页面布局进行 A/B 测试。

一项一项地测试更改可以帮助您确定哪些更改对访问者行为有影响,哪些没有影响。随着时间的推移,他们可以结合实验中多个积极变化的影响,以显示与对照相比,变体有可测量的改进。

A/B test是什么?统计学知识?结合Python实现简例

因此,产品开发人员和设计人员可以使用A/B测试来演示新功能对用户体验变化的影响。只要目标明确,有明确的假设、用户参与度、产品体验等。它们都可以通过 A/B 测试进行优化。

4。 A/B 测试流程

① 确定目标: 目标是用于确定变体是否比原始版本更成功的指标。这可以是按钮点击的点击率、产品购买链接的打开率、电子邮件订阅的注册率等。

②创建版本: 对网站原始版本的元素进行必要的更改。这可能是更改按钮的颜色、交换页面上元素的顺序、隐藏导航元素或完全独特的内容。

③ 生成假设: 一旦定义了目标,您就可以开始生成 A/B 测试想法和假设,以统计分析它们是否优于当前版本。

④收集数据:根据给定区域的假设收集适当的数据来分析A/B测试。

⑤运行实验: 此时,网站或应用程序访问者将被随机分配对照或变体。测量、计算并比较他们与每种体验的交互,以确定每种用户体验的表现如何。

⑥分析结果: 完成实验后,您可以分析结果。 A/B 测试分析显示两个版本之间是否存在统计显着差异。

A/B test是什么?统计学知识?结合Python实现简例

无论实验结果如何,实验结果都应该作为学习经验,产生未来可以测试的新假设,不断迭代优化应用元素或网站的用户体验。 ?最后,在所有流量上线之前,您需要评估新推荐策略的利弊。使用的评估方法是A/B测试。具体方法是从总流量中采样两个小流量,分别使用新的推荐策略分支和旧的推荐策略分支。 ,通过比较两个流量指标(这里以用户点击量来衡量)的差异,我们可以评估新策略的优缺点,进而判断新策略是否适合所有流量。

A/B 测试步骤示例:

指标:CTR

变化:新的推荐策略

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

数据采集:下面B组的数据是我们要查看的新的策略结果数据,A组的数据是旧的策略结果数据。全部虚假信息。

分析结果(Python):

在python中使用它对两个数据集进行双尾t检验,结果比较简单。但是,如果您正在进行较大或较小的单侧检测,则需要进行一些处理才能获得正确的结果。

from scipy import stats 
import numpy as np 
import numpy as np 
import seaborn as sns

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

Output:策略A的均值是:策略B的均值是:
很明显,策略B的均值大于策略A的均值,但这就能说明策略B可以带来更多的业务转化吗?还是说仅仅是由于一些随机的因素造成的。

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

H0:A>=B

H1:A < B

(x,y)默认验证的是x.mean-y.mean这个假设。为了在结果中得到正数,计算如下:

(B,A,equal_var= False)

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

求得

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

6。 A/B 测试期间要考虑的要点

1。优先级: 我们通过廉价、低流量的实验在全职用户中推广它。

2。并发性:检查不同版本、不同方案时,确保其他条件一致。

3。导流的科学性和数据科学:导流的科学性是指分配给两个AB组的数据必须一致,而数据的科学性是指平均转化率和平均点击率不能一致直接使用AB检验进行决策,但通过置信区间、假设检验和收敛程度得出结论。

7。 A/B测试你需要了解的统计知识

上面的文章只是从应用的角度介绍了AB测试的一些内容。收集数据后,您应该具备以下推理统计分析技能。 ,由于篇幅所限,这里就不做介绍了。您也可以自己阅读统计书籍。阅读《统计学》贾跃平,可汗学院统计以及其他书籍和视频。

1。点估计

2。间隔估计

3。中心极限定理(总体样本估计的核心,相当于大数定理)

4。假设检验

否则假设检验这部分是重点,其他助手可以更好地理解这部分内容。例如,区间估计可以被认为是正推理统计,假设检验可以被认为是反事实推理统计。关于假设检验本身,您还应该了解低概率事件、t 分布、z 分布、卡方分布、p 值、alpha 误差、贝拉误差等。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门