支付宝营销策略分析

涉及字段如下:
  • dmp_id:营销策略编号(源数据文档未作说明,这里根据数据情况设定为1:对照组,2:营销策略一,3:营销策略二)
  • user_id:支付宝用户ID
  • label:用户当天是否点击活动广告(0:未点击,1:点击)

一. 数据清洗(python)

1. 导入常用库并导入数据

import pandas as pd
import numpy as np
data = pd.read_csv('E:\datalist\zf/effect_tb.csv')
data.columns = ['dt','user_id','label','dmp_id']
# 日志天数属性用不上,删除该列
data = data.drop(columns = 'dt')
data.head()
image.png

2. 重复值处理

data.shape
data.nunique()
image.png
  • 数据行数与独立用户数不统一,检查是否存在重复行.
data[data.duplicated(keep = False)].sort_values(by = ['user_id'])
image.png
  • 不难看出user_id有重复行.
data.drop_duplicates()
data[data.duplicated(keep = False)]
image.png
  • 删除重复值,并展示.

3. 空值及数据类型

data.info(null_counts = True)
image.png
  • 数据集无空值且数据类型正常,无需进行处理。

4. 保存数据

data.to_csv("./output.csv", index = False)
image.png

二. 【A/B测试】(mysql)

1. 导入数据

  • 目前的数据的保存格式为csv,需要先将数据导入到数据库当中才能执行查询,第一部选择一个库右键选择导入向导.


    image.png
  • 第二步选择导入类型,直接选择CSV文件.


    image.png
  • 第三步为选择数据源的路径,我们找到对应的数据后,勾选需要导入的表.


    image.png
  • 完成前文的操作之后便可以点击">>"跳至最后的步骤,中间的步骤由于数据十分工整,不需要进行额外操作.
  • 到达下图的界面,按照指引直接点击"开始",导入成功,会在日志兰中显示Finished successfully,如下图所示.
image.png

2. 假设检验

  • 通过营销策略编号分组,求出点击率.
select dmp_id,avg(label) 点击率 
from output 
group by dmp_id;
image.png
  • 首先假定我们希望新的营销策略能让广告点击率至少提升1个百分点.
  • 可以看到策略一和策略二相较对照组在点击率上都有不同程度提升。
  • 其中策略一提升0.2个百分点,策略二提升1.3个百分点,只有策略二满足了前面我们对点击率提升最小值的要求。
  • 接下来需要进行假设检验,看策略二点击率的提升是否显著。
a. 零假设和备择假设
  • 记对照组点击率为p1,策略二点击率为p2,则:
  • 零假设 H0: p1 ≥ p2
  • 备择假设 H1: p1 < p2
b. 分布类型、检验类型和显著性水平
  • 样本服从二点分布,独立双样本,样本大小n>30,总体均值和标准差未知,所以采用Z检验。显著性水平α取0.05。

2.1 用户数

  • 后续的查询都是基于筛选后的数据,因此这里新建一个表user_num去储存查询结果.此处用到了联合查询(union).
create table user_num as 
(select dmp_id,count(dmp_id) 用户数
from output where dmp_id=1
union
select dmp_id,count(dmp_id) 
from output where dmp_id=3);
image.png

2.2 点击数

  • 同上新建表click.
create table click as 
(select dmp_id,count(dmp_id) 点击数
from output where dmp_id=1 and label=1
union
select dmp_id,count(dmp_id) 
from output where dmp_id=3 and label=1);
image.png

2.3 计算点击率

  • 新建表rate.
create table rate as 
(select a.dmp_id,b.`点击数`/a.`用户数` as 点击率
from user_num a 
join click b on a.dmp_id = b.dmp_id);
image.png

2.4 总和点击率

select sum(b.`点击数`)/sum(a.`用户数`) 总和点击率
from user_num a 
join click b on a.dmp_id = b.dmp_id;
image.png
  • 得出总和点击率为0.014.

2.5 计算统计量Z

select (list1.`差`)/sqrt(c.`总和点击率`*(1-c.`总和点击率`)*(list2.`和`)) 值 
from 
(select a.`点击率`-b.`点击率` 差 
from rate a ,rate b where b.dmp_id =3 and a.dmp_id =1) list1,
(select sum(`点击数`)/sum(`用户数`) 总和点击率 
from user_num  join click  on user_num.dmp_id = click.dmp_id) c,
(select (1/d.`用户数`)+(1/e.`用户数`) 和 
from user_num d ,user_num e where d.dmp_id = 3 and e.dmp_id =1) list2;
image.png

image.png
  • z_alpha = -1.645, 检验统计量z = -59.566,该检验为左侧单尾检验,拒绝域为{z<z_alpha}。
  • 所以我们可以得出结论:原假设不成立,策略二点击率的提升在统计上是显著的。

总结

  • 综上所述,两种营销策略中,只有策略二对广告点击率有显著提升效果,相较于对照组点击率提升了近一倍,因而在两组营销策略中应选择第二组进行推广。

你可能感兴趣的:(支付宝营销策略分析)