stata 倾向得分匹配操作

article/2025/6/30 11:00:57

倾向得分匹配法是一种研究方法,它在研究某项治疗、政策、或者其他事件的影响因素上很常见。对于经济、金融学领域来说,比如需要研究某个劳动者接受某种高等教育对其收入的影响,或者比如研究某个企业运用了某项管理层激励措施以后对企业业绩的影响。如果我们简单地将是否执行了某项时间作为虚拟变量,而对总体进行回归的话,参数估计就会产生偏误,因为在这样的情况下,我们只观察到了某一个对象他因为发生了某一事件后产生的表现,并且拿这种表现去和另一些没有发生这件事情的其他对象去做比较。这样的比较显然是不科学的,因为比较的基础并不同。

通俗地说,我们真正要做的是考虑,如果拿小明来说,小明读了研究生和小明没有读研究生,他的收入会差多少?可是小明已经读了研究生,我怎么才能估计出他要是不读研究生,他的收入会是多少呢?

于是,我们引入“倾向得分匹配”这样一种研究方法。英文叫Propensity Score Matching。这种方法能让我们从一大堆没有参加培训的人群中(也就是我们的总体样本的一个子集),对每个人读研究生的概率进行估计,然后选出和小明具有非常相似的去读研究生的概率,可是没有去读的同学小刚——作为小明的对照,然后再来看他们的区别。当样本中的每个研究生”小明“都找到了匹配的非研究生”小刚“,我们便能对这两组样本进行比较研究了。

下面以陈强高级计量经济学及stata应用书中的例子来实现倾向得分匹配的应用,该案例研究参加就业培训是否能显著提高实际收入。数据附文后(百度网盘提取)

    ssc install psmatch2,replace  *安装倾向得分匹配命令包cd "C:\Users\Administrator\Desktop\stata work" *设置工作路径use ldw_exper.dta,clear    *读取数据(数据放在工作路径)reg re78 t,r    *做一元线性回归作为参照  (re78表示1978年实际收入,t是否参加培训)

在这里插入图片描述

*在未控制任何协变量的情况下,平均处理效应为1.794,即参加培训的平均比没有参加培训的收入高1.794千美元

 reg re78 t age educ black hisp married re74 re75 u74 u75,r

*age为年龄,educ为教育年限,black为是否黑人,hisp是否拉丁裔,married(是否已婚),re74,re75表示1974年,1975年实际收入,u74,u75表示1974年,1975年是否失业

在这里插入图片描述
*加入协变量后,处理效应略有下降,1.672和之前比变化不大,协变量中黑人和教育显著,其它不显著

*下面进行一对一匹配

 psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) n(1) ate ties logit common

t为处理变量,后面均为协变量,re78为结果变量,logit来估计结果,ties表包括所有倾向得分相同的并列个体,ate表同时汇报ATE,ATU,ATT,common表示仅对共同取值范围内个体
*进行匹配

在这里插入图片描述

结果显示,ATT=1.41,t=1.68小于临界值,不显著ATE,ATU类似。Unmatched表示不匹配的结果,和一元回归结果一样,最下面显示控制组有11个不在共同范围内,处理组有2个不*在共同范围,其余432个均在范围内

*考虑自助法估计标准误

set seed 2019
bootstrap r(att) r(atu) r(ate),reps(500):psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) n(1) ate ties logit common

在这里插入图片描述

*下面使用pstest来考查匹配结果是否较好平衡了数据

quiet psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) n(1) ate ties logit common
pstest age educ black hisp married re74 re75 u74 u75,both graph

在这里插入图片描述
在这里插入图片描述

*下面画条形图来显示倾向得分匹配的共同取值范围

psgraph

在这里插入图片描述

*从上图可以直观看出,大多数均在共同取值范围内(on support),匹配时仅会损失少量样
*本

*下面进行k近邻匹配,令k=4,节省空间,采用quietly省去结果的汇报

psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) n(4) ate ties logit common quietly

在这里插入图片描述
*上表显示,一对四匹配和一对一匹配类似,下面进行卡尺内一对四匹配,首先计算倾向得分的标准差,乘以0.25

在这里插入图片描述

sum _pscore
dis 0.25*r(sd)

0.01979237

*由此可知0.25倍的标准差约等于0.02,将卡尺范围定为0.01,对倾向得分相差1%的观测
*值进行一对四匹配

psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) n(4) cal(0.01) ate ties logit common quietly

在这里插入图片描述

*上表显示,大多数一对四匹配发生在卡尺0.01范围内,不存在太远的近邻,进行半径(卡尺)匹配

psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) radius cal(0.01) ate ties logit common quietly

在这里插入图片描述

*匹配结果依然类似,下面进行核匹配

psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) kernel ate ties logit common quietly

在这里插入图片描述

*结果依然类似,进行局部线性回归匹配(使用默认核函数与带宽)

psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) llr ate ties logit common quietly

在这里插入图片描述

*上表未汇报ATT标准误,采用自助法得到标准误

set seed 2019
bootstrap r(att) r(atu) r(ate),reps(500):psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) llr ate ties logit common quietly

在这里插入图片描述

*根据上表自助标准误,对平均处理效应的三种度量均至少在5%水平上显著
*下面进行条匹配(同样使用自助法),先安装一个非官方命令spline

findit snp7_1
set seed 2019
bootstrap r(att) r(atu) r(ate),reps(500):psmatch2 t age educ black hisp married re74 re75 u74 u75,outcome(re78) spline ate ties logit common quietly

在这里插入图片描述

*估计结果仍然类似,总之,以上各匹配得分结果显示,参加就业培训的平均处理效应为正,在经济意义和统计意义上均显著
*最后进行马氏匹配,计算异方差稳健标准误

psmatch2 t, outcome(re78) mahal(age educ black hisp married re74 re75 u74 u75) n(4) ai(4) ate 

在这里插入图片描述
*分析结果类似,证实上述结果非常稳健

链接:https://pan.baidu.com/s/18pReupZyZQpS2Wfxe1GV1A
提取码:wuih
本操作使用的数据请从百度云盘提取


http://chatgpt.dhexx.cn/article/6kZaWASV.shtml

相关文章

倾向得分匹配(PSM)的原理以及应用

该文章主要介绍倾向得分匹配(PSM, Propensity Score Matching)方法的原理以及实现。这是一种理论稍微复杂、但实现较为容易的分析方法,适合非算法同学的使用。可用于(基于观察数据的)AB实验、增量模型搭建等领域。 文章…

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

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

Android设置图标背景透明

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

如何设置背景透明度

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

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

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

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

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

dialog设置背景透明

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

Flutter bottomNavigationBar背景透明

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

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

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

qt实现窗口背景透明

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

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

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

winform label背景透明

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

9.CSS 背景(background)

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

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

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

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

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

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

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

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

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

国外程序员也都是996么?

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

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

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

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

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