带你读《2022技术人的百宝黑皮书》——倾向得分匹配(PSM)的原理以及应用(4)

简介: 带你读《2022技术人的百宝黑皮书》——倾向得分匹配(PSM)的原理以及应用(4)

带你读《2022技术人的百宝黑皮书》——倾向得分匹配(PSM)的原理以及应用(3) https://developer.aliyun.com/article/1243258?groupCode=taobaotech




匹配的基础思路很简单,即找到一个距离最近的样本,实现的具体方法按照渐进的顺序阐述如下:


Nearest Neighbour Matching 最近邻匹配


这是最直接的一种方法,即:对干预组中的用户,选取对照组中在倾向分上相差最小的用户做匹配。


实现上,会有有放回和无放回两种实现方式:

1. 有放回(对照组样本可重复使用):此时整体匹配质量上升,bias下降,当干预组与对照组倾向分分布差异较大

时推荐应用。此时使用的对照组样本数会减少,导致variance上升;

2. 无放回:此时匹配结果与匹配顺序有关,顺序需要保证随机。


除了是否放回之外,还有一个可调整的地方在于对单个用户是否可匹配多个样本(over-sampling):通过匹配最近的多个邻居降低了variance,提升了匹配的稳定性。但此时需要给每个邻居赋予权重(eg. 按距离衰减)。


Caliper and Radius Matching 有边界限制的半径匹配


当最近的邻居也相距很远的时候,NN匹配会存在低质匹配的风险。很自然的,我们想到可以限定样本间分数差值的上限,即Caliper。


1. Caliper Matching:匹配时引入倾向分差值的忍受度,高于忍受度的样本丢弃。理论上通过避免低质量匹配降低了bias,但在样本数量较少时也可能因为匹配过少而升高了variance;


2. Radius Matching:不止匹配caliper中的最近样本,使用caliper中的所有样本进行匹配。这种方法的优势在于,当有高质量匹配时使用了更多的样本、而当缺乏高质量匹配时则使用较少的样本。


Stratification and Interval Matching 分层区间匹配


分层匹配可以看作radius matching的一种相似版本,即将倾向得分分成多个区间,在每个区间内进行匹配。需要注意的是,分层的依据除了propensity score,也可以用一些我们认为重要的特征(如性别、地区),在相同特征的用户间进行匹配。


匹配示例SQL


在计算复杂度不太高的情况下,我们通常能够使用sql进行匹配算法的实现,示例如下:


with matching_detail as (
 select t1.user_id as treatment_userid,
 t1.score as treatment_pscore,
 t2.user_id as control_userid,
 t2.score as control_pscore,
 row_number() over (partition by t1.user_id order by abs(t1.score-t2.score) asc) as rn
 from propensity_score_treatment t1
 left join propensity_score_control t2
 -- 分层匹配
 on t1.gender = t2.gender and round(t1.score, 1)*10 = round(t2.score, 1)*10
 where abs(t1.score-t2.score) <= 0.05 -- caliper matching
)
select * from matching_detail where rn = 1 # rn大于1时为多邻居/radius匹配


上述的三种方法实际上都只使用了对照组中的部分样本,若希望使用对照组中的所有样本可对对照组中的样本整体赋权,计算整体的差值。




带你读《2022技术人的百宝黑皮书》——倾向得分匹配(PSM)的原理以及应用(5) https://developer.aliyun.com/article/1243255?groupCode=taobaotech


相关文章
|
存储 算法 Python
一文速学-时间序列分析算法之指数平滑法详解+Python代码实现
一文速学-时间序列分析算法之指数平滑法详解+Python代码实现
2852 0
一文速学-时间序列分析算法之指数平滑法详解+Python代码实现
|
2月前
|
机器学习/深度学习 存储 算法
光伏储能虚拟同步发电机并网仿真模型(Simulink仿真实现)
光伏储能虚拟同步发电机并网仿真模型(Simulink仿真实现)
|
3月前
|
存储 人工智能 安全
开源驱动下的能源管理革新:安全自主可控与 MyEMS 的实践路径
在全球数字化转型与“双碳”目标融合背景下,开源能源管理系统凭借开放性、灵活性与安全性,正成为企业实现精细化运营、风险防控与可持续发展的核心工具。它不仅打破闭源技术垄断,还通过智能监测、数据分析与自主可控部署,助力企业构建高效、安全、低成本的能源管理体系,推动绿色低碳转型。
64 0
|
机器学习/深度学习 数据采集 人工智能
Python实现深度神经网络RNN-LSTM分类模型(医学疾病诊断)
Python实现深度神经网络RNN-LSTM分类模型(医学疾病诊断)
Python实现深度神经网络RNN-LSTM分类模型(医学疾病诊断)
|
数据采集 人工智能 物联网
指数平滑法详解与Python代码示例
指数平滑法详解与Python代码示例
|
机器学习/深度学习 算法 前端开发
公开下载 |《2022技术人的百宝黑皮书》来了!
大淘宝技术2022一整年干货合集,你今年错过的知识和分享,还来得及补救。
1381 0
公开下载 |《2022技术人的百宝黑皮书》来了!
|
存储 数据挖掘
R语言用GARCH模型波动率建模和预测、回测风险价值 (VaR)分析股市收益率时间序列
R语言用GARCH模型波动率建模和预测、回测风险价值 (VaR)分析股市收益率时间序列
ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列
ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列
ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列
|
消息中间件 Kubernetes Cloud Native
十大热门业务场景最佳实践全面解析,阿里云中间件实战秘笈重磅发布!
十大热门业务场景最佳实践全面解密。必须收藏的干货!
3530 93
十大热门业务场景最佳实践全面解析,阿里云中间件实战秘笈重磅发布!