type
Post
status
Published
date
Jul 2, 2021
slug
example-3
summary
本项目通过一个真实的A/B测试案例,展示了如何利用数据分析为营销策略决策提供科学依据。项目核心在于评估两种营销策略相较于对照组对广告点击率的提升效果。通过严谨的数据清洗、样本量验证与统计假设检验,我成功识别出能将点击率显著提升约1.36个百分点(相对提升约108.68%)的最优策略(策略二),为业务增长提供了明确的方向。
tags
推荐
项目
category
知行合一
icon
password
Comment
摘要:本项目通过一个真实的A/B测试案例,展示了如何利用数据分析为营销策略决策提供科学依据。项目核心在于评估两种营销策略相较于对照组对广告点击率的提升效果。通过严谨的数据清洗、样本量验证与统计假设检验,我成功识别出能将点击率显著提升约1.36个百分点(相对提升约108.68%)的最优策略(策略二),为业务增长提供了明确的方向。
📝 一、项目背景与目标
在营销决策中,如何科学地评估新策略的效果是一个关键问题。本项目基于一个经典的业务场景(数据来源于阿里云天池),模拟了从数据准备到统计推断的全流程,旨在解决“从多个营销策略中科学选出最优方案”的实际问题。
本项目完整代码已发布于GitHub:
二、数据理解与准备
(一)数据清洗
本次数据集来自阿里云天池,包含三张表格文件。本项目仅使用了一个名为effect_tb.csv的文件,其中记录了支付宝用户点击广告情况。
在数据初探过程中,为确保数据质量,我执行了以下步骤:
列重命名与筛选
使用Pandas为无列名的数据设置列名:'dt','user_id','label','dmp_id',并移除了“dt”(日期)列,因本项目聚焦于用户行为本身,与时间序列无关,故将其移除以简化数据集。
处理后,表格的字段包括: user_id(用户ID),label(如果广告未被点击,该列数值为0,已被点击则为1),dmp_id(营销策略编号,对照组编号为1,策略一编号为2,策略二编号为3)。
处理重复值
基于user_id进行排序并去除重复记录,确保用户行为的唯一性。
处理缺失值与异常值
经检查,数据中无缺失值。通过创建分组透视表,验证了label(取值为0或1)和dmp_id(取值为1,2,3)字段均在预期范围内,未发现异常值。
(二)样本量充足性验证
在启动A/B测试前,需确保样本量足以检测出有意义的效应。我使用了业内通用的Evan Miller在线样本量计算工具:Sample Size Calculator,只需输入基准转换率(Bseline Conversion Rate)和最小提升比率(Minimum Detectable Effect)就能得出所需样本量。
为此,我计算出对照组的平均点击率约为1.26%,将该比率作为基准转换率。同时,基于业务共识,点击率提升至少1%才具有实际推广价值,因此我将最小提升比率设定为1%。计算结果为每组至少需要2,167个样本。在实际数据中,对照组、策略一和策略二的样本量均远超此数值(均超过30万),充分满足了测试对统计功效(通常设置为80%或更高)的要求,保证了结果的可信度。

至此,该数据集已经成为一个包含3个特征,2632975个样本,适合分析的干净数据集,将其保存到data/output.csv文件。
三、探索性数据分析
接下来的主要目标是较深入地理解数据,通过假设检验,比较不同营销策略(对照组vs.策略一vs.策略二)的点击率是否有显著差异。
(一)数据加载与基本统计
读取文件data/output.csv,按照dmp_id分成3组,输出各组的平均点击率(label=1的比例):
对照组:0.012551012429794775
策略一:0.015314747742072015
策略二:0.026191869198779274
数据显示,策略一和策略二的点击率均高于对照组,分别提升了0.28%和1.36%。可见策略二的提升更为突出,相较于对照组,提升比率约为108.68%。
(二)统计假设检验
为验证策略二的效果,我将对照组点击率设定为p1,策略二点击率设定为p2,设立以下统计假设:
原假设 (H0): p₂ ≤ p₁,即策略二的点击率小于或等于对照组。
备择假设 (H1): p₂ > p₁,即策略二的点击率高于对照组。
鉴于样本量巨大,并且数据符合二项分布,我采用Z检验(显著性水平α=0.05)。
方法一:公式计算
分别计算两组(对照组vs.策略二)的样本量、点击数、点击率,总和点击率r,经过计算得到以下关键统计量:
对照组样本量:1,905,663,点击次数:23,918
策略二样本量:316,205,点击次数:8,282
对照组点击率:1.26%,策略二点击率:2.62%
总和点击率r:1.45%
其中:
- p₁, p₂:对照组和策略二的点击率
- p:总和点击率
- n₁, n₂:两组的样本量
将已知数带入Z检验公式,得到:
检验统计量Z: 59.44168632985996
该检验为右侧检验,查询到显著性水平ɑ=0.05对应的Z临界值(拒绝域为Z>z_alpha)约为1.645。由于计算得出的Z统计量(59.44)远大于显著性水平ɑ=0.05对应的Z临界值 (1.645),因此结论为拒绝原假设,认为策略二的点击率显著优于对照组。
方法二:StatsModels库
除了上述方法,还可以使用python statsmodels 计算z值和 p值。该方法使用简便,与方法一相互验证。
我运用proportions_ztest 直接进行对照组vs.策略二点击率的Z检验计算,在代码中输入两组的点击数和样本量,设置alternative='larger',意为采用右侧检验,即假设策略二的点击率比对照组更好,输出 z_score(Z统计量)和 p(p值)。作为补充,使用同样的方法,比较对照组vs.策略一的点击率差异。两次计算的结果如下:
策略二 vs. 对照组: Z = 59.44, p ≈ 0.0
策略一 vs. 对照组: Z = 14.17, p = 7.45e-46
对p值的解读为:当显著性水平ɑ取0.05,若 p < 0.05,则拒绝原假设;若 p > 0.05,则无法拒绝原假设。
无论对于哪一个策略,p值近似为0,均小于0.05,拒绝原假设。这说明两个策略的点击率均显著高于对照组,但结合之前的点击率来看,策略二的提升幅度(1.36%)大于策略一(0.28%)。从业务效果考虑,策略二是更优选择。
在大样本量(均超过30万)的情况下,即使很小的点击率差异,如策略一提高的0.28%也会在统计上显著。因此,业务决策不仅要看统计显著性,更要关注实际提升幅度的大小。
四、业务建议
两种方法的结果一致,已经有充足的证据证明营销策略二提升广告点击率的效果更明显。据此,我提出以下建议:首先,优先在部分核心渠道快速部署并推广策略二,以最大化其营销价值。其次,深入研究策略二的具体构成,提炼其成功要素,为未来的营销活动设计提供指导。再次,在推广策略二的同时,基于其成功要素,如创意、投放逻辑等,设计新的变体,启动新一轮A/B测试,以寻求持续优化。
五、反思与学习
通过本项目,我不仅系统性地实践了A/B测试的完整技术流程,更深切体会到统计思维在驱动业务决策中的核心价值。它能将主观意见转变为客观的数据证明,避免了决策偏差。未来,我期待将这种方法论应用于更复杂的场景,如多变量测试或序贯分析,为业务创造更大价值。