双重差分模型

2024-05-16 13:38

1. 双重差分模型

双重差分模型在政策评估评估中被广泛应用。也是在实证研究中非常重要的一种模型构建,DID方法主要用于政策评估,尤其是对我国渐进式政策改革的评估,具有很好的模型拟合效果。 
  
 DID方法利用政策的准自然实验将研究对象随机的分成处理组和对照组,其中受政策影响的个体称为处理组,反之是对照组。为了估计政策效应,需要先比较处理组在政策发生前后的变化,但这种变化的部分也可能是时间效应所导致的。所以需要引入对照组在政策发生前后的结果变量的变化来提出处理组内的时间效应。即通过对照组来假设构建一个只存在时间效应而没有受到政策影响的处理组。
  
 1、双重差分模型(DID)
  
 3种方式来理解DID:表格法、画图法和回归法。一般而言,最终需要通过回归来具体识别政策效应的影响。
  
 表格法:首先分别计算处理组和对照组在政策发生前后结果变量的均值。然后用处理组政策发生后的均值减去政策发生前的均值得到处理组政策前后的变化,对照组也进行同样操作得到对照组在政策发生前后的变化。最后,我们用处理组的变化减去对照组的变化,即剔除掉时间效应,就可以得到政策效应,两次相减的过程就体现了双重差分的思想。
  
 
  
                                          
 画图法:(略)
  
 这里需要注意的是,我们运用该方法前,需要假设二者存在共同趋势。即除了政策外,两者并没有显著不同,也就是说,政策发生前,对照组与处理组的结果变量呈现出共同的变化趋势,且趋势改变速率差异不大。
  
 
  
                                                                                                                          
 对于共同趋势的检验通常利用“安慰剂检验”。需要注意的是,共同趋势检验是安慰剂检验,但是反过来则不成立,这两者是包含关系。安慰剂检验方法有很多,接下来介绍3种方法:
  
 第一种,采用政策发生之前的数据,将政策实施前的除第一年之外的所有年份“人为地”设定成为处理组的政策实施年份。然后,根据DID模型逐年回归,当所有回归中的交互项系数都不显著时,说明通过了安慰剂检验,表明之前识别的政策平均效应时可靠的,否则就是不可靠的。如果政策实施前有n年数据,那么就需要做n-1次回归。
  
 第二种,“人为地”随机选择政策实施对象(处理组),然后使用全样本做DID回归。如果交互项系数不显著,则判断政策对随机选择的处理组都不存在政策效应,可以进一步证明之前识别的政策平均效应结果时可靠稳健的。
  
 第三种,改变被解释变量,通常选择理论上不受政策影响的其他变量,保持真实的对照组和处理组、真实的政策实施时间,重新进行DID回归,理想的结果是,该政策的实施对其他被解释变量都不存在政策效应。
  
 当对照组和处理组确实不存在共同趋势时,提供三种解决思路:
  
 第一种,寻找更好的对照组,也可以把多个对照组加权构成一个虚拟对照组,这样尽管每个对照组都与实验组的时间趋势不同,但加权后的虚拟对照组的时间趋势与处理组相同。(合成控制法)Abadie等(2010)用该方法研究加州的控烟法对烟草消费的影响,他们利用其他州的数据加权模拟了加州在没有该法案时潜在烟草消费水平。
  
 第二种,估算出因时间趋势不同带来的偏差,然后从双重差分结果中减去这个偏差,即三重差分法。三重差分法的思路为,既然两个地区的时间趋势不一样,那么我们可以分别在两个地区寻找一个没有受到干预影响的人群或行业,通过对这两组的双重差分估算出时间趋势的差异,然后在从原来实验组和对照组的双重差分估算值中减去这个时间趋势差异。
  
 假设B州针对65岁及以上老年人(E)引入了新的医保政策,而该政策不适用于65岁以下人群(N),欲考察此政策对于健康状况y的影响。
  
 双重差分法的思路为:
  
 1、以B州65岁及以上人群为实验组,65岁以下人群为对照组,这种方法可能存在的缺陷为,年轻人和老年人的健康状况随着时间可能发生不同的变化;
  
 2、以相邻A州65岁及以上的老年人作为对照组,但是这样不能保证政策实施前,两个州的老年人健康状况有相同的时间趋势。
  
 考虑构建三重差分模型,首先将B州65岁及以上人群作为实验组,65岁以下人群作为对照组,然后使用A州的数据衡量A州的年轻人和老年人的健康状况随时间变化的不同趋势,最后再从双重差分的结果中把这一不同减去,就能估计出政策效应。

双重差分模型

2. 怎么利用有限差分法对模型进行求解

有限元法应该是在差分法基础上建立起来的。
有限元法:对物理模型进行离散,网格划分不用规则,就是各种单元可以混合使用,所以写不出方程也可以求解。
差分法:划分的网格是规则的,对方程进行离散化,就是用很多个差分代替微分,用线性方程组代替微分方程的一种方法。
学地质应该不用太区了解 基本原理,要注重分析的过程,和看懂分析结果才重要,地质毕竟也是实际的工程领域。那些理论就让物理专业,力学专业的研究去吧。
本人也了解不多,若不是正确答案清凉解。

3. 什么是双重差分模型

举例:
现在要修一条铁路,铁路是条线,所以必然会有穿过的城市和没有被穿过的城市。记Di=1 如果城市i被穿过,Di=0 如果城市i没有被穿过。现在我们比较好奇铁路修好以后,被铁路穿过的城市是不是经济增长更快了?我们该怎么做呢?一开始的想法是,我们把Di=1的城市的GDP加总,减去Di=0的城市的GDP加总,然后两者一减,即E(Yi|Di=1)-E(Yi|Di=0),这样我们就算出了两类城市的GDP的平均之差。这样做不用说肯定有问题。万一被铁路穿过的城市在建铁路之前GDP就高呢?为了解决这个问题,我们需要观察到至少两期,第一期是建铁路之前,第二期是建铁路之后。我们先把两类城市的GDP做两期之差,即:

这是第一次差分,经过这一步,我们实际上算出了每个城市GDP的增长(率,如果取log之后),也就是GDP的趋势。完了之后,计算:

这是第二次差分。这一步就把两类城市在修建铁路之前和之后的GDP增长率的差异给算出来了,这就是我们要的处理效应,即修建铁路之后对城市经济的促进作用。这个东西你还可以换一个写法。记T=1 如果时间为建铁路之后,T=0如果时间为建铁路之前,那么我们可以得到一个表:

Treated代表在某一期,某一类城市是不是建了铁路。第零期肯定没有建铁路,第一期只有Di=1的城市建了铁路。所以Treated=Di*T。因此我们把方程写成:

对时间差分,得到:

再次差分,取期望:

可见,gamma就是我们想要估计的处理效应。所以实际做的时候,可以直接跑

这个式子的回归,得到的交叉项的系数就是所要估计的处理效应。用一个图表示就是:


所以看清楚了,这里DID最关键的假设是common trend,也就是两个组别在不处理的情况下,y的趋势是一样的。那么你会说了,铁路穿过的城市可能本身GDP也高,而GDP高的城市按照理论GDP增长率可能更高可能更低,所以common trend的假设可能是不对的,那怎么办?如果这个问题存在,我们可以进一步假设在控制了某些外生变量之后,common trend是对的,比如上个问题,我们可以控制城市在t=0期的GDP level。当我们控制其他变量之后,自然不能直接减两次了,我们需要用上面说的回归式子,即run the following OLS:
1、双重差分模型(difference-in-difference,DID)近年来多用于计量经济学中对于公共政策或项目实施效果 的定量评估。 2、通常大范围的公共政策有别于普通科研性研究,难以保证对于政策实施组和对照组在样本分配上的完全随机。
3、非随机分配政策实施组和对照组的试验称为自然试验(naturaltrial),此类试验存在较显著的特点,即不同组间样本在政策实施前可能存在事前差异,仅通过单一前后对比或横向对比的分析方法会忽略这种差异,继而导致对政策实施效果的有偏估计。4、DID模型正是基于自然试验得到的数据,通过建模来有效控制研究对象间的事前差异,将政策影响的真正结果有效分离出来。

什么是双重差分模型

4. 什么是双重差分模型

双重差分吗,就是差分两次。
我们先来举个栗子。

现在要修一条铁路,铁路是条线,所以必然会有穿过的城市和没有被穿过的城市。记Di=1 如果城市i被穿过,Di=0 如果城市i没有被穿过。
现在我们比较好奇铁路修好以后,被铁路穿过的城市是不是经济增长更快了?我们该怎么做呢?
一开始的想法是,我们把Di=1的城市的GDP加总,减去Di=0的城市的GDP加总,然后两者一减,即E(Yi|Di=1)-E(Yi|Di=0),这样我们就算出了两类城市的GDP的平均之差。
这样做不用说肯定有问题。万一被铁路穿过的城市在建铁路之前GDP就高呢?为了解决这个问题,我们需要观察到至少两期,第一期是建铁路之前,第二期是建铁路之后。我们先把两类城市的GDP做两期之差,即:

这是第一次差分,经过这一步,我们实际上算出了每个城市GDP的增长(率,如果取log之后),也就是GDP的趋势。

5. 什么是双重差分模型

双重差分吗,就是差分两次。
我们先来举个例子。

现在要修一条铁路,铁路是条线,所以必然会有穿过的城市和没有被穿过的城市。记Di=1 如果城市i被穿过,Di=0 如果城市i没有被穿过。
现在我们比较好奇铁路修好以后,被铁路穿过的城市是不是经济增长更快了?我们该怎么做呢?
一开始的想法是,我们把Di=1的城市的GDP加总,减去Di=0的城市的GDP加总,然后两者一减,即E(Yi|Di=1)-E(Yi|Di=0),这样我们就算出了两类城市的GDP的平均之差。
这样做不用说肯定有问题。万一被铁路穿过的城市在建铁路之前GDP就高呢?为了解决这个问题,我们需要观察到至少两期,第一期是建铁路之前,第二期是建铁路之后。我们先把两类城市的GDP做两期之差,即:

这是第一次差分,经过这一步,我们实际上算出了每个城市GDP的增长(率,如果取log之后),也就是GDP的趋势。

什么是双重差分模型

6. 什么是双重差分模型

双重差分模型(difference-in-difference,DID)近年来多用于计量经济学中对于公共政策或项目实施效果 的定量评估。 

通常大范围的公共政策有别于普通科研性研究,难以保证对于政策实施组和对照组在样本分配上的完全随机。非随机分配政策实施组和对照组的试验称为自然试验(naturaltrial),此类试验存在较显著的特点,即不同组间样本在政策实施前可能存在事前差异,仅通过单一前后对比或横向对比的分析方法会忽略这种差异,继而导致对政策实施效果的有偏估计。

DID模型正是基于自然试验得到的数据,通过建模来有效控制研究对象间的事前差异,将政策影响的真正结果有效分离出来。

7. 什么是双重差分模型

  双重差分吗,就是差分两次。
  我们先来举个栗子。
  现在要修一条铁路,铁路是条线,所以必然会有穿过的城市和没有被穿过的城市。记Di=1 如果城市i被穿过,Di=0 如果城市i没有被穿过。
  现在我们比较好奇铁路修好以后,被铁路穿过的城市是不是经济增长更快了?我们该怎么做呢?
  一开始的想法是,我们把Di=1的城市的GDP加总,减去Di=0的城市的GDP加总,然后两者一减,即E(Yi|Di=1)-E(Yi|Di=0),这样我们就算出了两类城市的GDP的平均之差。
  这样做不用说肯定有问题。万一被铁路穿过的城市在建铁路之前GDP就高呢?为了解决这个问题,我们需要观察到至少两期,第一期是建铁路之前,第二期是建铁路之后。我们先把两类城市的GDP做两期之差,即:
  这是第一次差分,经过这一步,我们实际上算出了每个城市GDP的增长(率,如果取log之后),也就是GDP的趋势。

什么是双重差分模型

8. 什么是双重差分模型

什么是双重差分模型(difference-in-differences model)?

双重差分吗,就是差分两次。

我们先来举个例子:



现在要修一条铁路,铁路是条线,所以必然会有穿过的城市和没有被穿过的城市。记Di=1 如果城市i被穿过,Di=0 如果城市i没有被穿过。

现在我们比较好奇铁路修好以后,被铁路穿过的城市是不是经济增长更快了?我们该怎么做呢?

一开始的想法是,我们把Di=1的城市的GDP加总,减去Di=0的城市的GDP加总,然后两者一减,即E(Yi|Di=1)-E(Yi|Di=0),这样我们就算出了两类城市的GDP的平均之差。

这样做不用说肯定有问题。万一被铁路穿过的城市在建铁路之前GDP就高呢?为了解决这个问题,我们需要观察到至少两期,第一期是建铁路之前,第二期是建铁路之后。我们先把两类城市的GDP做两期之差,即:



这是第一次差分,经过这一步,我们实际上算出了每个城市GDP的增长(率,如果取log之后),也就是GDP的趋势。

完了之后,计算:



这是第二次差分。这一步就把两类城市在修建铁路之前和之后的GDP增长率的差异给算出来了,这就是我们要的处理效应,即修建铁路之后对城市经济的促进作用。

这个东西你还可以换一个写法。记T=1 如果时间为建铁路之后,T=0如果时间为建铁路之前,那么我们可以得到一个表:




Treated代表在某一期,某一类城市是不是建了铁路。第零期肯定没有建铁路,第一期只有Di=1的城市建了铁路。所以Treated=Di*T。因此我们把方程写成:



对时间差分,得到:



再次差分,取期望:



可见,gamma就是我们想要估计的处理效应。

所以实际做的时候,可以直接跑



这个式子的回归,得到的交叉项的系数就是所要估计的处理效应。

用一个图表示就是:



所以看清楚了,这里DID最关键的假设是common trend,也就是两个组别在不处理的情况下,y的趋势是一样的。所以看清楚了,这里DID最关键的假设是common trend,也就是两个组别在不处理的情况下,y的趋势是一样的。

那么你会说了,铁路穿过的城市可能本身GDP也高,而GDP高的城市按照理论GDP增长率可能更高可能更低,所以common trend的假设可能是不对的,那怎么办?

如果这个问题存在,我们可以进一步假设在控制了某些外生变量之后,common trend是对的,比如上个问题,我们可以控制城市在t=0期的GDP level。当我们控制其他变量之后,自然不能直接减两次了,我们需要用上面说的回归式子,即run the following OLS:



好了,我就说到这里了。当然也有可能你控制了X之后common trend 还是不成立,那么你要想其他办法了。有些人会去找工具变量,这个方法我不是多么认可,所以我也就不介绍了。