AB测试-自学

文章通过Python进行AB测试,以平均消费金额作为衡量标准,对比实验组与对照组的差异。使用T检验分析数据,确定实验组的平均消费金额显著高于对照组,并通过计算转化率进一步验证实验效果,结论是实验组提升了会员收入。
摘要由CSDN通过智能技术生成

前言

利用python进行AB测试自学实践

数据来源:知乎数据分析课程

数据包含用户ID和消费金额两个字段。

目标是提高会员收入,选取“平均消费金额”作为衡量指标。

平均消费金额=销售额/开通会员人数

实验组和对照组区别为用户点击进入VIP步骤界面的不同。

一、AB测试步骤

设定优化目标、提出假设、实验设计、实施实验收集数据、分析结果做出决策

二、明确指标

我们选取“平均消费金额”作为衡量指标,该指标为均值类指标,选择T检验

三、提出假设

原假设:实验组和对照组的平均消费金额相同。

备择假设:实验组和对照组的平均消费金额不同。

四、计算实验样本量

https://bowei-zhang.shinyapps.io/Sample_Size_Calculator/

五、分析结果

#导入相关包
import pandas as pd
from statsmodels.stats.weightstats import DescrStatsW,CompareMeans

#导入对照组数据
ctrldf=pd.read_excel('E:\知乎课程\AB测试数据分析\\知乎课程AB测试数据分析.xlsx',sheet_name='对照组')
ctrl = ctrldf['消费金额']
ctrl
#导入实验组数据
treatdf=pd.read_excel('E:\知乎课程\AB测试数据分析\\知乎课程AB测试数据分析.xlsx',sheet_name='实验组')
treat = treatdf['消费金额']
treat

#使用tconfint_diff函数计算T检验(均值类指标)置信区间,先处理一下数据
cm = CompareMeans(d1=DescrStatsW(data=treat),
                  d2=DescrStatsW(data=ctrl))

#看实验组和对照组的标准差是否一致,一致用pooled
use='unequal'
if ctrl.std()==treat.std():
    use='pooled'

#计算置信区间
ci=cm.tconfint_diff(alpha=0.05,alternative='two-sided',usevar=use)
ci

计算置信区间得(4.892058499513767, 5.538991500486232),我们选择实验组设计。

附加:概率类指标,选择Z检验

部分数据展示

使用Excel数据透视表计算总人数和点击人数

分析

#实验组和对照组样本量和转化人数
treatn=145119
treatz=19976
ctrln=145265
ctrlz=17501

import math

#计算转化率
treatp = treatz/treatn
ctrlp = ctrlz/ctrln

#计算置信区间
lower=(treatp-ctrlp)-1.96 * math.sqrt(treatp*(1-treatp)/treatn+ctrlp*(1-ctrlp)/ctrln)
upper=(treatp-ctrlp)+1.96 * math.sqrt(treatp*(1-treatp)/treatn+ctrlp*(1-ctrlp)/ctrln)
print(lower,upper)

计算得置信区间(0.01473803001922366 0.019614322879190963),置信区间大于0,选择实验组,实验组比对照组效果提升[1.47%,1.96%]。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值