1、背景及目的
假设现在有一个数据分析学习的初创网站,到了前期推广阶段,它的主要目的是让大家加入微信学习社群。现在需要给网站投放“广告”,刚开始给用户看到的落地页是访问课程资料,这部分内容是免费的,并且在每一块课程上都会加上微信群的二维码,并介绍网站的付费项目;现在新增了开始免费试学这个落地页,本次试验的主要任务是利用A/B测试思想,检测两个落地页的转化效果,用到的是测试24天的拿到的数据。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
df = pd.read_csv('C:/Users/lenovo/Desktop/data/ab_data.csv')
df.head()
返回
读取数据,数据一共有5个字段:
user_id表示用户id
timestamp表示用户访问页面的时间
group表示新旧落地页的分组,把新的落地页分到treatment组,把旧的落地页分到了control组
landing_page表示落地页
converted表示是否转化,1表示转化,0表示未转化
2、数据预处理
查看数据基本信息,不存在缺失项,一共有294478条数据
上面两个group和landing_group真的是完全对应的吗?
发现有3893条数据在字段group和landing_page是不匹配的,应该删除这些数据
发现有一个重复用户,需要去除这个重复样本
查看一下落地页转化率情况
从上面的数据可以看出,总的转化率是0.11965919355605512,新落地页的转化率是0.11884079625642663,旧落地页的转化率是0.12047759085568362
3、假设检验
(1) A/B显著性检验
随机将测试用户群分为2部分,用户群1使用A方案,用户群2使用B方案,经过一定的测试时间,利用两方案收集到的反馈数据,基于显著性检验结果来选择更好的方案。回到本案例:
假设旧落地页为方案,新落地页为方案,方案的转化率为,方案的转化率为;使用方案的用户数为,使用方案的用户数为,由于现在已经测试了24天了,方案的测试流量由小增大,现在假设。
此外,由样本计算出方案的转化率为,方案的转化率为。
(2) 建立原假设和备择假设
本案例中我们所期望得到的结果是:方案的转化率要大于方案,即
因此:
(3) 检验统计量
(4) 显著性检验
临界值法
因此1.31<1.64 ,无法拒绝原假设
P值法
因此0.09>0.05,无法拒绝原假设
综上,截止到目前为止,还没有证据能够证明某个页面能够带来更多的转化率,只能继续延长测试时间或者修改新的页面来进行测试了。