面板PSM+DID如何做匹配?

发布时间:2021-03-30 阅读 6139

Stata连享会   主页 || 视频 || 推文 || 知乎

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

编者:展一帆 (复旦大学)
邮箱simonzhanyf@163.com

编者按:本文主要摘译自下文,特此致谢!
Source: 谢申祥, 范鹏飞, 宛圆渊. 传统PSM-DID模型的改进与应用[J]. 统计研究, 2021, 38(02):146-160. -Link-


目录


1. 问题背景

近年来,经济学研究出现了 “自然实验化” 的趋势,相关计量经济学模型也得到了快速发展。其中,倾向得分匹配-双重差分模型 (以下简称 PSM-DID) 作为有力的政策分析工具更是被广泛使用。

PSM-DID 模型是由倾向得分匹配模型 (Propensity Score Matching,以下简称 PSM) 和双重差分模型 (Differences-in-Differences,以下简称 DID) 结合而成。其中,PSM 负责为受处理的个体筛选对照个体,DID 负责识别政策冲击所产生的影响。

然而,二者在适用范围方面并不相同,即 PSM 模型适用于截面数据,而 DID 模型适用于面板数据。传统基于面板数据转化为截面数据再匹配的方案和基于面板数据逐期匹配的方案,都容易产生 “自匹配” 现象或匹配对象在政策前后不一致的问题。

为此,本文将阐述 PSM-DID 模型在应用中出现的问题,并探究这些问题出现的原因。在此基础上,本文也将提出一种可行的改进方案。

2. 应用中的问题和原因

PSM 适用于截面数据,而 DID 适用于面板数据。针对二者适用范围不同的问题,学者们一般有两种解决方案:

  • 一是将面板数据直接转化为截面数据进行处理;
  • 二是在面板数据的每期截面上进行逐期匹配。

2.1 “自匹配” 问题

将面板数据直接转化为截面数据处理,会产生不同期样本匹配的问题,这使得最终的识别结果中掺杂了大量时间趋势信息。

以图 2 为例,将面板数据划分为 (a)、(b)、(c)、(d) 四种结构类型。其中,(a) 和 (b) 属于平衡面板数据,并且 (b) 更为特殊,其处理组和对照组都是平衡面板数据,本文称之为 “双平衡” 面板数据。(c) 和 (d) 是 (a) 和 (b) 存在部分数据缺失的情况,均属于非平衡面板数据。

在 (a) 类数据结构下,个体 i 存在不同时期分别属于处理组和对照组的情况。如果将面板数据直接转化为截面数据,并采用 “1:1 最近邻” 的匹配方式,处理组 i3 和 i4 都将会以极大的概率与对照组 i2 匹配在一起。这是因为与现在的个体 i 最相似的必然是过去 (或未来) 的个体 i,本文将这种个体自身不同时期之间相互匹配的情况称之为 “自匹配” 现象。上述现象将会造成较为严重的匹配偏误,具体理由如下:

识别结果 (ΔΔy) 是原受处理个体结果变量 y 的直接相减。如果 y 存在明显的时间趋势,且出现 “自匹配” 现象的个体较多,则识别结果中必然掺杂着大量时间趋势信息,这种情况类似于时间序列分析中的 “伪回归”。而且,匹配变量 x 越多,给予的约束越强,发生 “自匹配” 的概率就越大。

对于(b)类 “双平衡” 数据结构而言,将面板数据转化为截面数据进行匹配的方案虽然不会造成 “自匹配” 问题,但其依然会受到 “时间错配” 问题的困扰。例如在 (b) 中 i5 和 i3 都与 e2 相匹配 (ΔΔy=yi5yi3)。

而 (c) 和 (d) 分别是 (a) 和 (b) 类数据结构中存在部分数据缺失的情况,在利用它们进行的回归当中,还会存在部分因数据缺失而造成的偏误问题。

2.2 逐期匹配的不足

如果选择逐期匹配的方案,即在每期截面上都进行一次匹配,虽较好地解决了样本不同期匹配的问题,但可能还会受到其他问题的困扰。

首先是特殊类变量的错配。特殊类变量 (xs) 是指包含众多不可观测信息,在实际研究中需要对照组与处理组在该变量上保持相同的种类变量。比如研究产品质量时,需要保证处理组与其对照企业在行业上相同 (产品种类相同)。然而 PSM 模型采用估计的倾向得分值 ps 做配对时,对照组中可能存在一个与 i 不同种类的个体 l,且 l 与 i 在 ps 值上的间距小于 s 类中所有个体,按照 “1:1 最近邻” 的匹配原则,l 便与 i 成功配对,尽管它们属于不同种类。

其次,当数据类型为非平衡面板数据时,逐期匹配会因数据缺失而产生一定的缺失偏误。例如如图 3 中 (a) 所示,假如 i3 最优的匹配对象是 e3,但遗憾的是 e3 的数据出现了缺失,最终 i3 只能退而求其次与 c3 匹配。因此识别结果中可能包含因数据缺失而造成的匹配偏误,且偏误随数据缺失程度的增加而增大。

此外,对照组的不稳定性 (处理组个体的匹配对象在冲击前后发生了变化) 也会产生部分匹配偏误。例如图 3 中 (b) 所示,个体 i 在每期的匹配对象均不相同,其对照对象在冲击前后发生了较大改变,这并不符合 DID 模型有效性的假设。而 (c) 中 i 在冲击前的匹配对象是 c1e2 和 c3,冲击后的匹配对象是 f4f5 和 c6,其对照对象在冲击前后同样发生了较大改变。

3. 模型改进

接下来,本文针对上文提到的几个问题进行改进。如果 PSM 模型筛选所得的对照组兼具可比性和稳定性,则 PSM-DID 模型的识别结果将更加稳健可靠。

以 “双平衡” 面板数据为例,首先将匹配变量划分为普通的匹配变量 xn,以及特殊类变量 xs。匹配将不再以 ps 值为单一标准,而是使用特殊类变量 xs 和 ps 值双重标准,且 xs 优先于 ps 值。具体如下式所示,其中 i 是处理组 s 类中的某一个体, j 是对照组 s 类中任意个体。其本质是在相同种类下,寻找 ps 值最接近的个体作为匹配对象,从而保证了匹配双方种类相同。

为防止对照组在冲击前后发生变动,一旦匹配成功,i 与 e 在整个样本期内都将匹配在一起的,即在任何一期它们的配对关系都不会发生改变。为此,先将面板数据拆分为 n (n > 1) 期截面数据,对每期截面中所有匹配变量 (xnxs) 进行逐期 Logit (probit) 回归,并计算每个个体每一期的 ps 值 (psit),最终根据下式在对照组中为受处理个体 i 寻找匹配对象 e

式中 t 代表时间 (期),T 代表总期数,1Tit(psjtpsit)2 代表个体 j 的 ps 值序列 {psjt1,psjt2psjtT} 与个体 i 的 ps 值序列 {psit1,psit2psitT} 间的二阶矩,即 j 与 i 在面板数据中的距离。而 j 中到 i 的距离最短的个体即为匹配对象 e

针对非平衡面板,处理组中每个个体存在时间 ti 是不同的,故总期数 Ti 也不相同,但只要能保证受处理个体 i 在冲击前后都至少存在 1 期观测值,即可依据下式匹配:

可以看出,改进方法中的关键点如下:

  • 首先,匹配变量搜寻完毕后,还要从中判断是否存在特殊类变量 xs
  • 其次,在面板数据的每个截面上进行逐期回归,计算每个个体每一期的 psit 值;
  • 最后,对样本个体在 ps 值序列间进行匹配。

据此,我们便可得到具有可比性和稳定性的对照组 (种类相同并且状况相似,且冲击前后为相同个体),从而保证了 DID 模型分析的有效性。

4. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 倾向得分匹配 PSM DID, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,400+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh