前言: 作为AB测试的学习记录,本文通过例子介绍实验数据的验证过程。
相关文章:
AB测试——原理介绍
AB测试——流程介绍(定义问题和指标选取)
AB测试——流程介绍(设计实验)
5.1 选择测试和数据收集工具
在实施测试方案过程中,短期内,可以基于已有数据,灵活简便地使用Excel或者Python对实验数据进行分析。若是长期需求,则可以借助市场上已有的一些工具,或者自主搭建Pipeline去收集和分析结果数据。
数据分析工具
这里列几个工具,比如:
- 神策数据 : (略)
- VWO:一个全面的 A/B 测试和个性化平台,提供网站优化、测试、调查和热图等功能,可根据计划灵活收费。
- Google Optimize:由 Google 推出的 AB 测试和个性化网站优化工具,可以免费使用。可以进行A/B测试、多变量以及重定向测试。
自主搭建分析流程
自主搭建数据分析流程,更加灵活,不会受限于工具的功能,但同时也要投入一定的人力时间。
首先,需要给测试对象打好标签,对照组和实验组的数据不能混淆;其次,搭建完善数据收集通道及存储仓库,做好数据清洗和储存工作;最后,使用统计学方法对数据进行分析验证,得出结论和建议,以及对结果进行可视化。
这一流程需要有机结合使用一系列的数据仓库/分析/BI工具,比如Python、SQL 、Tableau 或 PowerBI。
5.2 实验数据分析
统计分析收集的数据,比较测试组和对照组的差异,并确定哪种方案更有效。
案例背景
假设我们正在测试一个购物车页面,以确定新的页面设计是否可以提高转化率。我们将原网页与新网页进行比较,原始版本称为控制组(Group A),新版本称为变体组(Group B)。我们使用每个组的1000个随机访客来进行测试,并收集了以下数据:
- Group A: 1000访客,45个购买者,4.5%转化率
- Group B: 1000访客,65个购买者,6.5%转化率
案例分析
我们可以对案例进行分析:
- 确定指标:转化率
- 确定假设:新网页设计可以提高转化率
- 随机化实验组:使用随机化工具将1000个访客随机分配给Group A和Group B定义控制组和变体组:Group A是控制组,Group B是变体组
接下来,统统计算检验实验结果是否显著:
Python 计算检验
import numpy as np
from scipy.stats import ttest_ind_from_stats
# Group A
n_A = 1000
conversions_A = 45
conversion_rate_A = 0.045
# Group B
n_B = 1000
conversions_B = 65
conversion_rate_B = 0.065
# Conduct t-test
t_stat,p_value = ttest_ind_from_stats(conversion_rate_A, np.sqrt(conversion_rate_A*(1-conversion_rate_A)), n_A,
conversion_rate_B, np.sqrt(conversion_rate_B*(1-conversion_rate_B)), n_B)
# Print results
alpha = 0.05
if p_value < alpha:
print("The difference in conversion rates between Group A and Group B is statistically significant (p = {:.4f})".format(p_value))
else:
print("The difference in conversion rates between Group A and Group B is not statistically significant (p = {:.4f})".format(p_value))
结果输出:
结论及建议
在此示例中,Group B的转化率比Group A高,且这种差异在统计学上是显著的。因此,我们可以得出结论,新页面可以提高转化率,建议采用新的页面设计并在网站上推出。