双差模型 DID 学习
- 一、DID介绍
- 1.1 特点
- 1.2 传统 DID
- 1.3 经典 DID
- 1.4 不同时间的DID
- 1.5 广义 DID
- 1.6 异质性 DID
- 2. DID平行趋势测试
- 3个实际例子
- 3.1 所有人同时开始政治冲击
- 3.1.1 政策效果不随时间变化 DID
- 3.1.2 政策效果随时间变化 DID
- 3.2 个人在不同时期受到政治冲击的影响
- 3.2.1 政策效果不随时间变化 DID
- 3.2.2 政策影响随时间的变化 DID
1.1 特点
Difference-Differences(DID)模型是政策评估的非实验方法中最常用的方法,其中交互项是DID的灵魂。
交互项形式有多种形式,包括 (1) 传统 DIS、(2) 经典 DIS、(3) 同步 DIS、(4) 广义 DIS 和 (5) 异构 DIS。这些在下面介绍。
1.2 传统 DID
差分法是研究“治疗效果”的一种流行方法。一般来说,DID的使用场景是panel data中的人可以分为两类,即subjects政策冲击的“治疗组”和未受政策影响的“对照组”.重点关注政治冲击以及是否受到政治冲击的影响,这是通过引入虚拟变量来实现的。这是:
政策影响前后(pre-post)设置为0和1,是否受政策影响(control-treat)设置为0和1。
因此,模型往往是这样设计的
治疗组虚拟变量测试版记录治疗组的疗效(治疗组和对照组之间的内在差异), 治疗期间的虚拟变量拉姆达控制治疗持续时间的时间效应(治疗期前后的内在时间趋势), X 是其他控制变量和交互作用项下一个代表治疗期间治疗组的真实效果(政治冲击的影响),这是对我们重要的处理效果。然后执行 OLS 估计。
1.3 经典 DID
经典DID在传统DID模型上控制单一固定效应和时间固定效应,去除单一变量。模型如下:
模型解释如下:
(1) u 为个体固定效应。添加个体固定效应后,不必再输入治疗组(Treat i)的虚拟变量,否则会出现多重共线性问题。因为前者包含的信息比后者多(前者控制个体层面,后者只控制群体层面)。
(2) Enter为定时效果。同理,加入时间固定效应时,不必加入治疗期(t后)的虚拟变量。否则,会导致严格的多重共线性,因为前者包含的信息比后者多(前者控制每个周期的时间效应,而后者只控制治疗周期前后的时间效应)。
(3) 注意:估计方法仍然是OLS,但必须使用“聚类稳健标准误差”(cluster-robust standard errors)。
1.4 不同时间的DID
在传统和经典 DID 的模型设置中,一个隐含的假设是治疗组所有人同时开始接受政策冲击.但有时遇到每个人的治疗时间不完全相同的情况(异构时序);例如,试点政策将在不同城市分批推出。这时候就可以使用“异构时序DID”(heterogeneous timing DID)。
异慢性 DID 的关键是治疗持续时间的虚拟变量也因人而异,因为治疗持续时间并不完全相同应该写成 post(i,t),这取决于个体 i 和时间 t.模型设置为以下形状之一:
像5-Period-Panel日期在州申请:
1)定义变量:定义治疗时长的虚拟变量post(i,t),因人而异;
2)识别受影响者:post1(i,t) = (0,0,1,1,1)表示第一个人从第三期开始接受政策待遇; post2(i,t) = (0,0 , 0, 1, 1) 表示第二个人从第四期开始接受保单治疗; post3(i,t) = (0, 0, 0, 0, 0) 表示此人从未受到该政策的影响(属于对照组)。
1.5 广义 DID
以上各种DID方法两者都假设治疗组和对照组之间存在差异, 但有时某项政策正在全国统一实施,目前只有一个治疗组,没有对照组,你还能用DID吗?答案是肯定的,可以试试广义的DID。
使用广义 DID 的重要要求是,虽然每个人都同时受到政策的影响,但政策对每个人的影响不同, 也可以用 intensity(i) 表示。
其中,交互系数是我们关注的对象。此外,文献中还有一个用于区分组的广义DID的阈值程序,i。 H。人为设定一个阈值c,根据变量是否超过这个阈值来定义治疗组和对照组。由于将连续变量压缩为二分变量会丢失大量信息,因此这在实践中很少见。
1.6 异质性 DID
常规治疗效果模型一般假设“同质治疗效果”(homogeneous treatment effects),即治疗效果对所有个体都是相同的。显然,这种假设过于苛刻,无法在实践中实现。更合理的假设是“异质治疗效果”。允许治疗效果因人而异.尤其:
1)作为DIS的一部分,引入了异质性处理效果,即交互项(treat后),即引入相互作用项(对待邮*组)。
2)建模方面,在经典DIS模型中引入三重交互项,构建异构DIS模型。
从上面的公式可以看出,group=0的治疗组的人,治疗效果为s。对于Group=1的治疗组中的个体,治疗效果为(s+t)。因此,治疗效果是异质的(只要三重相互作用项的系数显着)。
3) 推广到多尔,只要将所有个体归为M类,就设置(M-1)类虚拟变量。
注意,DID应用的前提是在没有政策影响的情况下,治疗组和对照组的变化趋势是平行的,所以进行平行趋势检验是绝对必要的。
文献中有两种最常用的检验方法来表明是否满足平行趋势假设:
一,各组因变量均值时间趋势比较;二、回归在任意时间点添加虚拟变量和政策变量之间的交互项,如果交互项的系数在政策或治疗发生之前不显着,这表明平行趋势确实存在。
- 第一种方法(图片来自Stata分享会)是:
- 第二种方式分为:代码运行和图形输出
Installationsbefehl: 安装 coefplot
生成每个时间点虚拟变量与指导变量交互项的交互项
复发
输出图形
学习实例:Mehrperioden-DID:平行趋势测试图
详情见学习链接
3.1 所有人同时开始政治冲击
示例参考学习自:
Sharing Club——DID复制方式详解(一):传统DID
/*生成模拟数据*////摆设60观察,解锁随机数种子在调整观测值60调整一起10101将军我会 =_n//每个值的个数被展开11次,然后减去前 60 个观测值,即60*11-60 = 600,临60个别地10年度面板数据扩大11降低在 1个/60数数///冯我会排序后组生成的时间戳我会 :准时=_n+ 1999xtset我会时间///生成协变量 x1,x2gen x1=普通的(1个,7)一代x2=普通的(2个,5个)///生成单独的固定效应并对时间固定效应进行排序我会当时:基因工业=_nsort我会时间到我会 :曼=_n///生成 treat 和 post 变量2005年年是政治干预的时候,我会临30-60个体为治疗组,其余为对照组 Gen D= 0替换 D= 1个 如果 我会 > 29创邮= 0更换帖子= 1个 如果时间>= 2005年///将基本数据结构保存为dta文件,命名为DID_Basic_Simu.数据,默认保存在当前工作目录路径“DID_Basic_Simu.dta”,代替
3.1.1 政策效果不随时间变化 DID
///访问本文第二部分生成的基本数据结构“DID_Basic_Simu.dta”,清除///产生两个潜在结果并综合最终结果变量以实现政策的真正影响10种类我会 :0 世代= 10 + 5个*x1+ 3个*x2+吨+工业+普通的()种类我会 :y1世代= 10 + 5个*x1+ 3个*x2+吨+工业+普通的() 如果时间< 2005年种类我会 :替换 y1= 10 + 5个*x1+ 3个*x2+ 10 +吨+工业+普通的() 如果时间>= 2005年基因和=y0+丁*(y1-y0)///去除协变量和个体效应对y的影响,绘制剩余残差的图像xtreg y x1 x2,预测,uebin分散时间,线(连接)冯(丁)///输出生成的图片,格式为800*600图导出“article1_1.png”,如果(PNG)替换宽度(800)高度(600)///多元回归形式 reg y c.丁#c.post x1 x2 i.time i.id,健壮eststo regxtreg y c.丁#c.post x1 x2 i.time,absorb(id) 健壮是 aregreghdfe y y c.丁#c.post x1 x2, absorb (id time) vce (robust)我是*,标题(《当前参数值的比较》) ///细胞(b(船尾(%9.3f))和(标准杆)) ///统计资料(N N_g,调速器(%9.0f %9.0克)标签(N组)) ///传奇合作(没有任何)变量标签(_cons 常量)保持(x1 x2.丁#c.post)///ESA和图解法///预生成的年度虚拟变量标签时间,将军(年)注册我.丁#i.time x1 x2,vce(稳健)reghdfe y c.丁#(c.year2-year10) x1 x2, absorb(id time) vce(robust)系数图, ///保持(C.丁#c.year2 c.D#c.year3 c.D#c.year4 c.D#c.year5 c.D#c.year6 c.D#c.year7 c.D#c.year8 c.D#c.year9 c.D#c.year10) ///系数标签(C.丁#c.year2 = "-4" ///C.丁#c.year3 = "-3" ///C.丁#c.year4 = "-2" ///C.丁#c.year5 = "-1" ///C.丁#c.year6 = "0" ///C.丁#c.year7 = "1" ///C.丁#c.year8 = "2" ///C.丁#c.year9 = "3" ///C.丁#c.year10 = "4") ///垂直的///一般的(0) ///y标题(“拳王”) ///x标题(“与接受隐含合同例外的年份相关的时间表”) ///添加图表(行@b @at) ///西普茨(改写(回顾)) ///计划(单声道)///输出生成的图片,格式为800*600图导出“article1_3.png”, 如果(PNG)替换宽度(800)高度(600)
3.1.2 政策效果随时间变化 DID
///访问本文第二部分生成的基本数据结构“DID_Basic_Simu.dta”,清除///生成两个潜在结果并综合最终结果变量,使得政策的实际效果随时间变化,即(5个*吨-T), 因为2005年2009年开始干预,每年的政策应该会有影响24,28,32,36,40.种类我会:0 世代= 10 + 5个 *x1+ 3个 *x2+吨+工业+普通的()种类我会:y1世代= 10 + 5个 *x1+ 3个 *x2+吨+工业+普通的() 如果时间< 2005年种类我会:替换 y1= 10 + 5个 *x1+ 3个 *x2+ 10 +吨+工业+普通的() 如果时间>= 2005年基因和=y0+丁* (y1-y0)///去除协变量和个体效应对y的影响,绘制剩余残差的图像xtreg y x1 x2,预测,uebin分散时间,线(连接)冯(丁)///输出生成的图片,格式为800*600图导出“article1_1.png”,如果(PNG)替换宽度(800)高度(600)///多元回归形式 reg y c.丁#c.post x1 x2 i.time i.id,reststo regxtreg y c.丁#c.post x1 x2 i.time, r feeststo xtreg_feareg y c.丁#c.post x1 x2 i.time, absorb(id) 健壮这是greghdfe和c.丁#c.post x1 x2, absorb (id time) vce (robust)estto reghdfeestout*,标题(《当前参数值的比较》) ///细胞(b(船尾(%9.3f))和(标准杆)) ///统计资料(N N_g,调速器(%9.0f %9.0克)标签(N组)) ///传奇合作(没有任何)变量标签(_cons 常量)保持(x1 x2.丁#c.post)///ESA和图解法///预生成的年度虚拟变量标签时间,将军(年)reghdfe y i.丁#i.time x1 x2, vce(robust) absorb(id 时间)reghdfe y c.丁#(c.year2-year10) x1 x2, absorb(id time) vce(robust)系数图, ///保持(C.丁#c.year2 c.D#c.year3 c.D#c.year4 c.D#c.year5 c.D#c.year6 c.D#c.year7 c.D#c.year8 c.D#c.year9 c.D#c.year10) ///系数标签(C.丁#c.year2 = "-4" ///C.丁#c.year3 = "-3" ///C.丁#c.year4 = "-2" ///C.丁#c.year5 = "-1" ///C.丁#c.year6 = "0" ///C.丁#c.year7 = "1" ///C.丁#c.year8 = "2" ///C.丁#c.year9 = "3" ///C.丁#c.year10 = "4") ///垂直的///一般的(0) ///y标题(“拳王”) ///x标题(“与接受隐含合同例外的年份相关的时间表”) ///添加图表(行@b @at) ///西普茨(改写(回顾)) ///计划(单声道) ///输出生成的图片,格式为800*600图导出“article1_4.png”,如果(PNG)替换宽度(800)高度(600)
3.2 个人在不同时期受到政治冲击的影响
Double Division DID详解(二):Multi-Time Point DID(progressive DID)
所有人都在同一时间开始受到政治冲击:标准 DID
个人在不同时间开始经历政治冲击:时间变量 DIS
/*生成模拟数据*/ ///摆设60观察,解锁随机数种子在调整观测值60 调整一起10101将军我会 =_n///每个值的个数被展开11次,然后减去前 60 个观测值,即60*11-60 = 600,临60个别地10年度面板数据扩大11降低在 1个/60数数///冯我会排序后组生成的时间戳我会:准时=_n+1999xtset我会时间///生成协变量和单一时间效应 gen x1=普通的(1个,7)一代x2=普通的(2个,5个)排序时间我会当时:基因工业=_nsort我会时间到我会:曼=_之内= 0///生成处理变量,此时D为Dit,摆设1个-20存在2004年多年接受影响21-40临2006年年,36-60临2008年年gen D= 0出生日期= 0对于值 i= 1个/20{替换 D= 1个 如果 我会 ==“我”&时间>= 2004年替换出生日期= 2004年 如果 我会 ==“我”}对于值 i= 21/40{替换 D= 1个 如果 我会 ==“我”&时间>= 2006年替换出生日期= 2006年 如果 我会 ==“我”}对于值 i= 41/60{替换 D= 1个 如果 我会 ==“我”&时间>= 2008年替换出生日期= 2008年 如果 我会 ==“我”}///将基本数据结构保存为dta文件,命名为DID_Basic_Simu.数据,默认保存在当前工作目录路径“DID_Basic_Simu_1.dta”,代替
3.2.1 政策效果不随时间变化 DID
/*政策效果不随时间变化 DID*////调用生成的基础数据文件“DID_Basic_Simu_1.dta”,清除///Y 世代解释了政策对受到冲击的个人的真正影响10种类我会:0 世代= 10 + 5个 *x1+ 3个 *x2+吨+工业+普通的()种类我会:y1世代= 10 + 5个 *x1+ 3个 *x2+吨+工业+ 10 +普通的() 如果时间>= 2004年 & 我会 >= 1个 & 我会 <= 20种类我会:替换 y1= 10 + 5个 *x1+ 3个 *x2+吨+工业+ 10 +普通的() 如果时间>= 2006年 & 我会 >= 21 & 我会 <= 40种类我会:替换 y1= 10 + 5个 *x1+ 3个 *x2+吨+工业+ 10 +普通的() 如果时间>= 2008年 & 我会 >= 41 & 我会 <= 60种类我会:替换 y1= 10 + 5个 *x1+ 3个 *x2+吨+工业+普通的() 如果y1== .替换y=y0+丁* (y1-y0)///去除个体效应和协变量对 Y 的影响,获得残差并绘制 xtreg y x1 x2,预测,uebin分散时间,线(连接)冯(丁)///输出生成的图片,格式为800*600图导出“article2_1.png”,如果(PNG)替换宽度(800)高度(600)///保存并输出多个命令的结果 reg y c.D×1×2我.我的时间.我会,reststo regxtreg y c.D×1×2我.时间,r feeststo xtreg_feareg y c.D×1×2我.时间,吸收(我会)robteststo aregreghdfe y c.深×1×2,吸收(我会时间)vce(强壮的)estto reghdfeestout*,标题(《实际参数值的比较》) ///细胞(b(船尾(%9.3f))和(标准杆)) ///统计资料(N N_g,调速器(%9.0f %9.0克)标签(N组)) ///传奇合作(没有任何)变量标签(_cons 常量)保持(x1 x2D)///ESA和图形方法时间-不同 DIS 和事件研究方法的组合///用当年减去此人接受治疗的年份,得到相对时间值事件,并设置-4个期间之前的时间包含在期间内-4个期间,因为有些人不超过-4个一段的时间///然后生成一个虚拟的相对时间值变量eventt,将第一个时间段设置为对照组基线事件=时间-Birth_datereplace 事件= -4个 如果事件<= -4个选项卡事件,将军(事件)删除 eventt1xtreg 和 eventt*x1 x2 我.时间,r fecoefplot, ///保持(事件*) ///系数标签(事件t2= “-3” ///事件t3= “-2” ///事件t4= “-1” ///事件5= “0” ///事件6= “1” ///事件7= “2” ///事件8= “3” ///事件9= “4” ///事件10= “5”) ///垂直的///一般的(0) ///y标题(“拳王”) ///x标题(“与接受隐含合同例外的年份相关的时间表”) ///添加图表(行@b @at) ///西普茨(改写(回顾)) ///计划(单声道)///输出生成的图片,格式为800*600图导出“article2_2.png”,如果(PNG)替换宽度(800)高度(600)
3.2.2 政策影响随时间的变化 DID
/*政治会影响时间*////调用生成的基础数据文件“DID_Basic_Simu_1.dta”,清除///对于 Y 世代,将实际政策效果设置为3个, 并且每年都在增加3个种类我会:0 世代= 10 + 5个 *x1+ 3个 *x2+吨+工业+普通的()种类我会:y1世代= 10 + 5个 *x1+ 3个 *x2+吨+工业+ (时间-诞生+ 1个 ) * 3个 +普通的() 如果时间>= 2004年 & 我会 >= 1个 & 我会 <= 20种类我会:替换 y1= 10 + 5个 *x1+ 3个 *x2+吨+工业+ (时间-诞生+ 1个 ) * 3个 +普通的() 如果时间>= 2006年 & 我会 >= 21 & 我会 <= 40种类我会:替换 y1= 10 + 5个 *x1+ 3个 *x2+吨+工业+ (时间-诞生+ 1个 ) * 3个 +普通的() 如果时间>= 2008年 & 我会 >= 41 & 我会 <= 60种类我会:替换 y1= 10 + 5个 *x1+ 3个 *x2+吨+工业+普通的() 如果y1== .替换y=y0+丁* (y1-y0)///去除个体效应和协变量对 Y 的影响,获得残差并绘制 xtreg y x1 x2,预测,uebin分散时间,线(连接)冯(丁)///输出生成的图片,格式为800*600图导出“article2_3.png”,如果(PNG)替换宽度(800)高度(600)///保存并输出多个命令的结果 reg y c.D×1×2我.我的时间.我会,reststo regxtreg y c.D×1×2我.时间,r feeststo xtreg_feareg y c.D×1×2我.时间,吸收(我会)robteststo aregreghdfe y c.深×1×2,吸收(我会时间)vce(强壮的)estto reghdfeestout*,标题(《实际参数值的比较》) ///细胞(b(船尾(%9.3f))和(标准杆)) ///统计资料(N N_g,调速器(%9.0f %9.0克)标签(N组)) ///传奇合作(没有任何)变量标签(_cons 常量)保持(x1 x2D)///ESA和图形方法时间-不同 DIS 和事件研究方法的组合///用当年减去此人接受治疗的年份,得到相对时间值事件,并设置-4个期间之前的时间包含在期间内-4个期间,因为有些人不超过-4个一段的时间///然后生成一个虚拟的相对时间值变量eventt,将第一个时间段设置为对照组基线事件=时间-Birth_datereplace 事件= -4个 如果事件<= -4个选项卡事件,将军(事件)删除 eventt1xtreg 和 eventt*x1 x2 我.时间,r fecoefplot, ///保持(事件*) ///系数标签(事件t2= “-3” ///事件t3= “-2” ///事件t4= “-1” ///事件5= “0” ///事件6= “1” ///事件7= “2” ///事件8= “3” ///事件9= “4” ///事件10= “5”) ///垂直的///一般的(0) ///y标题(“拳王”) ///x标题(“与接受隐含合同例外的年份相关的时间表”) ///添加图表(行@b @at) ///西普茨(改写(回顾)) ///计划(单声道)///输出生成的图片,格式为800*600图导出“article2_2.png”,如果(PNG)替换宽度(800)高度(600)
本文总结的项目如下:
开学大礼包:如何使用双差法的交叉项(目前最全的攻略)
Mehrperioden-DID:平行趋势测试图
Sharing Club——DID复制方式详解(一):传统DID
Double Division DID详解(二):Multi-Time Point DID(progressive DID)