did双重差分法_双重差分(DID)操流程及代码

c940b71c4275f146f8184eb02111397c.png

01

简介

b3f7bf44c9eccf9dede30806f64491a8.gif

现代计量经济学和统计学的发展为我们的研究提供了可行的工具。倍差法来源于计量经济学的综列数据模型,是政策分析和工程评估中广为使用的一种计量经济方法。主要是应用于在混合截面数据集中,评价某一事件或政策的影响程度。该方法的基本思路是将调查样本分为两组,一组是政策或工程作用对象即“作用组”,一组是非政策或工程作用对象即“对照组”。根据作用组和对照组在政策或工程实施前后的相关信息,可以计算作用组在政策或工程实施前后某个指标(如收入)的变化量(收入增长量),同时计算对照组在政策或工程实施前后同一指标的变化量。然后计算上述两个变化量的差值(即所谓的“倍差值”)。这就是所谓的双重差分估计量(Difference in Differences,简记DD或DID),因为它是处理组差分与控制组差分之差。该法最早由Ashenfelter(1978)引入经济学,而国内最早的应用或为周黎安、陈烨(2005)。

常用的倍差法主要包括双重倍差法和三重倍差法。双重差分法(Difference-in-difference,DID)有几种其他的称谓:倍差法、差分再差分等。该方法的原理非常简单,它要求数据期至少有两期,所有的样本被分为两类:实验组和控制组,其中实验组在第一期是没有受到政策影响,此后政策开始实施,第二期就是政策实施后的结果,控制组由于一直没有受政策干预,因此其第一期和第二期都是没有政策干预的结果。双重差分方法的测算也非常简单,两次差分的效应就是政策效应。

双重差分法的假定,为了使用OLS一致地估计方程,需要作以下两个假定。 

假定1:此模型设定正确。特别地,无论处理组还是控制组,其时间趋势项都是。此假定即“平行趋势假定”(parallel trend assumption)。DID最为重要和关键的前提条件:共同趋势(Common Trends)

双重差分法并不要求实验组和控制组是完全一致的,两组之间可以存在一定的差异,但是双重差分方法要求这种差异不随着时间产生变化,也就是说,处理组和对照组在政策实施之前必须具有相同的发展趋势。

假定2:暂时性冲击与政策虚拟变量不相关。这是保证双向固定效应为一致估计量(consist estimator)的重要条件。在此,可以允许个体固定效应与政策虚拟变量相关(可通过双重差分或组内变换消去,或通过LSDV法控制)。

DID允许根据个体特征进行选择,只要此特征不随时间而变;这是DID的最大优点,即可以部分地缓解因 “选择偏差”(selection bias)而导致的内生性(endogeneity)。

02

双重差分操作案例

b3f7bf44c9eccf9dede30806f64491a8.gif

Difference in differences (DID) Estimation step‐by‐step双重差分操作步骤

首先我们读入所需数据,生成政策前后以及控制组虚拟变量,并将它们相乘产生交互项。

方法一:

Getting sample data调用数据

use "http://dss.princeton.edu/training/Panel101.dta", clear

Create a dummy variable to indicate the time when the treatment started. Lets assume that treatment started in 1994. In this case, years before 1994 will have a value of 0 and 1994+ a 1. If you already have this skip this step.设置虚拟变量,政策执行时间为1994年

gen time = (year>=1994) & !missing(year) 

*Create a dummy variable to identify the group exposed to the treatment. In this example lets assumed that countries with code 5,6, and 7 were treated (=1). Countries 1-4 were not treated (=0). If you already have this skip this step生成地区的虚拟变量

gen treated = (country>4) & !missing(country)

* Create an interaction between time and treated. We will call this interaction ‘did’ 产生交互项

gen did = time*treated

Estimating the DID estimator随后将这三个变量作为解释变量,y作为被解释变量进行回归:

reg y time treated did, r

结果为:

51581ba41760c58795d701703495a7d9.png

did的系数显著为负,表明政策实施对Y有显著的(10%显著性水平下)负效应

方法二:diff

The command diff is user‐defined for Stata,To install type 

ssc install diff下载外部命令方法

diff y, t(treated) p(time)

5c5b9afa4bdaf13ab37a682f0c6471d4.png

7c57d8517bb4203d60da35f80896bd0d.png

03

双重差分平行趋势检验

b3f7bf44c9eccf9dede30806f64491a8.gif

平行趋势检验

首先生成年份虚拟变量与实验组虚拟变量的交互项,此处选在政策前后各3年进行对比。

gen period = year - 1994
forvalues i = 3(-1)1{

gen pre_`i' = (period == -`i' & treated == 1) }
gen current = (period == 0 & treated == 1)
forvalues j = 1(1)3{
gen  time_`j' = (period == `j' & treated == 1)

 }

随后将这些交互项作为解释变量进行回归,并将结果储存在reg中以备后续检验。 

xtreg y  time  treated pre_* current  time_* i.year, fe 

est sto reg

采用coefplot命令进行绘图,观察是否1994年前的回归系数均在0轴附近波动,在1994年后回归系数显著为负。

coefplot reg, keep(pre_* current post_*) vertical recast(connect) yline(0) xline(3, lp(dash))

16a05b4fc990bad5ad94a5dce1579928.png

结果发现系数在政策前的确在0附近波动,而政策后一年系数显著为负,但很快又回到0附近。这说明实验组和控制组的确是可以进行比较的,而政策效果可能出现在颁布后一年,随后又很快消失。

来源:管理学季刊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值