【Stats】多期DID

2022-03-22  本文已影响0人  一颗小柚子lyc

识别策略

清朝末期,清政府与西方列强签订了一系列不平等条约,开放沿江沿海等城市作为通商口岸即是不平等条约的主要内容之一。贾瑞雪老师(2014)将近代通商口岸的设置作为一项准自然实验,评估了通商口岸对中国近现代人口和经济发展的长期影响。

从1840年至1910年,中国一共被迫开放了40多个通商口岸。不同通商口岸开放的时间(政策时点)是不同的,例如,广州、福州、厦门、宁波和上海是在1842年《南京条约》后开放的,汉口、九江、南京、镇江等城市是在1858年《天津条约》后开放的,而苏州、杭州等城市是在1895年《马关条约》后开放的......

如上表所示,苏州府是在1896年被开放为通商口岸的,所以苏州府的政策分期变量period在1896年之后取值为1,之前取值为0;而同处苏杭地区的嘉兴府则一直没有被开放为通商口岸,所以嘉兴府的政策分组变量treat和政策分期变量period一直取值为0。

事实上,我们可以发现交互项treat×period的取值和政策分期变量period的取值是一毛一样的,所以在多期DID中,我们其实就没有必要去生成什么交互项,只需用一个政策虚拟变量予以替代就可以了,用以表示地区i在t期是否实施政策。当然,如果为了便于理解的话,可以尝试去生成交互项,结果都一样滴!

Stata操作

【1】设置环境

cd D:\experiments(位置一般为数据所在文件夹)

多期双重差分法(DID)的Stata操作可以分为如下两步:

【2】导入数据

use "data_for_DID.dta", clear

【3】设置面板

xtset FID time(FID为你的研究对象,time为时间。例如有12个城市,2013~2019年,那么FID的个数就是12个,time的个数就是7个)

(1)我们需要生成一个政策虚拟变量post_cmc,用以表示地区i在t期是否被开放为通商口岸。我们只需比较样本各期时间与开放时间(政策时点)即可,如果是在政策时点后,则取值为1,否则为0。

gen post_cmc=(year>cmcyear)

对于像嘉兴府这样未被开放为通商口岸的控制组个体,其开放时间是缺失的,Stata中将缺失值定义为无穷大,所以政策虚拟变量post_cmc会一直取值为0。

(2)使用被解释变量人口增长率AnnualGrowth对政策虚拟变量post_cmc进行回归(加入个体固定效应和时间固定效应,用以更为精确地反映个体特征和时间特征),政策虚拟变量post_cmc反映的就是通商口岸的设置对近现代人口增长的影响。

DID模型与固定效应模型有着千丝万缕的关系,和之前一样,多期DID的Stata命令主要有三个,分别是reg命令、xtreg命令和reghdfe命令。reg命令使用的估计方法最小二乘虚拟变量方法(LSDV),通过在回归方程中引入虚拟变量来代表不同的个体,可以起到和固定效应组内估计方法(FE)同样的效果(已经被证明),贾瑞雪老师使用的就是reg命令。

xtset id year

reg AnnualGrowth post_cmc $control_fe i.id i.year, vce(cluster id)

(id 就是上文导入的FID,目的是研究对象进行聚类;i.year是上文导入的time,这里我的理解是控制时间;i.id 我的理解是固定个体)

xtreg,fe是固定效应模型的官方命令,使用这一命令估计出来的系数是最为纯正的固定效应估计量(组内估计量),所以对于面板数据的DID模型,我们使用更多的是xtreg,fe命令。

xtset id year

xtreg AnnualGrowth post_cmc $control_fe i.year,fe vce(cluster id)

第三个命令是reghdfe命令,也是一直以来我最推荐的固定效应命令。reghdfe命令支持多维固定效应,运算速度快,并且不会汇报一大长串虚拟变量回归结果。

reghdfe AnnualGrowth post_cmc $control_fe, absorb(id year) vce(cluster id)

上一篇下一篇

猜你喜欢

热点阅读