查看原文
其他

玩转Stata | 倾向得分配对(PSM)内生性检验利器

Stata成长服务部 会计学术联盟 2023-02-24




青年会计学者联合发起会计领域NO.1高端自媒体


点击:高层次会计人才招聘免费推送!


传播会计前辈思想,引领青年一代成长

因缘分相聚,因互助成长,因智慧光华


 倾向匹配分析(Propsensity matching analysis)

 在经济学中,我们常常希望评估项目实施后的效应,一般的做法是加入虚拟变量,但是这种做法并不科学。例如政府推行就业培训计划,该项目的参与者,我们将其称作处理组(treatment  group),未参与的培训的样本称作控制组(control group)也叫对照组。

       考虑就业培训的处理效应评估。我们一般的做法是比较两组的收入状况。如果这样处理,可能得到的结论是参加培训的收入低于未参加培训者。这是由于一开始选择控制组的样本时,选择范围比较广阔,存在选择偏差。所以在此介绍倾向得分匹配方法(PSM)。本文在此就不介绍相关理论了,因为小编的理论也不是特别的好,如果想学习的可以参阅连玉君老师的相关视频(重点推介),大概有5个课时;同时也可以参考陈强老师的《高级计量经济学及stata应用》中的第28章处理效应。在此小编仅仅介绍stata的相关操作。





         1、安装psmatch2

          ssc install psmatch2,replace

         2、导入数据,方法比较多,可以粘贴复制、也可以使用命令

          use E:\BaiduNetdiskDownload\A\labor.dta,clear

         3、命令语法格式介绍

         psmatch2 D x1 x2 x3 ,outcome(y)  logit  ties  ate common odds  ///                          pscore(varname)  qui

        对以上的标准命令进行解析

        D为处理变量,是虚拟变量即是否参加培训

        x1 x2 x3是协变量,一般的称呼也叫解释变量

        outcome(varname)是输出变量,例如收入

        logit 表示计算得分的时候使用logit模型,如果不写Logit,默认为probit模型计算得分,在连玉君的视频中论述了二者并不存在明显的差异。

       ties表示包括所有倾向得分相同的并列个体,默认按照数据排序选择其中一位个体。

      ATE表示同是汇报ATE、ATU、ATT,大家看书重点了解

      common表示仅对共同取值范围内的个体进行匹配

      odds使用几率比(odds ratio)算法为p/(1-p),熟悉logit模型的应该了解

      qui屏幕中不显示logit模型估计过程,可以节省运算时间

      4匹配方法

      连玉君的视频教程讲了三种:最近0匹配、半径匹配、核匹配;陈强老师讲了6种,如果想详细学习,可以参考他们的相关视频与书籍。

     5检验

      匹配倾向得分主要有平行假定和共同假定,主要是通过相关图表进行展示,个人建议重点参考连玉君老师的视频,相对比较完整。这一部分的东西相对比较多,小编在此也不一一进行整理。


为什么做倾向得分匹配

        在卫生领域,随机临床试验(RCT)是应用随机实验法最典型的例子。为了证明某种处理(或因素)的作用,将研究对象随机分组并进行前瞻性的研究,可以最大程度上确保已知和未知的混杂因素对各组的影响均衡,阐明处理因素的真实效应。但RCT对研究对象严格的纳入和排除标准,无疑会影响研究结果的外推,同时费用和组织困难问题很多时候都是让人难以承受的。此外,很多研究问题无法做到随机,甚至有些情况下的随机是违反伦理道德的。

        而非随机对照研究(如观察性研究和非随机干预研究)能够较好地耐受RCT中存在的问题,在实际应用中更为广泛。如何利用非随机化研究的资料探究因果,一直是流行病学和统计学研究中非常关注的问题。传统的控制混杂的方法如分层、匹配等控制的混杂因素有限,多因素分析的方法在概念上“控制了其他因素,探究某一因素的影响”,依然无法控制混杂因素所导致的偏性。在这种情况下,倾向值分析(Propensity score analysis)的理论和实践不断丰富,并在流行病学、经济学、社会科学等领域得到广泛应用。

        举一个简单的例子。我们常认为重点学校的对于学生学习能力的提升是优于一般学校的。如果把学校类型视为处理因素,而结局指标为入学后成绩的改变量。那么不同学校间学生成绩改变量的差异,究竟是因为学校不同(处理因素,简单理解为师资、设施等条件的综合),还是因为考入重点学校的学生,本身就比一般学校的学生更聪明,更勤奋,家长的受教育水平更高,对教育的投资更大(混杂因素)?如果控制这些混杂因素以后,学校对成绩的影响,是否就会发生很大变化?学生进入何种学校学习(接受不同处理)的概率是不同的,受到了很多因素的影响,而这些因素同时可能也会影响结局,导致分析处理效应时的偏性。

        倾向值就是研究的个体在一定可观测到的协变量(混杂)存在的情况下,接受某种干预的可能性。而倾向评分析,就是利用倾向值从对照组中为处理组中的每个个体寻找一个或多个背景特征相同或相似的个体作为对照,使两组的混杂因素的分布也趋于均衡,实现类似于随机化设计中的随机分配干预的目的。


倾向得分匹配步骤

经典的倾向值分析主要包括以下3步(上图来自推荐书目1,P85)


1. 寻找最佳的协变量,构建估计倾向值的模型。

        模型的因变量为是否接受处理,自变量通常是同时影响处理因素和结局的变量(混杂),或是在干预组和对照组之间分布不均衡的变量。倾向值的模型以logistic回归模型最为常见,构建理想的倾向值模型和以是否接受处理为因变量,找到最恰当的自变量组合的logistic回归其实在原理上几乎是完全一致的。模型系数的假设检验、拟合度、逐步法筛选变量等,此外,一种较新的自动选择的算法一般加速建模(GBM)法也可用于选择变量和构建模型。

        通过构建的模型,可以计算出每个研究对象的倾向值评分,它代表了研究对象接受处理的可能性。因此,具有相同倾向值的研究对象,在模型中的协变量是均衡可比的(而并非取值上完全一致)。

2. 匹配

        根据倾向值的结果,从对照组中选择1:M个倾向值接近的个体与处理组匹配。如果处理组和对照组在协变量的分布上差别较大,则倾向值的分布也会差别较大,所以有了共同支持域(common support)的概念(下图,推荐书目1,P97)。共同支持域可以理解为处理组和对照组倾向值得分相同的范围,在共同支持域内的进行匹配,可能两组间协变量的分布更均衡(涉及到算法的选择和设置等问题)。匹配的算法有有Nearest Neighbor Matching(最邻近匹配)、Full matching(完全匹配)、精确匹配(Exact Match)、Optimal matching(最优匹配)等。其中Nearest Neighbor Matching 和Optimal matching较为常用。不同算法各有优劣,实际应用中一般选择可以使匹配后的处理组和对照组协变量均衡,且研究对象丢失不多的算法。

3. 匹配后分析

        包括分层分析和多元分析等,不同研究采用的方法差别较大,可参照和自己方向类似的文献。


倾向得分匹配命令

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


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


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


1. 所以第一步,我们要对总体样本执行probit或者logit模型,然后估计出每一个观测对象读研究生的概率是多少。以probit模型为例,在stata中,执行以下命令:

probit [dependent var] [independent var]

其中,[dependent var]是一个0或1的二进制变量,1代表该对象读了研究生,否则是0。

2. 对每一个观测值,我们根据估计出来的probit模型,算出他读研究生的概率是多少。Stata中,执行如下命令:

predict pscore, p

其中,pscore是定义的记录每个观测对象概率的变量名称。

3. 使用psmatch2命令,让Stata帮你对于每个读了研究生的观测对象,找出一个与之具有最接近的概率值的,可是没有读研究生的观测对象:

psmatch2 [dependent var], pscore(pscore) noreplacement

其中,(pscore)是在第二步中生成的那个记录对象概率的变量,noreplacement是一个选项,使得任何读了研究生的观察对象的对照对象都具有唯一性,换言之,只能1对1匹配。

4. Stata会在你的数据中自动添加几个变量,其中_id是自动生成的每一个观测对象唯一的ID;_treated表示某个对象是否读了研究生,如果读了,_n表示的是他被匹配到的对照对象的_id;_pdif表示一组匹配了的观察对象他们概率值的差。

做好了这些,你就完成了一个最简单的1对1的倾向得分匹配。psmatch2还提供多种匹配方法,比如在一定的半径范围内的临近匹配、在一定概率阀值内的全部匹配等等。具体的可以在Stata中输入help psmatch2查看所有可用的选项。


倾向得分匹配的理论框架


倾向得分匹配的理论框架是“反事实推断模型”。“反事实推断模型”假定任何因果分析的研究对象都有两种条件下的结果:观测到的和未被观测到的结果。如果我们说“A是导致B的原因”,用的就是一种“事实陈述法”。而“反事实”的推断法则是:如果没有A,那么B的结果将怎样(此时,其实A已经发生了)?因此,对于处在干预状态(treatment condition)的成员而言,反事实就是处在控制状态(condition of control)下的潜在结果(potential outcome);相反,对于处在控制状态的成员而言,反事实就是处在干预状态下的潜在结果。显然,这些潜在结果是我们无法观测到的,也就是说,它们是缺失的。



PSM的步骤

  1. 计算倾向值(采用logistic回归)

  2. 进行得分匹配

    得分匹配的几种方法:

    (1)最邻近匹配(Nearest neighbor matching, NNM)(是否使用卡尺 with or without caliper)

    以倾向得分为依据,在控制组样本中向前或向后寻找最接近干预组样本得分的对象,并形成配对。

    (2)半径匹配(Radius matching)

    设定一个常数r(可理解为区间或范围,一般设定为小于倾向得分标准差的四分之一),将实验组中得分值与控制组得分值的差异在r内的进行配对。

    (3)核匹配(Kernel Matching)

    将干预组样本与由控制组所有样本计算出的一个估计效果进行配对,其中估计效果由实验组个体得分值与控制组所有样本得分值加权平均获得,而权数则由核函数计算得出。

  3. 评定匹配后的平衡性

  4. 计算平均干预效果(ATT)

  5. 进行敏感性分析

文献推送





        倾向值分析方法相对较新,近年来很多方法也发展迅速,本文只对起源和主要步骤进行介绍。在模型和算法选择,匹配后处理等方面有诸多细节,有需要的可以参照下列书目。

 1.《倾向值分析:统计方法与应用》

    对倾向值分析的起源、原理、应用和示例做了详细的介绍,并提供了数据和软件代码(Stata)。该书为译文,英文著作已在2014年推出第版《Propensity Score Analysis: Statistical Methods and Applications 2nd Edition》,对新的方法进行了更新,内容也更丰富,应该是目前关于倾向值分析最详细的教材。第二版的数据和代码见:http://ssw.unc.edu/psa/home

2. Randolph J J, Falbe K, Manuel A K, et al. A Step-by-StepGuide to Propensity Score Matching in R.[J]. Practical Assessment Research & Evaluation, 2014, 19.

        R软件MatchIt包的简易教程,对结果的讲解较详细,可实现常用倾向值分析的功能。

3. MatchIt: Nonparametric Preprocessing for Parametric Causal Inference

        R软件MatchIt包教程的详细版,对参数设置和原理进行了解释,并提供操作的语法示例。

4. 黄福强,杜春霖,孙梦辉,等. 倾向评分配比在SPSS软件上的实现[J]. 南方医科大学学报,2015,(11):1597-1601.


“会计学术联盟”旗下优质社群推荐

“玩转Stata微信社群(470人)”欢迎加入!


欢迎热爱Stata的发烧友,加入“会计学术联盟—玩转Stata群2,加群请联系小秘书微信:zhanghuialina



  • 填加好友主题:称呼+专业+学历/职称

  • 请注明需要加的微信群!

  • 信息不对外公开!


欢迎邀请与本群文化相匹配的正能量,积极向上的,又好玩的同仁入群!


玩转Stata微信群


20171221


▼点击查看更多精彩

玩转stata:分组回归的秘密武器-statsby

玩转Stata|巧用Stata进行主成分分析


综合整理自:计量经济学、田田说公众号

欢迎分享转发朋友圈

1

Stata与实证会计论文学习试听

https://v.qq.com/txp/iframe/player.html?vid=x1328vthei3&width=500&height=375&auto=0

2

学习试听(1.5倍加速播放版)

https://v.qq.com/txp/iframe/player.html?vid=y1328h9ij7s&width=500&height=375&auto=0


更多stata学习资料

欢迎点击左下方阅读原文





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存