psm的stata实现

因果推断——倾向性得分(PSM)-基于Stata操作分析 利用倾向性得分(PSM)计算平均因果效应(ATE)-Stata操作及分析 阅读详情

1. PSM 简介


在经济学中,我们通常希望评估某项公共政策实施后的效应,为此,我们构建 "处理组" 和 "控制组" 以评估「处理效应 (treatment effect)」。然而,我们的数据通常来自非随机的观察研究中,处理组和控制组的初始条件不完全相同,故存在「选择偏差 ( selection bias)」问题。「倾向得分匹配 (PSM)」法使用倾向得分函数将多维向量的信息压缩到一维,然后根据倾向得分进行匹配。这样可以在既定的可观测特征变量下,使得处理组个体和控制组个体尽可能相似,因而可以缓解处理效应的选择偏差问题。

匹配的思想如下:

假如某个体在处理组,为了找到对照,找至少一个其他各方面与该个体尽量相似但出于控制组的个体,这样两者就有可比性。

倾向得分匹配是指,找一个其他各方面与该个体尽量相似意味着要考虑两个个体的很多方面,让尽可能多的方面尽量相似,而高维匹配并不容易,因为维度越高找一个各方面相似的两个个体越难。为了解决这个问题,Rosenbaum and Rubin (1983)提出了倾向得分的概念。个体的倾向得分是指在个体情况一定的前提下,其进入处理组的概率。倾向得分用logit回归,选择尽可能多的协变量,也就是刚才说的“其他各方面”,类似于回归中的控制变量。计算倾向得分类似于一个降维的过程,把非常多的协变量维度降为一个维度,就是倾向得分,也就是倾向得分综合包含了所有协变量的信息。两个个体的倾向得分非常接近,并不意味着这两个个体的其他属性也接近,这不好判断。不过根据PSM的原理,倾向得分接近就够了,其他属性也接近更好。


2. PSM 的分析过程

2.1 PSM 模型设定


对于个体 ,根据是否进行某项处理可以分为两种结果:表示个体是否进行某项处理,即 1 表示处理,0表示未处理;
对于离散变量:

gen dv_dum=2 //dv是指变量,dv_dum是指生成自变量的二元变量。
replace dv_dum=0 if dv=0 
replace dv_dum=1 if dv=1

如果你的自变量本身就是标为0和1,这一步可以不用,但是如果标为1和2或者其他符号,一定要转换为0和1.

对于连续变量:
quantities dv, gen (dv_dum) nq(3)//根据分位数产生三个虚拟变量,也就是决定选择一个三分位数(上三分位或者下三分位数)为临界值。

replace dv_dum=0 if dv_dum==1
replace dv_dum=0 if dv_dum==2
replace dv_dum=1 if dv_dum==3    //意思是把自变量从小到大排列,最大的1/3作为较高的组,标为1,剩余较小的2/3作为较低的组,标为0.

2.2 PSM 一般步骤


选择协变量 :尽可能涵盖有影响的相关变量;
获取 PS 值:可以使用 probit 或 logit 模型估计;
检验平行假设是否满足:使得在匹配后的处理组均值和控制组均值较接近,保证数据平衡;
根据 PS值将处理组个体和控制组个体进行配对:匹配的方法有最近邻匹配、半径匹配、核匹配等;
根据匹配后样本计算 ATT 。


3. PSM 的 Stata 实例

ssc install 
倾向匹配得分模型 PSM 及 Stata 具体操作步骤 通过估计个体接受某种处理(例如参与某个项目、接受某种治疗等)的概率,即倾向得分,然后基于倾向得分对处理组和对照组进行匹配,以构建类似于随机实验的样本,从而使得处理组和对照组在可观测特征上具有可比性。然而,在实际应用中,需要谨慎选择协变量、匹配方法,并进行充分的稳健性检验,以确保分析结果的可靠性和有效性。此外,Hirano 和 Imbens(2001)对 PSM 的理论和应用进行了深入的探讨,进一步完善了该方法的理论框架。回归模型会输出各个协变量的系数,这些系数反映了协变量对个体接受处理的概率的影响程度。 阅读详情

相关推荐

学习:PSM倾向得分匹配基于stata实现

PSM 通过统计学模型计算每个观测的每个协变量的综合倾向性得分,再按照倾向性得分是否接近进⾏匹配。用直白的话来讲就是:由于变量太多,如果坚持各个变量一一精确匹配,那估计匹配下来没几个样本能一一匹配得上了。那不如直接用倾向得分,根据影响是否接受培训的各个元素,将每个用户计算出一个是否接受培训得分,从而将多维向量的信息压缩到一维,最后根据倾向得分进行匹配。PSM倾向得分匹配法即通过对实验组样本建模,通过预测概率,为控制组每个用户拟合⼀个概率,每⼀个处理组样本在控制组找到⼀个和⾃⼰最接近的样本。

王斯的博客 3840

PSM-DID:一个简明教程

本文为简明PSM-DID教程,适合初学者。本文首先简述PSM和DID的原理,最后讲如何实际操作,附有stata代码。

weixin_53607801的博客 2万+

实战指南:利用Stata实现PSM倾向得分匹配的完整流程

本文提供了一份利用Stata软件实现PSM倾向得分匹配的完整实战指南。详细解析了从理解PSM原理、数据准备、Logit模型估计倾向得分,到执行匹配、检验平衡性与分析结果的全流程,并分享了常见陷阱与进阶技巧,帮助研究者有效解决观察性研究中的选择偏差问题。

weixin_28396629的博客 334

计量分析避坑指南:CEM、PSM、GPSM方法对比与Stata实现

本文深入对比了CEM、PSM与GPSM三种主流计量匹配方法,旨在解决实证研究中的内生性问题。文章详细剖析了各方法的核心逻辑、适用场景与常见陷阱,并提供了完整的Stata实现代码与操作指南,帮助研究者在政策评估与因果推断中构建更稳健的分析框架。

weixin_29253711的博客 111

如何用stata做倾向性得分匹配(PSM)的命令以及详细步骤 案例解释.rar

有关如何用stata做倾向性得分匹配的命令以及详细步骤,还有案例解释 基本上看完这些资料就可以自己做了

高速DAC时钟与配置实战:DAC5681Z硬件设计与寄存器编程详解

在高速数据转换系统中,时钟信号是决定系统性能的核心要素,其稳定性和纯净度直接影响数模转换器(DAC)的输出频谱纯度与动态范围。时钟电路的设计原理涉及信号完整性、阻抗匹配与直流偏置,而内部锁相环(PLL)和延迟锁相环(DLL)的配置则是实现精确时序控制的关键技术。这些技术的价值在于,它们共同保障了高速通信、雷达和任意波形生成等应用对信号实时性与精度的严苛要求。本文聚焦于德州仪器(TI)的DAC5681Z,深入解析其外部时钟输入电路的硬件设计要点,包括端接电阻的计算与选型,并详细拆解通过串行外设接口(SPI)对

weixin_30342363的博客 180

别再买错磁铁了!手把手教你为TLE5012B/AS5047等磁编码器选配和安装径向充磁磁铁

本文详细解析了为TLE5012B/AS5047等磁编码器选配和安装径向充磁磁铁的关键要点。从充磁方向的物理本质到供应商沟通技巧,再到安装工艺的黄金法则,帮助工程师避免常见错误,确保磁编码器稳定工作。特别强调了径向充磁的重要性及验证方法,并提供了尺寸选择、温度特性和抗干扰设计的实用建议。

weixin_26750481的博客 310

PSIM联合VS--C++实现正弦波发生

在利用VS联合PSIM仿真中,想要用VS构建一个正弦波发生模块。可以利用Sin函数进行编写,重点是需要编写一个计数器程序。首先打算用for循环语句来构建计数器,但在for循环运行时无法跳出,不能实时获得计数器的值。同理,while循环也无法实现。最后将count变量设置为static型,解决了这一问题。 体现出对于c++程序的运行不够了解,需要多进行程序的编写和调试。 //时钟计数器 static int count = 0; count++; if (count > Sinfre)

weixin_41850228的博客 1081

【MCU开发规范】:车载MCU开发规范

车载MCU开发规范

1044

pdf.js 移动端手势缩放功能实现与原生事件集成

本文详细解析了如何为pdf.js的viewer.html移动端页面实现流畅的双指捏合手势缩放功能。通过深入分析pdf.js的缩放机制,并利用原生触摸事件(touchstart、touchmove、touchend)进行集成,在不修改核心源码的前提下,为用户提供媲美原生应用的顺滑缩放体验,有效提升了移动端PDF阅读的专业性和用户满意度。

brandy的博客 483

【MATLAB代码】UKF组合导航例程,15维状态量、3维观测量。附完整的代码,有中文注释、误差输出图像

摘要 本文提出了一种基于15维误差状态模型的UKF组合导航算法,实现了三维位置、速度和姿态的高精度估计。算法采用严格的误差状态模型,包含位置(3)、速度(3)、姿态(3)、陀螺偏差(3)和加速度计偏差(3)共15个状态量,通过3维GNSS位置观测进行校正。仿真结果表明,相比纯IMU积分,UKF算法能有效抑制误差积累,显著提高导航精度。文中提供了完整的MATLAB源代码,可直接运行并复现三维轨迹对比、位置/速度曲线及误差分析结果。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 301

软件设计师---UML

软件设计师---UML

我从不打没有准备的仗! 1万+

SAP-ABAP:新手入门篇——从0到1写出你的第一个ABAP Hello World程序并完成调试运行

本文是ABAP开发入门指南,详细介绍如何创建并运行第一个"Hello World"程序。主要内容包括:通过SE38事务码进入ABAP编辑器;创建以Z/Y开头的程序并保存为本地对象;编写简单的WRITE输出语句;完成语法检查、激活和执行流程;以及初步体验调试功能。文章特别强调ABAP开发的规范要求,如程序命名规则、激活与保存的区别等,并提供了详细的步骤说明和常见问题提示,帮助零基础开发者快速上手ABAP编程。

baidu_35680696的博客 474

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 多时点DID
下一篇: 机器学习实现文本分类
celine0227
博客等级 码龄6年 314粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值