A/B 测试:Python实战(新老页面的转化率测试)

1、A/B test是什么
A / B测试(也称为分割测试或桶测试)是一种将网页或应用程序的两个版本相互比较以确定哪个版本的性能更好的方法。AB测试本质上是一个实验,其中页面的两个或多个变体随机显示给用户,统计分析确定哪个变体对于给定的转换目标(指标如CTR)效果更好。

在本文中,我们将介绍分析 A/B 实验的过程,从提出假设、测试到最终解释结果。对于我们的数据,我们将使用来自 Kaggle 的数据集,其中包含对似乎是网站页面的 2 种不同设计(old_page 与 new_page)的 A/B 测试的结果。

这是我们要做的:

1,设计我们的实验
(选定指标,建立假设,选择实验单位,计算样本量,流量分割,实验周期计算,线上验证策略是否已实施)
2,收集和准备数据
3,可视化结果
4,检验假设
5,得出结论

为了使它更现实一点,这里有一个我们研究的潜在场景

假设您在一家中型在线电子商务企业的产品团队工作。UI 设计师在新版本的产品页面上非常努力,希望它能带来更高的转化率。产品经理(PM)告诉你,目前的转化率全年平均在13%左右,如果提高2% ,团队会很高兴,也就是说,新设计如果提高了,就被认为是成功的。转化率15%。

在推出更改之前,团队会更愿意在少数用户上对其进行测试以了解其性能,因此您建议对一部分用户群用户进行A/B 测试。

设计我们的实验
选定我们的指标,相对值指标:转化率。
选实验单位:用户粒度,一个user_id作为唯一标识

提出假设:

鉴于我们不知道新设计的性能是否会与我们当前的设计更好或更差(或相同?),我们将选择双尾实验

Hₒ:p = p ₒ

Hₐ :p ≠ pₒ

其中p和p ₒ分别代表新旧设计的转化率。我们还将设置95% 的置信水平:

α = 0.05

α值是我们设置的阈值,我们说“如果观察到极端或更多结果的概率(p值)低于α,那么我们拒绝 Null 假设”。由于我们的α=0.05(表示概率为 5%),我们的置信度 (1- α ) 为 95%。

如果您不熟悉上述内容,请不要担心,这实际上意味着无论我们在测试中观察到新设计的转化率如何,我们都希望有 95% 的把握它与我们旧设计的转化率在统计上有所不同设计,在我们决定拒绝零假设 Hₒ 之前。

选择样本量

重要的是要注意,由于我们不会测试整个用户群(我们的人口),我们将获得的转化率不可避免地只是对真实转化率的估计。

我们决定在每个组中捕获的人数(或用户会话)将影响我们估计的转化率的精度: 样本量越大,我们的估计越精确(即我们的置信区间越小),发现差异的机会越高在两组中,如果存在的话。

另一方面,我们的样本数越大,我们的研究就越昂贵(和不切实际),通常来说都是选择最低满足的样本数。

那么我们每个组应该有多少人呢?

我们需要的样本量是通过一种叫做Power analysis的东西来估计的,它取决于几个因素:

检验的功效(1 - β) — 这表示当实际存在差异时,在我们的检验中发现组之间的统计差异的概率。按照惯例,这通常设置为 0.8
Alpha 值(α) — 我们之前设置为 0.05 的临界值
效果大小——我们预计转化率之间的差异有多大
由于我们的团队会对 2% 的差异感到满意,因此我们可以使用 13% 和 15% 来计算我们预期的效果大小。

Python 为我们处理了所有这些计算:

# 包导入
import numpy as np 
import pandas as pd 
import scipy.stats as stats 
import statsmodels.stats.api as sms 
import matplotlib as mpl 
import matplotlib.pyplot as plt 
import seaborn as sns 
from math import ceil 

%matplotlib inline 

# 一些绘图样式偏好
plt.style.use('seaborn-whitegrid') 
font = {
   'family' : 'Helvetica', 
        'weight' : 'bold', 
        'size' : 14} 

mpl.rc('font', **font)
effect_size 
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值