「经验」因果推断Matching方式实现代码

科技   2024-09-24 09:02   北京  

新同学 点击下方名片关注哦,每周二准时发文~~

预计阅读时间:6min


00 序言

之前文章中,小火龙和大家分享过在无法做AB实验的场景下,如何通过因果推断的方式,构造相对纯净的虚拟AB组,还不了解方法的同学可以戳这里「不适合做AB实验的场景下,通过这4种方式来衡量策略效果」

本章,分享其中Matching方法中的EM(精确匹配)、CEM(粗化精确匹配)的SQL实现代码,有需要的同学可以自取。详细理论这里就不再冗余介绍了,可以戳上面链接学习。


01 代码实现

步骤一:前置表(生成匹配前置用户表)create table if not exists test.cem_user_original asselect    uid,    age,    gender,    edu_level,    is_label --是否应用某些功能(作为虚拟AB的判断标识)from    test.user_tablewhere    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
withtitle_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_mergefrom 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_contorlfrom title_merge),
treatment_few as --当标签merge中「实验组用户≤控制组用户」时,实验组全取+控制组取与实验组相同人数(select *from title_countwhere 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_countwhere 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』

「经验」浅谈视频质量评估方式


持续追更哦

多一个点在看

多一条小鱼干

小火龙说数据
《数据分析实践:专业知识和职场技巧》畅销书作者。互联网大厂数据科学家,原创数据分析优质内容及经验分享。
 最新文章