温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
作者:秦利宾 (厦门大学)
邮箱: qlb150@163.com
[编者按]: 本文主要内容摘译自以下文章。同时,结合网上资料和个人经验整理了 Stata 相关代码,以供大家参考。主要包括:
PSM 的理解误区; 使用 regress + [fweight]
手动完成 PSM 估计,即 OLS 估计;psmatch2
的使用范例
[Source]: Jonathan E. Shipman, Quinn T. Swanquist, and Robert L. Whited (2017) Propensity Score Matching in Accounting Research. The Accounting Review: January 2017, Vol. 92, No. 1, pp. 213-244. [Link1], [Link2]
目录
术语速查:
MR:多元线性回归
FFM:函数形式设定错误
PSM:倾向得分匹配分析
传统上,研究者使用多元线性回归 (MR) 可以缓解一些内生性问题。但是,MR 的无偏估计依赖于 Y 与 X 函数形式的正确设定,否则就会产生函数形式错误设定 (FFM) 问题,导致有偏估计。PSM 通过减少对函数形式设定的依赖,缓解 FFM 问题,除此之外,PSM 并 不能解决 更为一般的内生性问题,如自选择、遗漏变量等。「编者注:这是文献里普遍存在的认知错误。」
一项好的研究往往能为为「因果关系」提供令人信服的经验证据。但是,鉴于多数研究中使用的数据都是「非实验数据」,研究者在处理内生性问题时会面临诸多困难。
我们以 是否上大学 (
显然,在模型 (1) 的设定中,我们可能忽略了一些同时影响「解释变量」—— 是否上大学 (
编者注:「共同因素」的存在可能导致模型 (1) 的估计结果变成一个所谓的「伪回归」或曰「虚假回归」。比如,我们观察到某个小子没上大学,收入也低,便凭直觉认为其收入低源于没有上大学。但真实的原因可能是这个小子患有严重的先天性肥胖症——这同时导致了起学习成绩不佳,找工作时频频受阻。
从计量经济学的角度来讲,在模型设定中遗漏的「共同因素」都会「跑到」干扰项
假设,智商 (
匹配是解决 FFM 问题的一种方法。通过为上大学的人 (
实际上,匹配也有一定局限性。若智商 (
尽管,PSM 在减少处理变量和可观测变量相关性方面发挥着重要的作用,但在许多会计研究中,对「PSM 相对于 MR 的优点」这一问题仍然存在普遍的误解。虽然 PSM 和 MR 都是通过控制与被解释变量和处理变量相关的可观测变量来缓解选择偏差,但二者的差异也很明显,主要体现在三个方面。
其一, PSM 并不能解决由「选择偏差或遗漏变量」所导致的内生性问题。
PSM 只是通过匹配的方式在一定程度上避免了 FFM 导致的偏差,并没有从根本上解决由「选择偏差或遗漏变量」所导致的内生性问题。然而,很少有研究注意到这一点,很多人会错误地认为 PSM 能够解决除了 FFM 以外的更为广泛的内生性问题,比如选择偏差、遗漏变量等,还有些时候甚至被用作 Heckman 模型 或 工具变量估计 等方法的替代方法。
其二, PSM 不能被称为「准实验」,也无法模拟实验条件。
另一误解是 PSM 可以模拟实验条件。尽管处理组和对照组的协变量平衡可能类似于实验条件,PSM 仍缺少实验的重要特征。首先,PSM 只是缓解了可观测变量的系统差异,不可观察变量的差异并未缓解。而实验通过随机分配,可以有效控制可观测和不可观察变量影响。其次,PSM 决定了哪些观测值进入分析的样本中。
其三, PSM 的外部有效性问题。
PSM 的另一个问题是与外部有效性有关。在「共同支撑假设 (Common Support)」无法满足或很牵强的情况下,PSM 会系统排除缺乏对照组的样本,进而使得样本代表性变差,影响结果的外部有效性。
在实践中,PSM 需要多种设计选择。即使样本和协变量不变,不同的设计选择仍可能得出不同的结论。
A. 估计倾向得分的主要设计选择:
B. 形成匹配样本的主要设计选择:
C. 评估匹配样本:
D. 估计处理效应:
接下来,以审计机构规模 (
Prediction Model (first stage):
Outcome Model (second stage):
其中,
首先要评估一下是否存在 FFM 问题。通过比较简化模型 (Reduced Model) 和扩展模型 (Expanded Model) 的处理变量系数是否存在显著差异来判断是否存在 FFM 问题,其中扩展模型是在简化模型的基础上,加入所有控制变量的二次项和三次项。从下表看出,尽管在简化模型和扩展模型
[Source]: Jonathan E. Shipman, Quinn T. Swanquist, and Robert L. Whited (2017) Propensity Score Matching in Accounting Research. The Accounting Review: January 2017, Vol. 92, No. 1, pp. 213-244. [Link1], [Link2]
下表是 PSM 第一阶段回归结果。需要注意,由于模型解释能力越强,样本重叠可能性越小,模型解释能力越小,样本越接近总体样本 (相对与 MR 模型,PSM模型优势无法体现),因此这里模型解释能力并没有太大意义。另外,这里的解释变量与第二阶段控制变量保持一致,详见 2.3。
*, **, *** Indicate significance at the 0.10, 0.05, and 0.01 levels, respectively (based on two-tailed tests). Table 4 presents the first-stage model used for estimating propensity scores in each setting. Models are estimated using logistic regression with standard errors that are robust to heteroscedasticity and clustered by firm ( Petersen 2009 ). t-statistics are presented in parentheses below the coefficients.
[Source]: Jonathan E. Shipman, Quinn T. Swanquist, and Robert L. Whited (2017) Propensity Score Matching in Accounting Research. The Accounting Review: January 2017, Vol. 92, No. 1, pp. 213-244. [Link1], [Link2]
下表为 1:1 的不重复匹配的 MR 和 PSM 的回归结果,可以看出二者还是具有明显差别。
下表为可重复匹配,其中列 (1) 和列 (7) 为不可重复匹配的基准。可以看出,在协变量平衡性和处理变量系数显著性、数值大小上还是有显著区别的。
下表为将 PSM 模型第一阶段
下表为在 PSM 模型第一阶段增加额外的变量的结果对比,可以看出结果存在显著差异。
下表为 2008 - 2014 年会计顶刊使用 PSM 的情况介绍。
这里以中国的审计机构规模 (
下面,我们先展示完整的分析过程 (Stata dofiles),继而对关键语句进行详解。
*-调入数据
use "https://gitee.com/arlionn/data/raw/master/data01/Lianxh_PSM_data.dta", clear
*-数据概况
des
/*
obs: 19,112
vars: 12 2 Jun 2020 16:55
size: 993,824
----------------------------------------------------------------------
storage value
variable name type label variable label
----------------------------------------------------------------------
stkcd double
year float
ABSACC float 盈余管理的绝对值
RESTATE float 财务重述
BIG4 float 1:国际四大会计事务所审计;0=不是
LNASSET float 总资产对数
LEV float 资产负债率
ROA float 总资产净利润率
GROWTH float 营业收入增长率B
BM float 账面市值比
AGE float 年龄_成立(年)
indcode long indcode2 制造业保留2位
----------------------------------------------------------------------
Sorted by: stkcd year
*/
*-定义全局暂元
global indepvar LNASSET LEV ROA GROWTH BM AGE
global fixvar i.indcode i.year
*-样本匹配
probit BIG4 $indepvar $fixvar, vce(cluster stkcd)
est store Probit
predict pscore, p
psmatch2 BIG4, pscore(pscore) outcome(ABSACC RESTATE) ///
common n(1) norepl cal(0.03) //详见help文件
pstest $indepvar, both graph
psgraph
*-回归结果
*-Full Sample ABSACC
reg ABSACC BIG4 $indepvar $fixvar, cluster(stkcd)
est store ABSACC_F
*-Matched Sample ABSACC
reg ABSACC BIG4 $indepvar $fixvar [fweight=_weight], cluster(stkcd)
est store ABSACC_M
*-Full Sample RESTATE
reg RESTATE BIG4 $indepvar $fixvar, cluster(stkcd)
est store RESTATE_F
*-Matched Sample RESTATE
reg RESTATE BIG4 $indepvar $fixvar [fweight=_weight], cluster(stkcd)
est store RESTATE_M
*-结果对比
local m "Probit ABSACC_F ABSACC_M RESTATE_F RESTATE_M"
esttab `m', mtitle(`m') b(%6.3f) nogap drop(*.indcode *.year) ///
order(BIG4) s(N r2_p r2_a) star(* 0.1 ** 0.05 *** 0.01)
在上述分析中,我们队对匹配后样本做回归的命令如下:
reg RESTATE BIG4 $indepvar $fixvar [fweight=_weight], cluster(stkcd)
使用 psmatch2
命令后,会自动生成「_weight」变量。该变量代表匹配次数,在 1:1 非重复匹配下,_weight != . 表示匹配成功,且匹配成功时 _weight = 1。在 1:1 可重复匹配下,参与匹配的控制组 _weight 的取值可能为任意整数。
一旦获得了 _weight 变量,就相当于对样本的匹配情况进行了标记,我们可以直接在 regress
命令后附加加 fweight = _weight
进行样本匹配后的回归。其中,fweight
为「frequency weights」的简写,是指观测值重复次数的权重。若是 1:2 重复匹配,成功匹配的处理组 _weight = 2 / 2,成功匹配的控制组 _weight = 参与匹配次数 / 2,即都要除以 2 进行标准化。因此,若想继续使用 fweight
选项,需要 _weight * 2 转化为频数。详细请参考 Propensity Score Matching in Stata using teffects、[psmatch2 and fweight option of regress]。上述代码的具体输出结果如下:
以下部分为 psmatch2
命令的结果。第一个表列示了匹配前和匹配后处理组和控制组差异及其显著性,以 ABSACC 为例,匹配前处理组和控制组差异为「-.011637968」,并且 t 值为「-6.02」,匹配后处理组和控制组差异「ATT」为「-.006573884」,并且 t 值为「-2.47」。第二个表列示了处理组合控制组在共同取值范围的情况,其中控制组「17,726」个样本都在共同取值范围内,而处理组有「184」个样本不在共同取值范围内,有「1,163」在共同取值范围内。
在第一个表中,Note 显示所汇报的标准误未考虑倾向得分估计的事实 (即假设倾向得分为真实值,然后推导标准误),详情参见: Propensity Score Matching in Stata using teffects。实际上,这里仅对系数的标准误和显著性有影响,而对系数值并不产生影响,也不会对匹配结果产生影响。
. psmatch2 BIG4, pscore(pscore) outcome(ABSACC RESTATE) ///
common n(1) norepl cal(0.03) //详见help文件
-----------------------------------------------------------------------------
Variable Sample | Treated Controls Difference S.E. T-stat
--------------------+--------------------------------------------------------
ABSACC Unmatched | .054644862 .06628283 -.011637968 .00193 -6.02
ATT | .056073738 .062647622 -.006573884 .00266 -2.47
--------------------+--------------------------------------------------------
RESTATE Unmatched | .067557535 .113110685 -.04555315 .008833 -5.16
ATT | .074806535 .09544282 -.020636285 .011569 -1.78
--------------------+--------------------------------------------------------
Note: S.E. does not take into account that the propensity score is estimated.
psmatch2: | psmatch2: Common
Treatment | support
assignment | Off suppo On suppor | Total
-----------+----------------------+----------
Untreated | 0 17,726 | 17,726
Treated | 184 1,163 | 1,347
-----------+----------------------+----------
Total | 184 18,889 | 19,073
pstest
命令主要考察匹配质量,以检验是否满足「平衡性假设 (balancing assumption)」。从下表可以看出,匹配后大多数变量标准化偏差 (%bias) 都比较小,而且 t 值都不拒绝处理组和控制组无系统性偏差的原假设。从下图也可以看出,所有变量的标准差在匹配后都缩小了。
. pstest $indepvar, both graph
--------------------------------------------------------------------------------
Unmatched | Mean %reduct | t-test | V(T)/
Variable Matched | Treated Control %bias |bias| | t p>|t| | V(C)
--------------------+----------------------------------+---------------+--------
LNASSET U | 24.021 22.124 146.2 | 56.28 0.000 | 1.44*
M | 23.743 23.752 -0.7 99.5 | -0.15 0.878 | 0.89*
| | |
LEV U | .52906 .43117 51.1 | 17.16 0.000 | 0.78*
M | .52314 .52429 -0.6 98.8 | -0.15 0.884 | 0.77*
| | |
ROA U | .0505 .04661 8.1 | 2.81 0.005 | 0.91
M | .05049 .05186 -2.9 64.6 | -0.67 0.500 | 0.92
| | |
GROWTH U | .18181 .2246 -10.6 | -3.53 0.000 | 0.72*
M | .18313 .17163 2.9 73.1 | 0.77 0.441 | 1.30*
| | |
BM U | .76837 .60176 71.8 | 25.11 0.000 | 0.95
M | .74742 .74201 2.3 96.8 | 0.54 0.590 | 0.85*
| | |
AGE U | 16.355 15.891 8.3 | 2.96 0.003 | 1.05
M | 16.771 16.681 1.6 80.6 | 0.39 0.698 | 0.90
| | |
--------------------------------------------------------------------------------
* if variance ratio outside [0.90; 1.11] for U and [0.89; 1.12] for M
-------------------------------------------------------------------------------
Sample | Ps R2 LR chi2 p>chi2 MeanBias MedBias B R %Var
-----------+-------------------------------------------------------------------
Unmatched | 0.265 2578.34 0.000 49.3 30.8 150.6* 1.58 50
Matched | 0.001 2.17 0.904 1.8 2.0 6.1 1.11 67
-------------------------------------------------------------------------------
* if B>25%, R outside [0.5; 2]
psgraph
命令展示了倾向得分共同取值范围图形。和前文分析一致,控制组全部在共同取值范围内,处理组有少部分不在共同取值范围内,并且集中在倾向得分较高的部分。
下表报个了多个回归结果。列 (1) 为最开始的 Probit
回归结果。列 (2) 和列 (4) 是全样本回归结果,列 (3) 和列 (5) 为匹配后样本回归结果。
. esttab `m', mtitle(`m') b(%6.3f) nogap drop(*.indcode *.year) ///
order(BIG4) s(N r2_p r2_a) star(* 0.1 ** 0.05 *** 0.01)
---------------------------------------------------------------------------
(1) (2) (3) (4) (5)
Probit ABSACC_F ABSACC_M RESTATE_F RESTATE_M
---------------------------------------------------------------------------
main
BIG4 -0.005** -0.007*** -0.031*** -0.023*
(-2.06) (-2.61) (-3.35) (-1.96)
LNASSET 0.667*** -0.003*** -0.002 -0.003 -0.015**
(13.85) (-3.69) (-1.25) (-0.97) (-2.38)
LEV -0.987*** 0.034*** 0.002 0.057*** 0.063
(-4.03) (7.99) (0.17) (3.08) (1.14)
ROA 1.622* -0.019 0.057 -0.306*** -0.133
(1.87) (-1.07) (1.15) (-4.83) (-0.79)
GROWTH -0.214*** 0.028*** 0.017*** 0.030*** 0.008
(-4.42) (14.24) (2.72) (4.73) (0.53)
BM -0.134 -0.021*** -0.007 -0.016 0.022
(-0.61) (-5.72) (-0.69) (-1.05) (0.57)
AGE 0.004 0.000 0.001* 0.001** 0.001
(0.47) (0.02) (1.92) (2.56) (0.48)
_cons -16.261*** 0.127*** 0.088*** 0.076 0.439**
(-14.83) (8.15) (2.90) (1.24) (2.28)
---------------------------------------------------------------------------
N 1.9e+04 1.9e+04 2326.000 1.9e+04 2326.000
r2_p 0.293
r2_a 0.101 0.114 0.060 0.038
---------------------------------------------------------------------------
t statistics in parentheses
* p<0.1, ** p<0.05, *** p<0.01
应该将 PSM 作为解决 FFM 问题的一种方法,而不是更广泛的内生性、自选择、以及遗漏变量的问题。
在使用过程中,应该将 PSM 和 MR 结合对比使用。同时,要对单一 PSM 样本结论保持谨慎态度。
PSM 第一阶段不应该包含 MR 模型排除的变量。在 PSM 模型第二阶段应使用所有控制变量进行 MR 回归 (doubly robust estimation)。
应披露 PSM 的设计选择,提高研究的可复制下和清晰度。具体来看,PSM 第一阶段模型、PSM 第二阶段模型、是否可重复匹配、多少个对照组样本匹配一个处理组样本、匹配半径 (如实施)、以及匹配质量 (协变量平衡性)。
连享会-直播课 上线了!
http://lianxh.duanshu.com
免费公开课:
直击面板数据模型 - 连玉君,时长:1小时40分钟 Stata 33 讲 - 连玉君, 每讲 15 分钟. 部分直播课 课程资料下载 (PPT,dofiles等)
支持回看,所有课程可以随时购买观看。
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 ⭐ | DSGE, 因果推断, 空间计量等 | |
⭕ Stata数据清洗 | 游万海 | 直播, 2 小时,已上线 |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会学习群-常见问题解答汇总:
✨ https://gitee.com/arlionn/WD