天鹰(中南财大——博士研究生)
E-mail: yanbinglh@163.com
本篇推文主要承接双重差分(DID)后出现的处理效应和倾向匹配得分,以及后续的断点回归。对应这三个大的计量模块,我认为首要前提是理顺三部分的关系,以便更好掌握每一部分的建模步骤以及对应的Stata操作。
1.倾向得分匹配法建模步骤
1.输入数据
2.描述性分析
3.若是横截面数据, 请跳过此步。 面板单位根检验( 一
般T>=20, T较小, 单位根检验方法功效低。 ) ,
4.若变量平稳, 进行如下操作,
5\. 实验组和控制组, 是否是随机分组得到的? ( 不管是
随机实验、 自然实验、 还是观测数据。 )
注意:从上述的理论操作流程图中,我们能看出,首先要判断数据是否是随机分组数据(判断多基于相关理论去定性分析),如果数据是随机分组那么可以直接采用之前所讲过的DID进行处理,如果数据非随机,那么才会涉及到倾向匹配得分以及后续的断点回归等内容。
2.处理好下来几组关系
- 2.1 依可测变量选择与依不可测变量选择?
通过定性分析, 是否有不可观测的变量影响处理变量?
【注意】
依可测变量选择问题, 还有一类较为特殊的情形( 处理变量, 完全由某连续变量是否超过某断点所决定。 )
精确断点回归模型
2.2 倾向得分匹配与偏差校正的匹配估计?
倾向得分匹配在倾向得分估计时, 可能受很多主观因素的影响( 例如, 选probit模型还是logit模型; 估计倾向得分时, 模型采用哪些变量建模等等) 。
偏差校正的匹配估计可以适当避免这个问题。
- 2.3 双重差分倾向得分匹配、 处理效应模型与断点回归?
双重差分倾向得分匹配:若影响处理变量Di的不可测变量
是不随时间变化,且有面板数据。
处理效应模型:基于Heckman(1979)样本选择模型的思想, 直
接对处理变量Di 建模处理。
断点回归:处理变量Di 完全由某连续变量是否超过某一断点所决定( 精确断点回归); 处理变量Di 不完全由某连续变量是否超过某一断点所决定,还受其他因素的影响(模糊断点回归) 。
3.双重差分倾向得分匹配(Stata操作演示)
命令与 diff 相同, 只是要选上倾向得分匹配对应的选项。
- 3.1 数据说明
数据集来自 Card & Kruger(1994)
fte: 雇佣人数。
treated: 处理变量, 快餐店在新泽西州为1, 在宾夕法尼亚
州为0。
t: 实验期虚拟变量, 时间为1992.11为1, 1992.2为0。
快餐品牌虚拟变量:
bk, kfc, roys, Wendys
- 3.2 命令选项介绍
**diff---------双重差分法、倍差法、倍分法**
diff outcome_var [if] [in] [weight] ,[ options]
outcome_var :结果变量。
----模型要求选项----
period(varname) :二元实验期变量(1:实验之后;0:实验之前)。注意:如果数据里
包含周期频率(如每月、每季度、每年等),建议设定选项period(varname),
treated(varname) :二元处理变量(1:被处理;0:被控制、未处理)。
----选项----
cov(varlist) :为模型设定前定处理协变量。当kernel被选用时,这些变量将用于去
估计倾向得分。
kernel :执行基于核的【双重差分倾向得分匹配】。该选项将生成变量_weights和_ps,
_weights :来自核倾向得分匹配的权重;
_ps :pscore(varname)没有提供倾向得分时,报告得分。
且该选项要求使用id(varname),除非重复横截面设置。
id(varname) :kernel选项要求使用。
bw(#) :提供核函数的窗宽,默认为0.06。
ktype(kernel) :指定核函数的类型。分别为epanechnikov (默认),gaussian,
biweight,uniform 和 tricube。
rcs :表示核已设定(重复横截面),该选项不要求id(varname),选项rcs严格要求
cov(varlist)中的协变量不随时点变化。
qdid(quantile) :执行分位数双重差分估计,分位数从0.1-0.9,可以与kernel和cov选项
联合使用,qdid选项不支持加权稳健标准误估计
pscore(varname) :提供倾向得分。
logit :指定倾向得分采用logit估计,默认是probit。
support :仅使用共同取值范围内的观测值进行匹配。
在给定选项kernel的倾向得分下,执行diff命令。
addcov(varlist) :除了用于估计倾向得分的协变量外,指定额外的协变量。
在多频率数据的情形下,也可用于设定时点固定效应。
ddd(varname) :三重差分选项。treated(varname)被视为第1类;ddd(varname)视为第2类。
该选项不兼容kernel、test、qdid(quantile)。
----SE/Robust----
cluster(varname) :计算聚类标准误。
robust :计算稳健标准误。
bs :对参数和标准误采用bootstrap估计。
reps(int) :在bs被选用时,指定重复次数,默认为50。
----Balancing test----
test :采用balancing t检验,检验在基期时,协变量在控制组和实验组的均值是否有差异。
同时使用test和kernel选项,执行加权协变量的balancing t检验。
----报告----
report :当设定选项kernel时,显示所包含的协变量的推断或倾向得分的估计。
nostar :去掉p值的星号。
-----------------------------------------------------------------------------*/
- 3.3 Stata具体操作演示
diff fte, t(treated) p(t) cov(bk kfc roys) kernel id(id) ///
support report robust
KERNEL PROPENSITY SCORE MATCHING DIFFERENCE-IN-DIFFERENCES
Estimation on common support
Report - Propensity score estimation with probit command
Atention: _pscore is estimated at baseline
Iteration 0: log likelihood = -198.21978
Iteration 1: log likelihood = -196.7657
Iteration 2: log likelihood = -196.7636
Probit regression Number of obs = 404
(注意此处默认采用Probit模型) LR chi2(3) = 2.91
Prob > chi2 = 0.4053
Log likelihood = -196.7636 Pseudo R2 = 0.0073
------------------------------------------------------------------------------
treated | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
bk | .1812529 .2090916 0.87 0.386 -.2285591 .5910649
kfc | .3888298 .246799 1.58 0.115 -.0948873 .8725469
roys | .2997977 .2318227 1.29 0.196 -.1545664 .7541618
_cons | .6476036 .1777446 3.64 0.000 .2992305 .9959767
------------------------------------------------------------------------------
Matching iterations...
...............................................................................................................................
> .............................................................................................................................
> ..........................................................................
DIFFERENCE-IN-DIFFERENCES ESTIMATION RESULTS
Number of observations in the DIFF-IN-DIFF: 795
Before After
Control: 78 76 154
Treated: 326 315 641
404 391
--------------------------------------------------------
Outcome var. | fte | S. Err. | |t| | P>|t|
----------------+---------+---------+---------+---------
Before | | | |
Control | 20.040 | | |
Treated | 17.065 | | |
Diff (T-C) | -2.975 | 1.442 | -2.06 | 0.039**
After | | | |
Control | 17.449 | | |
Treated | 17.499 | | |
Diff (T-C) | 0.050 | 1.073 | 0.05 | 0.963
| | | |
Diff-in-Diff | 3.026 | 1.797 | 1.68 | 0.093*
--------------------------------------------------------
R-square: 0.02
* Means and Standard Errors are estimated by linear regression
**Robust Std. Errors
**Inference: *** p<0.01; ** p<0.05; * p<0.1
指定倾向得分采用logit估计,默认是probit
diff fte, t(treated) p(t) cov(bk kfc roys) kernel id(id) ///
support logit report robust
KERNEL PROPENSITY SCORE MATCHING DIFFERENCE-IN-DIFFERENCES
Estimation on common support
Report - Propensity score estimation with logit command
Atention: _pscore is estimated at baseline
Iteration 0: log likelihood = -198.21978
Iteration 1: log likelihood = -196.77862
Iteration 2: log likelihood = -196.7636
Iteration 3: log likelihood = -196.7636
Logistic regression Number of obs = 404
LR chi2(3) = 2.91
Prob > chi2 = 0.4053
Log likelihood = -196.7636 Pseudo R2 = 0.0073
------------------------------------------------------------------------------
treated | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
bk | .3108387 .3561643 0.87 0.383 -.3872306 1.008908
kfc | .6814511 .4335455 1.57 0.116 -.1682824 1.531185
roys | .520356 .4011747 1.30 0.195 -.265932 1.306644
_cons | 1.05315 .2998708 3.51 0.000 .465414 1.640886
------------------------------------------------------------------------------
Matching iterations...
...............................................................................................................................
> .............................................................................................................................
> ..........................................................................
DIFFERENCE-IN-DIFFERENCES ESTIMATION RESULTS
Number of observations in the DIFF-IN-DIFF: 795
Before After
Control: 78 76 154
Treated: 326 315 641
404 391
--------------------------------------------------------
Outcome var. | fte | S. Err. | |t| | P>|t|
----------------+---------+---------+---------+---------
Before | | | |
Control | 20.040 | | |
Treated | 17.065 | | |
Diff (T-C) | -2.975 | 1.442 | -2.06 | 0.039**
After | | | |
Control | 17.449 | | |
Treated | 17.499 | | |
Diff (T-C) | 0.050 | 1.073 | 0.05 | 0.963
| | | |
Diff-in-Diff | 3.026 | 1.797 | 1.68 | 0.093*
--------------------------------------------------------
R-square: 0.02
* Means and Standard Errors are estimated by linear regression
**Robust Std. Errors
**Inference: *** p<0.01; ** p<0.05; * p<0.1
平稳检验(Balancing test)
test :采用balancing t检验,检验在基期时,协变量在控制组和实验组的均值是否有差异。
同时使用test和kernel选项,执行加权协变量的balancing t检验。
iff fte, t(treated) p(t) cov(bk kfc roys) kernel id(id) ///
support logit report robust test
Report - Propensity score estimation with logit command
Atention: _pscore is estimated at baseline
Iteration 0: log likelihood = -198.21978
Iteration 1: log likelihood = -196.77862
Iteration 2: log likelihood = -196.7636
Iteration 3: log likelihood = -196.7636
Logistic regression Number of obs = 404
LR chi2(3) = 2.91
Prob > chi2 = 0.4053
Log likelihood = -196.7636 Pseudo R2 = 0.0073
------------------------------------------------------------------------------
treated | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
bk | .3108387 .3561643 0.87 0.383 -.3872306 1.008908
kfc | .6814511 .4335455 1.57 0.116 -.1682824 1.531185
roys | .520356 .4011747 1.30 0.195 -.265932 1.306644
_cons | 1.05315 .2998708 3.51 0.000 .465414 1.640886
------------------------------------------------------------------------------
Matching iterations...
...............................................................................................................................
> .............................................................................................................................
> ..........................................................................
TWO-SAMPLE T TEST
Test on common support
Number of observations (baseline): 404
Before After
Control: 78 - 78
Treated: 326 - 326
404 -
t-test at period = 0:
----------------------------------------------------------------------------------------------
Weighted Variable(s) | Mean Control | Mean Treated | Diff. | |t| | Pr(|T|>|t|)
---------------------+------------------+--------------+------------+---------+---------------
fte | 20.040 | 17.065 | -2.975 | 2.06 | 0.0397**
bk | 0.468 | 0.408 | -0.060 | 0.93 | 0.3507
kfc | 0.144 | 0.209 | 0.064 | 1.42 | 0.1552
roys | 0.272 | 0.252 | -0.020 | 0.34 | 0.7362
----------------------------------------------------------------------------------------------
*** p<0.01; ** p<0.05; * p<0.1
Attention: option kernel weighs variables in cov(varlist)
Means and t-test are estimated by linear regression