倾向得分匹配(Propensity Score Matching) 通俗解析及在Stata里的运用

转载: http://blog.sina.com.cn/s/blog_626867f30101h3ea.html


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

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

于是,我们引入“倾向得分匹配”这样一种研究方法。英文叫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查看所有可用的选项。

参考文献:

Propensity score matching

Help for psmatch2

你可能感兴趣的:(统计学)