新同学 点击下方名片关注哦,每周二准时发文~~
预计阅读时间:6min
00 序言
之前文章中,小火龙和大家分享过在无法做AB实验的场景下,如何通过因果推断的方式,构造相对纯净的虚拟AB组,还不了解方法的同学可以戳这里「不适合做AB实验的场景下,通过这4种方式来衡量策略效果」。
本章,分享其中Matching方法中的EM(精确匹配)、CEM(粗化精确匹配)的SQL实现代码,有需要的同学可以自取。详细理论这里就不再冗余介绍了,可以戳上面链接学习。
01 代码实现
步骤一:前置表(生成匹配前置用户表)
create table if not exists test.cem_user_original as
select
uid,
age,
gender,
edu_level,
is_label --是否应用某些功能(作为虚拟AB的判断标识)
from
test.user_table
where
date between '20240301' and '20240330' --获取此段时间的用户
group by
uid,
age,
gender,
edu_level,
is_label
;
步骤二:匹配(通过label=1去匹配label=0)
create table if not exists test.cem_user_result as
with
title_merge as --标签merge
(
select
*
,is_click as is_ab_treatment --是否是虚拟实验组
,1-is_click as is_ab_contorl --是否是虚拟控制组
,concat_ws('_', age, gender, edu_level) as title_merge
from
test.cem_user_original
),
title_count as --计算每个标签merge对应的虚拟AB组人数
(
select
*
,sum(is_ab_treatment) over(partition by title_merge) as num_ab_treatment
,sum(is_ab_contorl) over(partition by title_merge) as num_ab_contorl
,row_number()over(partition by title_merge,is_ab_contorl order by rand()) as rank_ab_contorl
from
title_merge
),
treatment_few as --当标签merge中「实验组用户≤控制组用户」时,实验组全取+控制组取与实验组相同人数
(
select
*
from
title_count
where
num_ab_treatment <= num_ab_contorl
and
(
is_click=1 or
(is_click=0 and rank_ab_contorl<=num_ab_treatment)
)
),
treatment_more as --当标签merge中「实验组用户>控制组用户」时,实验组全取+控制组全取(实验组用户明显偏少的情况)
(
select
*
from
title_count
where
num_ab_treatment > num_ab_contorl
)
select
*
from
treatment_few
union all
select
*
from
treatment_more
;
以上就是本期的内容分享。如果需要小火龙一对一的指导,可以戳下方内容!
1、实战进阶书籍《数据分析实践:专业知识和职场技巧》,侧重案例实操。
目标群体:需要系统学习数据分析全流程,通过更多案例实现落地的同学。
详细介绍:《数据分析实践:专业知识和职场技巧》
2、将11年工作经验沉淀成「数据分析方法论图谱」,侧重场景与方法。
目标群体:需要快速进阶,近期准备面试的同学。
详细介绍:数据分析方法论图谱
3、「简历修改、面试辅导、职业咨询」,助同学们成功上岸。
目标群体:准备找工作、正在找工作的同学。
详细介绍:简历修改及面试辅导
往期推荐
「经验」指标体系全景图『搜索场景』
「经验」指标体系全景图『短视频场景』
「经验」数据埋点很重要,这些内容你需要掌握『上篇』
「经验」数据埋点很重要,这些内容你需要掌握『下篇』
「经验」站在数据分析师角度,浅谈数据仓库需要掌握到的程度!
「经验」如何搭建“业务化”的指标体系?
「经验」如何30min内排查出指标异动的原因『归因上篇』
「经验」指标异动排查中,3种快速定位异常维度的方法『归因中篇』
「经验」指标异动排查中,如何量化对大盘的贡献程度『归因下篇』
「经验」汇总指标异动的十大原因,涵盖日常90%问题
「经验」时间序列预测神器-Prophet『理论篇』
「经验」时间序列预测神器-Prophet『实现篇』
「经验」带你掌握AB实验最佳流程
「经验」如何创建实验假设?这5步你需要掌握!『AB详解系列1』
「经验」不适合做AB实验的场景下,通过这4种方式来衡量策略效果
「经验」我对用户增长的理解『获客篇』
「经验」我对用户增长的理解『新用户篇』
「经验」我对用户增长的理解『流失预警篇』
「经验」用户画像对于业务如此重要?这几点你需要掌握!
「经验」用户增长渠道归因的五种常见方式
「经验」如何做好探索性分析?这5步需要掌握!
「经验」相关性分析竟能带来如此大的业务价值?
「经验」链路分析竟能带来如此大的业务价值?
「经验」浅谈分类模型在工作中的应用,附上实战场景!
「经验」浅谈聚类分析在工作中的应用
「经验」数据分析这7个场景下,可以利用算法解决问题
「经验」爬虫在工作中的实战应用『理论篇』
「经验」爬虫在工作中的实战应用『实现篇』
「经验」互联网广告基础知识汇总『广告系列1』
「经验」互联网广告出价及计费方式汇总『广告系列2』
「经验」竞品分析需要掌握的思路及诀窍
「经验」用户成长体系对于业务的价值『概念篇』
「经验」用户成长体系对于业务的价值『玩法篇』
「经验」从0到1撰写行业研报的核心思路
「经验」短视频0vv专项分析『实战案例1』
「经验」浅谈视频质量评估方式
持续追更哦
多一个点在看
多一条小鱼干