一、A/B测试概要
1. 定义
AB测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用。
2. A/B测试的作用
1.消除客户体验(UX)设计中不同意见的纷争,根据实际效果确定最佳方案;
2.通过对比试验,找到问题的真正原因,提高产品设计和运营水平;
3.建立数据驱动、持续不断优化的闭环过程;
4.通过A/B测试,降低新产品或新特性的发布风险,为产品创新提供保障。
3. A/B测试实施步骤
1.现状分析:分析业务数据,确定当前最关键的改进点。
2.假设建立:根据现状分析作出优化改进的假设,提出优化建议。
3.设定目标:设置主要目标,用来衡量各优化版本的优劣;设置辅助目标,用来评估优化版本对其他方面的影响。
4.界面设计:制作2(或多)个优化版本的设计原型。
5.技术实现:
网站、App(Android/iOS) 、微信小程序和服务器端需要添加各类A/B测试平台提供的SDK代码,然后制作各个优化版本。
Web平台、Android和iOS APP需要添加各类A/B测试平台提供的SDK代码,然后通过编辑器制作各个优化版本。
通过编辑器设置目标,如果编辑器不能实现,则需要手工编写代码。
使用各类A/B测试平台分配流量。初始阶段,优化方案的流量设置可以较小,根据情况逐渐增加流量。
6.采集数据:通过各大平台自身的数据收集系统自动采集数据。
7.分析结果:统计显著性达到95%或以上并且维持一段时间,实验可以结束;如果在95%以下,则可能需要延长测试时间;如果很长时间统计显著性不能达到95%甚至90%,则需要决定是否中止试验。
二、测试案例
1. 案例说明
针对某app的两个版本收集24天转化效果数据。
随机将测试用户群分为2部分,用户群1使用A方案,用户群2使用B方案,经过一定测试时间后,根据收集到的两方案样本观测数据,根据显著性检验结果选取最好方案。
2. 测试流程
2.1) 前期准备
import pandas as pd
import numpy as np
from scipy import stats
import statsmodels.api as sm
import random
df = pd.read_csv('ab_data.csv')
df.head()
2.2) 数据处理
df.columns=['用户ID','访问时间','对照组','新旧','转化']
df.head()
1表示转化,这里针对各列做了中文转换,但实际工作中不推荐。
df.info()
观察数据集,每一列下面都没有空值,并且一共有294478条数据
df.loc[df