倾向得分匹配只看这篇就够了

article/2025/6/30 10:43:48

一、倾向得分匹配法说明

倾向得分匹配模型是由Rosenbaum和Rubin在1983年提出的,首次运用在生物医药领域,后来被广泛运用在药物治疗、计量研究、政策实施评价等领域。倾向得分匹配模型主要用来解决非处理因素(干扰因素)的偏差。

‍1、基本原理——反事实推断

基本原理是:根据处理组的特征,找出与处理组特征尽可能类似的控制组进行匹配,从而消除非处理因素的干扰。

例如:研究“是否读研”对于“收入”的帮助时,我们只能得到已经读研的处理组的收入情况,但是无法得到处理组的人没有读研的收入情况(反事实)。同时,是否读研和收入本身还受到其他非处理因素(干扰因素)的影响(比如学习成绩、家庭背景、学校差异等),此时,为了明确没有读研的反事实情况,进行反事实推断,校正非处理因素的影响就可以使用倾向得分匹配法,找到与读研的处理组学习成绩、家庭背景、学校差异等非处理因素类似的但是没有读研的控制组进行匹配,然后进行“是否读研”对于“收入”的帮助研究。

‍2、算法步骤

倾向得分匹配算法步骤如下:

  1. 计算倾向得分Pscore值
    构建一个是否接受培训的二分类变量作为因变量,以干扰因素作为自变量X进行二元logit回归模型构建,然后根据logit模型计算倾向得分Pscore值。Pscore值代表了干扰因素的整体水平情况,Pscore值越接近,说明两个研究对象(员工)的特征(初始工资等)越接近,第二步进行match匹配时,直接针对Pscore值进行。
  2. 进行匹配
    根据计算的倾向得分Pscore值进行处理组和控制组的样本进行匹配。SPSSAU会默认对样本进行编号(id),进行匹配时,针对研究因素Y= 1(处理组)的样本,去找对应Y=0(控制组)的匹配对象。
  3. PSM效果分析

匹配完成后,需要对匹配效果进行分析,包括分析PSM匹配基本信息、匹配后标准差偏差的变化、平行趋势检验、共同支撑检验等,后续将进行重点说明。

二、案例及SPSSAU实现

‍1、案例介绍

当前有一个公司,想要研究 “ 是否培训 ” 对于 “ 当前工资 ” 的影响。在公司内部,共收集到78个员工的相关信息,其中有17名员工接受过培训,61名员工未接受培训。已知当前工资会受到 “ 初始工资 ”、“ 工作经验 ”、“ 岗位 ”这3个基本特征的影响。因此,使用倾向得分匹配法找到除 “ 是否培训 ” 这一处理因素不同外,其他基本特征一致的两类人进行研究。

2、SPSSAU匹配操作

SPSSAU进行倾向得分匹配操作如下:将 “ 是否培训 ” 放到研究变量分析框中; “ 初始工资、工作经验、岗位 ” 这三个干扰因素放到特征项分析框中;“ 当前工资 ” 放在结果变量分析框中。同时勾选【保存信息】按钮,SPSSAU会默认输出id、matchid、weight、Pscore四项信息,id和matchid用于展示员工之间的匹配关系;weight用于标识匹配成功的次数;Pscore为二元logit回归模型估计值。SPSSAU操作如下图:

进行匹配时,SPSSAU需要选择匹配方法和抽样方法

(1)匹配方法选择

SPSSAU提供 “ 最近临法 ”(默认)和 “ 半径匹配法 ” 。“ 最近临法 ” 指找到PScore最接近的意思,“ 半径匹配 ” 找到PScore在可接受范围(阀值,卡钳值)内,阀值越小匹配越精确。本案例选择半径匹配法(0.05)进行匹配,如下图:

(2)抽样方法选择

SPSSAU提供 “ 放回抽样 ”默认和 “ 不放回抽样 ” 两种抽样方式。放回抽样是指某个样本会被重复匹配多次,不放回抽样是指样本最多被匹配1次就截止了。放回抽样的算法运行效率较低,当数据量非常大时可能不合适,本例数据较少,用两种抽样方法都可以,选择使用不放回抽样进行匹配,如下图:

以上操作完成之后,点击【开始分析】按钮,SPSSAU即输出匹配结果,接下来进行匹配效果分析。

3、匹配效果分析

倾向得分匹配效果分析包括分析匹配基本信息、匹配后标准化偏差、PSM平行假设检验、共同支撑检验四个方面。接下来,将逐个进行分析。

(1)匹配基本信息

SPSSAU输出PSM基本信息汇总表如下:

从上表可知,本次匹配使用半径匹配法并且精确匹配优先(精确匹配是指两个样本的Pscore值完全相等),匹配半径值为0.05,使用不放回抽样的方法。需要匹配个数(接受培训人数)为17,最终有16人匹配成功,匹配成功率94.118%。

(2)匹配后标准化偏差

标准化偏差对比图直观展示匹配前和匹配后标准化偏差的变化情况,如果标准化偏差变化明显(或者匹配后标准化偏差<20%),则说明匹配效果较好。

SPSSAU输出标准化偏差变化对比如下:

从上图来看,在匹配后,标准化偏差均小于20%,说明匹配之后,“初始工资”、“工作经验”、“岗位”这3项干扰因素,处理组与控制组特征基本保持一致。说明匹配效果较好。

(3)PSM平行假设检验

倾向得分匹配模型的一个假设是平行假设,即参与匹配的员工必须要各个维度上与处理组员工相似,这样才能保证估计结果的可靠性。

SPSSAU输出PSM平行假设检验如下表:

从上表可以得到:在匹配前,处理组和控制组(是否培训的两类员工),他们的特征项包括“初始工资”、“工作时间”、“岗位”均有显著性差异(p值均小于0.05),说明这3个特征项均属于干扰因素。

匹配后,处理组和控制组的3个特征项之间没有呈现出显著性差异(p值均大于0.05),说明经过匹配,处理组与控制组在这3个特征项上具有一致性。

针对标准化偏差来看,匹配后,特征项的标准化偏差全部低于20%,说明经过匹配处理组与控制组的3个特征项基本一致。标准化偏差减少幅度用于衡量标准化偏差的减少幅度情况,如果该值大于0,说明匹配效果好,该值小于0,说明匹配效果不好。该值越大越好,没有固定标准。从上表来看,3个特征项的标准化偏差减少幅度均大于0,说明匹配效果好。

综上所述,在匹配前,处理组和控制组的3个特征项均存在显著性差异,但经过匹配后,处理组与控制组在3个特征项上无显著性差异,具有一致性。所以PSM模型通过平行假设检验。

(4)共同支撑检验

倾向得分匹配的另一个假设就是共同支撑假设,即处理组与控制组是否具有相同的倾向得分值。共同支撑检验可以通过SPSSAU的核密度图进行检验,检验原理在于对比匹配前与匹配后的倾向得分值的分布情况。

①针对匹配前的Pscore值绘制核密度图,将“是否培训”放入X分析框中,“初始工资”和“工作经验”放入Y分析框中(核密度图Y只针对定量数据,故不分析岗位),SPSSAU操作如下:

得到匹配前初始工资与工作经验的核密度图如下:

从匹配前核密度图来看,处理组与控制组的Pscore值分布存在很大差异。如果忽略这种差异的存在(不进行匹配,直接进行差异分析),很可能导致研究结论偏误。同时看到处理组和控制组存在重叠部分,表明处理组和控制组具备了使用倾向得分匹配模型的条件。

②针对匹配后Pscore值绘制核密度图,筛选出匹配次数weight>0(不放回抽样也可以选择weight=1)的数据后再进行核密度图绘制。SPSSAU操作如下:

再次进行分析,得到匹配后核密度图如下:

从匹配后的核密度图看,经过匹配,处理组和控制组之间出现了显著的靠近与覆盖,存在较大的共同取值区间,表明两组样本在各方面特征已经非常接近,匹配效果较好,即说明通过共同支撑检验

4、研究结论分析

经过匹配后,研究 “ 是否培训 ” 是否会对 “ 当前工资 ” 产生显著影响可以使用t检验进行分析,但是SPSSAU在倾向得分匹配中可以做到 “ 一步到位 ” ,无需单独进行t检验,在此前将 “ 当前工资 ” 放入【结果变量】中,就是为了直接获得分析结果。SPSSAU输出结果为ATT效应分析,结果如下表:

ATT效应分析的目的在于分析匹配后结果变量在处理组和控制组之间是否有显著性差异。在本例中,即分析匹配后 “ 是否培训 ” 的两类人“当前工资”是否有显著差异。 “ Unmatched匹配前 ” 即第1行数据是指在匹配之前 , “ 研究变量 ” 与 “ 结果变量 ” 之间是否存在着差异性,其意义较小;主要看第二行数据ATT效应。

从上表可以看出,在匹配前,是否培训与当前工资之间呈现性差异(p<0.05)。以及在匹配之后,ATT效应值呈现出显著性(p<0.05),即说明进行PSM分析后显示是否培训与当前工资之间呈现出显著性差异,ATT效应值为17554.412,即意味着是否培训与当前工资起到正向作用。

总结与拓展

倾向得分匹配法是通过对样本建模(logit模型)得到Pscore值,通过Pscore值为处理组在控制组中找到最接近的样本,从而进行研究的。

PSM的优点在于可以控制干扰因素的影响、提高研究的证明力度;但其缺点也不可忽视,例如PSM需要样本量大、可能并非所有样本都能匹配成功,所以导致匹配后引起的样本量的损失问题不能忽视,甚至无法确定匹配后的样本是否能代表原有研究样本。

PSM有优点也有其局限性,但是尽管如此,PSM也是现代研究中一个不可或缺的统计方法,关键在于能够辨别自己的研究问题与PSM的适用性是否匹配,欢迎讨论~


http://chatgpt.dhexx.cn/article/kh6eTrdW.shtml

相关文章

Android设置图标背景透明

这里写自定义目录标题 Android 设置图标背景透明速览引言调整背景色 Android 设置图标背景透明 速览 设置 android:background"#00ffffff" 引言 适用于 Vector Assets 和 透明背景的图片 想要在Android中使用透明背景的图片 首先得保证图片本身是透明背景的 不然也没…

如何设置背景透明度

设置背景透明度分为两种&#xff1a;一种背景为颜色设置的纯色背景&#xff1b;另一种是图片做背景。 【情况一】纯色背景 关键代码&#xff1a;background:rgba(R,G,B,A) RGB--------三原色&#xff08;red,green,bule&#xff09;A-------透明度 关于三原色最终成型的颜色…

html悬浮背景透明视频教程,在html中使用背景透明的video视频

由于对效果的要求&#xff0c;需要加入透明背景的video。经过了解&#xff0c;现代浏览器(新版 Chrome、Firefox、Safari 等)已经全面支持 webM 格式的视频了&#xff0c;因此可以使用带 alpha 通道的 webM 格式视频满足要求。 要得到透明 webM 格式视频&#xff0c;则需要来源…

Android BottomSheetDialog设置背景透明无效?(解决)

BottomSheetDialog修改背景圆角 解决方法 这里记录一个实际开发过程中遇到的问题&#xff0c;在日常开发中遇到底部弹窗的时候我会第一时间用到BottomSheetDialog&#xff0c;常规的使用就是有一个默认从底部出现的弹窗&#xff0c;但是为了美观&#xff0c;通常会使用圆角&…

dialog设置背景透明

默认dialog是一个白底方形的&#xff0c;如果在xml设置中设置了一种边角是弧形的背景图片&#xff0c;那么显现的dialog角落就会留白 &#xff0c;解决办法&#xff1a; dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); 效果&#xff1a;只…

Flutter bottomNavigationBar背景透明

Scaffold(extendBody: true,//加这句背景就透明 ..... ) 效果图

html+页面的背景透明,css设置背景透明 元素不透明

css设置背景透明 元素不透明 在做前端页面的时候&#xff0c;我们会遇到这样的情况&#xff0c;需要背景为半透明状态&#xff0c;但是层里面的内容不需要为透明的状态。有时候我们设置的时候会出现不管内容还是背景同时都成透明了&#xff0c;如何实现背景色透明但内容不透明这…

qt实现窗口背景透明

方法一&#xff1a; MainWindow w;//方法一&#xff1a;主界面透明&#xff0c;界面里面的控件不透明w.setWindowFlags(Qt::FramelessWindowHint);//设置无窗口框架边界w.setAttribute(Qt::WA_TranslucentBackground);//设置背景透明w.show(); 编辑界面&#xff1a; 运行效果&…

android fragment 设置透明,DialogFragment背景透明设置

一 、背景 使用自定义DialogFragment实现弹窗效果时,边缘透明图片作为背景图片,依然存在不透明背景; QQ截图20180428154111.png 修复后: QQ截图20180428153910.png 二、实现 因为项目中多个地方使用到DialogFragment,所以稍作了一下封装: import android.app.Dialog; imp…

winform label背景透明

开发时要把label的背景&#xff0c;透明。 在网上找到资料。原文How to Use Transparent Images and Labels in Windows Forms - CodeProject 主要是在用web的 Transparent。&#xff08;我在代码中来设置Color.Transparent没有效果。这个在wpf中设置是可以的&#xff0c;在wi…

9.CSS 背景(background)

CSS 背景(background) CSS 可以添加背景颜色和背景图片&#xff0c;以及来进行图片设置。 background-color背景颜色background-image背景图片地址background-repeat是否平铺background-position背景位置background-attachment背景固定还是滚动背景的合写&#xff08;复合属性&…

将图片背景设置为透明的方法介绍

本文主要介绍使用 Windows 系统自带的“画图 3D”应用程序将图片背景设置为透明的具体方法。 1 需要的应用程序 Windows10 操作系统自带的“画图 3D”应用程序&#xff0c;如下图所示&#xff1a; 2 方法介绍 现有一张背景图为蓝色的 png 格式图片&#xff0c;如下图所示&am…

将图片背景处理为透明的方法步骤

将图片背景处理为透明的方法步骤 1 简单处理图片2 将背景设置为统一颜色3 将背景设置为统一颜色4 保存图片5 一些说明 将一张图片的背景处理成透明&#xff0c;是在工作生活中经常碰到的问题&#xff0c;这个问题的解决可以通过PS这个图像处理神器完成。对于这样的图片处理&…

面对996,程序员如何利用“碎片时间”涨薪?

图片来源|视觉中国 作为一个程序员&#xff0c;需要不断学习更新知识技能来提升自己。但爆炸式的信息量&#xff0c;总使人抓不到学习重点。 所以&#xff0c;笔者为大家筛选了几个程序员会阅读的小众公众号&#xff0c;覆盖全面&#xff0c;囊括了不同的技术类别。小道消息&am…

@程序员,对抗 996,你真的准备好了吗?

4 月 23 日是世界读书日&#xff0c;就在今天 CSDN 举办了码农读书节&#xff01;助力你的技术生涯&#xff01;让你实现歪道超车~全场所有 Python、Java书籍都参与满减活动&#xff0c;最高减 60 元哦&#xff01;今日购书可以领取无门槛优惠券&#xff0c;满减券优惠券可以叠…

国外程序员也都是996么?

996在中国其实算是常态&#xff0c;那国外也是嘛&#xff1f; 今天刷知乎的时候就看到某博主问出了很多人的心声 我在跟同事交流的时候也问过同样的问题&#xff0c;他之前接触过不少德国的工程师。基本了解他们的工作情况。 2010年那会说是失业严重&#xff0c;当时实行的是…

“996”程序员的一次反抗!!!

一、前言 2019年3月27日&#xff0c;一个名为996ICU的项目在GitHub上传开。在这个项目指向的域名页面上&#xff0c;发起人这样写到&#xff1a;“什么是996.ICU&#xff1f;工作996&#xff0c;生病ICU”。他将996工作制下最低72个工时与《劳动合同法》等条文对比&#xff0c…

程序员甘愿被“996”背后的真相 | 程序员有话说

作者 | 素年清时 出品 | 程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 如果人人都是富二代、官二代&#xff0c;有几个会选择做程序员&#xff0c;又有几个愿意留在原地甘愿被“996”呢&#xff01; 当“985”计算机硕士宋杰在校招时拿到国内寡头企业某为的 O…

程序员996与工地施工人员谁更累?

在网上看到一个问题&#xff1a;程序员996和工地施工的相比哪个累&#xff1f; 看到这个问题&#xff0c;我突然就想起自己一个在工地做沉降检测的朋友。借由他&#xff0c;我了解到沉降检测是一个需要精准测量下沉地面数据的工作&#xff0c;这份工作乍听起来似乎是一个应该在…

程序员没有那么多996!

你们上班是不是巨忙啊&#xff1f;你们是不是天天加班到很晚啊&#xff1f;你头发那么多真的是程序员吗&#xff1f; 不知道有木有程序员同学被问过这几个问题&#xff0c;有的话请评论区回1。反正我呢真的没少被问过这几个问题。今天&#xff0c;我们就来聊聊程序员的工作&am…