psm倾向得分匹配法(倾向性评分匹配)

原标题:一文读懂倾向得分匹配法(PSM)举例及stata实现(一)一、倾向匹配得分应用之培训对工资的效应政策背景:国家支持工作示范项目(NationalSupportedWork,NSW)研究目的:检验接受该项目(培训)与不接受该项目(培训)对工资的影响。基本思想:分析接受培训组(处理组,treatmentgroup)接受培训行为与不接受培训行为在工资表现上的差异。但是,现实可以观测…

大家好,又见面了,我是你们的朋友全栈君。

原标题:一文读懂倾向得分匹配法(PSM)举例及stata实现(一)

一、倾向匹配得分应用之培训对工资的效应

政策背景:国家支持工作示范项目( National Supported Work,NSW )

研究目的:检验接受该项目(培训)与不接受该项目(培训)对工资的影响。基本思想:分析接受培训组(处理组, treatment group )接受培训行为与不接受培训行为在工资表现上的差异。但是,现实可以观测到的是处理组接受培训的事实,而处理组没有接受培训会怎样是不可能观测到的,这种状态也成为反事实( counterfactual )。

匹配法就是为了解决这种不可观测事实的方法。在倾向得分匹配方法( Propensity Score Matching )中,根据处理指示变量将样本分为两个 组,一是处理组,在本例中就是在 NSW 实施后接受培训的组;二是对照组 ( comparison group ),在本例中就是在 NSW 实施后不接受培训的组。倾向得分 匹配方法的基本思想是,在处理组和对照组样本通过一定的方式匹配后,在其他 条件完全相同的情况下,通过接受培训的组(处理组)与不接受培训的组(对照 组)在工资表现上的差异来判断接受培训的行为与工资之间的因果关系。

注:本例节选自 Cameron&Trivedi 《微观计量经济学:方法与应用》(中译本,上海财经大学出版社, 2010 ) pp794-800 所有数据及程序均来自于本书的配套网站( http://cameron.econ.ucdavis.edu/mmabook/mmaprograms.html )。

二、变量介绍

psm倾向得分匹配法(倾向性评分匹配)

描述性分析

tabulate t, summarize(re78) means standard

psm倾向得分匹配法(倾向性评分匹配)

三、倾向匹配得分操作

psm倾向得分匹配法(倾向性评分匹配)

psm倾向得分匹配法(倾向性评分匹配)

数据介绍 :Data used by Lalonde (1986)We are interested in the possible effect of participation in a job training program on individuals earnings in 1978This dataset has been used by many authors ( Abadie et al. 2004,Becker and Ichino, 2002, Dehejia and Wahba, 1999).

psm倾向得分匹配法(倾向性评分匹配)

psm倾向得分匹配法(倾向性评分匹配)

psm倾向得分匹配法(倾向性评分匹配)

psm倾向得分匹配法(倾向性评分匹配)

psm倾向得分匹配法(倾向性评分匹配)

psm倾向得分匹配法(倾向性评分匹配)

四、详细介绍

set seed 20180105 //产生随机数种子

gen u=runiform

sort u //排序

或者order u

上述命令是为了生成伪随机数,满足01的均匀分布

localv1 “t”

localv2 “age edu black hisp married re74 re75 u74 u75”

globalx “`v1′ `v2′ “

psmatch2 $x, out(re78) neighbor(1) ate ties logit common // 1:1 匹配

$表示引用宏变量,

psmatch2 $x, out(re78) neighbor(1) ate ties logit common // 1:1 匹

等价于

psmatch2 t age edu black hisp married re74 re75 u74 u75, out(re78) neighbor(1) ate ties logit common

psm倾向得分匹配法(倾向性评分匹配)

psm倾向得分匹配法(倾向性评分匹配)

下面用pstest查看匹配效果是否较好的平衡了数据

psmatch2 tage edu black hisp married re74 re75 u74 u75, out(re78) neighbor(1) ate ties logit common // 1:1 匹

pstest age edu black hisp married re74 re75 u74 u75, both graph

psm倾向得分匹配法(倾向性评分匹配)

psm倾向得分匹配法(倾向性评分匹配)

psgraph

psm倾向得分匹配法(倾向性评分匹配)

五、PSM命令简介

Stata does not have a built-in command for propensity score matching, a non-experimental method of sampling that produces a control group whose distribution of covariates is similar to that of the treated group. However, there are several user-written modules for this method. The following modules are among the most popular:

Stata没有一个内置的倾向评分匹配的命令,一种非实验性的抽样方法,它产生一个控制组,它的协变量分布与被处理组的分布相似。但是,这个方法有几个用户编写的模块。以下是最受欢迎的模块(主要有如下几个外部命令)

psmatch2.ado

pscore.ado

nnmatch.ado

psmatch2.ado was developed by Leuven and Sianesi (2003) and pscore.ado by Becker and Ichino (2002). More recently, Abadie, Drukker, Herr, and Imbens (2004) introduced nnmatch.ado. All three modules support pair-matching as well as subclassification.

You can find these modules using the .net command as follows:

net search psmatch2

net search pscore

net search nnmatch

You can install these modules using the .ssc or .net command, for example:

ssc install psmatch2, replace

After installation, read the help files to find the correct usage, for example:

help psmatch2

上述主要介绍了如何获得PSM相关的命令,总结一下目前市面上用的较好的命令为psmatch2.

PSM 相关命令

help psmatch2

help nnmatch

help psmatch

help pscore

持续获取最新的 PSM 信息和程序

findit propensity score

findit matching

psmatch2 is being continuously improved and developed. Make sure to keep your version up-to-date as follows

ssc install psmatch2, replace

where you can check your version as follows:

which psmatch2

语法格式

help psmatch2

psmatch2 depvar [indepvars] [if exp] [in range] [, outcome(varlist)

pscore(varname) neighbor(integer) radius caliper(real)

mahalanobis(varlist) ai(integer) population altvariance

kernel llr kerneltype(type) bwidth(real) spline

nknots(integer) common trim(real) noreplacement

descending odds index logit ties quietly w(matrix) ate]

where indepvars and mahalanobis(varlist) may contain factor variables;

see fvvarlist.

psmatch2 D x1 x2 x3, outcome(y)

pscore(varname) neighbor(integer) radius caliper(real)

mahalanobis(varlist) ai(integer) population altvariance

kernel llr kerneltype(type) bwidth(real) spline

nknots(integer) common trim(real) noreplacement

descending odds index logit ties quietly w(matrix) ate]

核匹配 (Kernel matching)

其他匹配方法

广义精确匹配(Coarsened Exact Matching) || help cem

局部线性回归匹配 (Local linear regression matching)

样条匹配 (Spline matching)

马氏匹配 (Mahalanobis matching)

◆◆◆◆

点击上图查看:

Stata寒假研讨班_2020年1月15日——1月18日_第14届“高级计量经济学及stata应用”研讨班@北京专场返回搜狐,查看更多

责任编辑:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128527.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 必知必会 RabbitMQ面试题 33道(附答案)「建议收藏」

    必知必会 RabbitMQ面试题 33道(附答案)「建议收藏」点击关注公众号,回复000获取优质资料前言大家好,我是老田。今天我们来分享RabbitMQ消息队列。其中,MQ(MessageQueue)翻译过来就是消息队列的意思。RabbitMQ…

  • Python生成随机数矩阵_Python生成50个随机数

    Python生成随机数矩阵_Python生成50个随机数生成随机数使用random模块random.random()用于随机生成一个0到1的浮点数random.randint(start,stop)随机生成[start,stop]区间内的整数代码示例:importrandomprint(random.random())print(random.randint(2,5))输出结果:0.281138941702427152…

  • 销售思路与销售策略_量化投资策略

    销售思路与销售策略_量化投资策略真格量化入门课程——①量化策略思路入门

  • Linux防火墙管理

    Linux防火墙管理Linux防火墙管理防火墙类似于一个安全卫士管家,它能对你访问别人电脑,别人访问你的电脑,进行拦截并处理,有的阻止,有的放行,有的转发。​在默认情况下,Linux系统的防火墙状态是打开的,已经启动,CentOS7默认使用的是firewall作为防火墙。用户根据需求在/etc/sysconfig/firewalld配置文件中来配置防火墙,控制本机的“出、入”网络访问行为,其对行为的配置…

  • oracle declare多个变量_赋值

    oracle declare多个变量_赋值方法1:declare@aint=4declare@bvarchar(100)=’testsql’方法2:declare@aint,@bvarchar(100)set@a=4set@b=’sqltest’方法3:declare@aint=t,@bvarchar(100)=’sqltest’个人感觉方法3好用,减少冗余~~~…

  • java连接MQTT服务器(Springboot整合MQTT)

    java连接MQTT服务器(Springboot整合MQTT)目录一、业务场景二、本文只讲解java连接MQTT服务器进行数据处理一、业务场景硬件采集的数据传入EMQX平台(采用MQTT协议),java通过代码连接MQTT服务器,进行采集数据接收、解析、业务处理、存储入库、数据展示。MQTT是基于发布(Publish)/订阅(Subscribe)模式来进行通信及数据交换的。二、本文只讲解java连接MQTT服务器进行数据处理…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号