【多时点DID保姆级教学】——数据准备

手把手教你学多时点DID(1)


1. 引言

双重差分法 (DID) 作为目前政策评估方法中非常流行的一种方法,广泛应用于社科研究的各个领域。现有文献中关于该方法的应用多而零碎,给初学者的学习与选择带来了一定困难。因此,为了提升文献阅读与方法应用效率,系统学习 DID 是十分有必要的。

本推文将从基本模型介绍、前期数据准备、基准回归、平行趋势检验、安慰剂检验以及 PSM-DID 等整体流程入手,采用模型分析与实例结合的形式对多时点 DID 模型进行讲解。

2. 模型介绍

我们以经典 DID 模型为例:

Y_{i,t}=\alpha _0+\alpha _1DID_{i,t}+\alpha \sum{X_{i,t}}+\mu _i+\lambda _t+\varepsilon _{i,t}

DIDi,t为政策虚拟变量,本质是 treati*post t。treat i为个体虚拟变量,政策实施个体均取值为 1,其余为 0; post t 为时间虚拟变量,政策实施当年及以后取值为 1,其他为 0。(DIDi,t 与 post t 在数值上相同)

3. 数据准备

我们以白俊红等(2022)的论文数据为例,以国家创新型城市试点政策实施为准自然实验,展示如何用代码构造变量DIDi,t。需要注意的是该文中 city=147 的城市政策实施时间为 2010 年,但是 did 却从 2012 开始计算。后续分析中本推文将其调整至 2010 年,所得结果可能与原文有细微差异,但不影响方法学习。

(1)准备面板数据,即不含 DIDi,t 相关变量在内的论文实证数据,需要包括个体 id,便于下文匹配。

(2) 准备政策实施样本,并构造政策实施时间变量:policy(便于区分原文变量,用 pt 表示),示例如下:

 | city |  pt  |
 ---------------
 |  3   | 2010 |
 |  4   | 2010 |
 |  5   | 2011 |
 |  14  | 2010 |
 |  25  | 2011 |
 |  26  | 2010 |
 |  34  | 2010 |
 |  35  | 2010 |
 | ...  | ...  |

(3) 代码操作

  • 方法一:

 use inno_policy,clear  //面板数据,由于原文中存在相关变量,故对变量名做了修改
 merge m:1 city using inno_pt  //在全样本中匹配处理组样本政策时间
 drop _merge
 replace pt=0 if pt==.  //对照组样本policy=0
 g Treat=0
 replace Treat=1 if pt~=.
 g Post=0
 replace Post=1 if pt==2008&year>=2008
 replace Post=1 if pt==2010&year>=2010
 replace Post=1 if pt==2011&year>=2011
 replace Post=1 if pt==2012&year>=2012
 replace Post=1 if pt==2013&year>=2013
 replace Post=1 if pt==2018&year>=2018      //对创新政策实施不同年份分别进行替换
 gen did=Treat*Post  //Post与did 在数值上相等

需要注意的是在进行数据匹配时最好采用id,直接用个体汉字名称可能会出错。

 **验证结果是否一致
 xtset city year
 xtreg entre_activation did  $xlist  i.year, fe robust
 ​
 Fixed-effects (within) regression               Number of obs     =      4,200
 Group variable: city                            Number of groups  =        280
 ​
 R-squared:                                      Obs per group:
      Within  = 0.5500                                         min =         15
      Between = 0.6964                                         avg =       15.0
      Overall = 0.5535                                         max =         15
 ​
                                                 F(20,279)         =     116.98
 corr(u_i, Xb) = 0.3706                          Prob > F          =     0.0000
 ​
                                  (Std. err. adjusted for 280 clusters in city)
 ------------------------------------------------------------------------------
              |               Robust
 entre_acti~n | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
 -------------+----------------------------------------------------------------
          did |   .2974479   .0385105     7.72   0.000     .2216399    .3732558
       lnagdp |    .263528   .1433524     1.84   0.067    -.0186617    .5457178
  indust_stru |  -.5693443   .1860012    -3.06   0.002    -.9354883   -.2032003
      finance |   .1101172   .0396146     2.78   0.006     .0321357    .1880987
    ainternet |    .009737   .0033379     2.92   0.004     .0031663    .0163076
       market |  -.0185662   .0091767    -2.02   0.044    -.0366306   -.0005018
        _cons |  -.7182469   1.286313    -0.56   0.577    -3.250357    1.813863

基于构造的变量进行回归后,得到与原数据相同结论,表明本文对数据的处理具有合理性。

  • 方法二:

    本例不提供具体数据,以国家级大数据综合试验区为政策构造变量。相比方法一而言,该方法可以直接利用汉字名称来构建政策变量,相对直观。但是对于处理组个体较多的样本在处理时缺陷繁琐,在实际应用过程中,可以灵活选择。

     use data, clear
     g policy=0
     replace policy=2015 if 所属省份=="贵州省"
     replace policy=2016 if 所属省份=="北京市"|所属省份=="天津市"|所属省份=="河北省"|所属省份=="广东省"|所属省份=="上海市"|所属省份=="河南省"|所属省份=="重庆市"|所属省份=="内蒙古自治区"
     g treat=0
     replace treat=1 if policy~=0
     gen post=0
     replace post=1 if policy==2015&year>=2015
     replace post=1 if policy==2016&year>=2016
     g did=treat*post

4. 基准回归

DID 模型中的基本回归命令与面板回归命令基本一致,应用比较普遍的是xtregreghdfe。对于xtreg命令的使用已较为成熟,此处不再赘述。reghdfe命令可以解决多维固定效应问题,而且运行速度较快,因而备受青睐。关于reghdfe的具体介绍可以参考reghdfe:多维面板固定效应估计Stata:关于 reghdfe 命令常见问题解答。以下为两种命令代码示例:

 xtreg entre_activation did  $xlist  i.year, fe robust //稳健标准误
 xtreg gdpr did invest consume export gov second agg innov i.year, fe cluster(id) //聚类稳健标准误
 reghdfe gdpr did invest consume export gov second agg innov,ab(province year) vce(cluster id) //固定省份、年份效应
 reghdfe gdpr did invest consume export gov second agg innov,ab(i.province#i.year province year id) vce(cluster id) //固定省份×年份、省份、年份、个体效应

参考资料

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值