转化率异动归因之双因素拆解法

背景:

RF月报观察各分层人群变化比较吃力,主要是RF分层各人群占比差异很大。当时主要是因业务要求,需要集中资源到高频用户。如此高频环比变化容易被观察,但是低频用户转化率对大盘影响很容易被忽略,然而因这部分人群占比高,一丁点变化都对大盘影响比较严重,所以还是需要监控起来,本文引用异动归因之双因素拆解法

 

目的:使用贡献度来直观体现低频、中频用户变化对大盘影响。

 

制作步骤:先使用RF制作用户分层,并给用户打上标签。运用SQL计算,计算逻辑如下:

分项指标波动贡献=(本期比率-上期比率)*上期占比
分项占比波动贡献=上期比率*(本期占比-上期占比)

 

代码见链接:

create table if not exists dws.rf_month_report_contribute

(

month string comment '日期',

rftag string comment 'RF人群标签',

residentcitylevel_qujian string comment '常驻地归属',

sex_group string comment '性别',

age_group string comment '年龄',

d0_cunuid_num bigint comment '本期存量用户数',

d0_orderuid_num bigint comment '本期存量下单用户数',

d0_rate decimal(14,4) comment '本期存量用户转化率',

d1_cunuid_num bigint comment '上期存量用户数',

d1_orderuid_num bigint comment '上期存量下单用户数',

d1_rate decimal(14,4) comment '上期存量用户转化率',

d0_sum_cunuid_num bigint comment '本期_大盘存量用户数',

d0_sum_orderuid_num bigint comment '本期_大盘存量下单用户数',

d0_sum_rate decimal(14,4) comment '本期_大盘存量用户转化率',

d1_sum_cunuid_num bigint comment '上期_大盘存量用户数',

d1_sum_orderuid_num bigint comment '上期_大盘存量下单用户数',

d1_sum_rate decimal(14,4) comment '上期_大盘存量用户转化率',

contribute_efficiency decimal(14,6) comment '分项指标波动贡献',

contribute_Proportion decimal(14,6) comment '分项占比波动贡献',

contribute decimal(14,6) comment '贡献度'

)

PARTITIONED by

(

pdate string

)

;


 

insert overwrite table dws.rf_month_report_contribute partition(pdate = '{today-1,yyyy-MM-dd}')

select

substr(a.pdate,1,7) month,

a.rftag,

a.residentcitylevel_qujian,

a.sex_group,

a.age_group,

a.cun_usernum as d0_cunuid_num,

a.cun_xiadan_usernum as d0_orderuid_num,

a.zhuanhua_rate as d0_rate,--本期比例

b.cun_usernum as d1_cunuid_num,

b.cun_xiadan_usernum as d1_orderuid_num,

b.zhuanhua_rate as d1_rate,--上期比例

c.sum_cun_usernum as d0_sum_cunuid_num,

c.sum_cun_xiadan_usernum as d0_sum_orderuid_num,

c.sum_zhuanhua_rate as d0_sum_rate,

d.sum_cun_usernum as d1_sum_cunuid_num,

d.sum_cun_xiadan_usernum as d1_sum_orderuid_num,

d.sum_zhuanhua_rate as d1_sum_rate,

(a.zhuanhua_rate-b.zhuanhua_rate)*(b.cun_usernum/d.sum_cun_usernum) as contribute_efficiency,

b.zhuanhua_rate*(a.cun_usernum/c.sum_cun_usernum-b.cun_usernum/d.sum_cun_usernum) AS contribute_Proportion,

(a.zhuanhua_rate-b.zhuanhua_rate)*(b.cun_usernum/d.sum_cun_usernum)+(b.zhuanhua_rate*(a.cun_usernum/c.sum_cun_usernum-b.cun_usernum/d.sum_cun_usernum)) as contribute

from

(

select

pdate,

rftag,

residentcitylevel_qujian,

sex_group,

age_group,

cun_usernum,

cun_xiadan_usernum,

zhuanhua_rate

from dws.rf_memberid_month_dimension

where pdate=last_day(add_months('{today-1,yyyy-MM-dd}', 0))

)a

left join

(

 select

pdate,

rftag,

residentcitylevel_qujian,

sex_group,

age_group,

cun_usernum,

cun_xiadan_usernum,

zhuanhua_rate

from dws.rf_memberid_month_dimension

where pdate=last_day(add_months('{today-1,yyyy-MM-dd}', -1))

)b on a.rftag=b.rftag and a.residentcitylevel_qujian=b.residentcitylevel_qujian and a.sex_group=b.sex_group and a.age_group=b.age_group

left join

(

 select

pdate,

sum(cun_usernum) as sum_cun_usernum,

sum(cun_xiadan_usernum) as sum_cun_xiadan_usernum,

sum(cun_xiadan_usernum)/sum(cun_usernum) as sum_zhuanhua_rate

from dws.rf_memberid_month_dimension

where pdate=last_day(add_months('{today-1,yyyy-MM-dd}', 0))

group by pdate

)c on a.pdate=c.pdate

left join

(

 select

pdate,

sum(cun_usernum) as sum_cun_usernum,

sum(cun_xiadan_usernum) as sum_cun_xiadan_usernum,

sum(cun_xiadan_usernum)/sum(cun_usernum) as sum_zhuanhua_rate

from dws.rf_memberid_month_dimension

where pdate=last_day(add_months('{today-1,yyyy-MM-dd}', -1))

group by pdate

)d on b.pdate=d.pdate

呈现方式:

 

思考:纯贡献度和直观分析优劣:

  1. 直观看数据,对于RF人群环比变化敏感度高,容易略微分层占比的影响。因为RF人群分层不均衡,对于占比大但是变化小维度观察比较费力。
  2. 贡献度呈现相反特性,很容易受占比大维度指标影响,对于占比量小的维度指标很难看到影响。

所以在报表中将两者进行结合呈现。

关注公众号「水沐教育科技」,在手机上阅读所有教程,随时随地都能学习。内含一款搜索神器,免费下载全网书籍和视频。

公众号二维码
微信扫码关注公众号

微信交流群 关注微信公众号,加入官方交流群。内含一款搜索神器,免费下载全网书籍和视频。