精华内容
下载资源
问答
  • 双重差分模型了解一下?

    万次阅读 2019-08-31 09:55:43
    总第163篇/张俊红今天给大家介绍一种比较常用分析方法。叫做双重差分法。啥叫个双重差分法呢?我们先不管这个什么法,我们直接来看例子。假如现在市场同学做了一场促销活动,然后...

    总第163篇/张俊红

    今天给大家介绍一种比较常用分析方法。叫做双重差分法。啥叫个双重差分法呢?我们先不管这个什么法,我们直接来看例子。

    假如现在市场同学做了一场促销活动,然后让你评估一下这场活动的效果怎么样,假设你们事先已经明确了活动的目标就是提高销量。那要看活动效果怎么样,其实就是看一下活动前后的销量有没有变化。通过对比活动前后的数据,你发现活动前后销量增加了10%,可是你能说明这10%全是活动带来的吗?很显然不太能。

    为什么不能呢?是因为如果没有活动,不同时间段的销量本来就会发生变化。知道了原因了,现在我们需要去排除原因。那怎么排除呢?我们可以找一部分与活动区域相似的区域(注意,这里要相似的区域),然后给这些区域不上活动,看不上活动的区域,在两个时间段内销量的变化情况。如果你现在通过数据发现,不上活动的区域在两段时间内销量变化了4%。

    通过上活动与不上活动两部分区域在两段时间内的比较,我们就可以得出活动带来的效果是:
    总增量-自然增量=10%-4%=6%。

    我们把前面只对活动前后的数据比较叫做一重差分法。对上活动区域前后效果与不上活动区域前后效果的比较称为双重差分,简称DID(difference in difference)。

    再次强调一下,用双重拆分法有一个很强的假设条件,就是上活动区域与不上活动区域如果在没有活动的情况下,两部分区域的变化趋势应该是一样的。

    有的时候可能因为各种原因的限制,没办法找一部分相似的城市去做对照,这个时候怎么办呢,可以找类似时间段内没有活动时的销量增长幅度来和有活动以后的增长活动做对比。

    这个分析模型的核心,其实就是告诉我们,影响数据变化的因素有很多,我们不能单纯地只看一个总包的效果,要尽可能的去拆分到具体每一种的影响效果是如何的。只有这样才能更加精准的定位到问题。

    你还可以看:

    一种分析框架

    展开全文
  • 双重差分模型DID学习笔记

    万次阅读 多人点赞 2020-06-22 20:17:50
    双重差分模型 (Difference-Differences, DID)是政策评估的非实验方法中最为常用的一种方法,其中交互项是DID的灵魂。 交互项形式拥有各种形式,包括(1)传统DID;(2)经典DID;(3)异时DID;(4)广义DID;以及...

    1.DID介绍

    1.1 特点

    双重差分模型 (Difference-Differences, DID)是政策评估的非实验方法中最为常用的一种方法,其中交互项是DID的灵魂
    交互项形式拥有各种形式,包括(1)传统DID;(2)经典DID;(3)异时DID;(4)广义DID;以及(5)异质性DID。下面分别介绍这几种。

    1.2 传统DID

    双重差分法是研究“处理效应”(treatment effects)的流行方法。一般来说,DID的使用场景为,在面板数据中,个体可分为两类,即受到政策冲击的“处理组”(treatment group)与未受政策影响的“控制组”(control group)。重点落在政策冲击和是否受到政策冲击,通过引入虚拟变量来实现。即:
    政策冲击前后(pre-post)设为0和1,是否受到政策冲击(control-treat)设为0和1.
    在这里插入图片描述
    在这里插入图片描述
    因而,模型常设计为
    在这里插入图片描述
    处理组虚拟变量 beta 捕捉了处理组的组别效应(处理组与控制组的固有差别),处理期虚拟变量lambda控制了处理期的时间效应(处理期前后的固有时间趋势), X为其他控制变量,而交互项xigema 则代表了处理组在处理期的真正效应(受到政策冲击的效应),这正是我们关心的处理效应。然后进行OLS估计即可。

    1.3 经典DID

    经典DID是在传统DID模型上控制了个体固定效应(individual fixed effects)和时间固定效应(time fixed effects),并去除单独变量。模型如下:
    在这里插入图片描述
    模型解释如下:
    (1)u 为个体固定效应。加入个体固定效应之后,就不必再放入处理组虚拟变量(treat i),否则会引起多重共线性问题。因为前者包含比后者更多的信息(前者控制到个体层面,而后者仅控制到组别层面)。
    (2)入 为时间固定效应。同理,加入时间固定效应就不用再加处理期虚拟变量(post t)。否则,将导致严格多重共线性,因为前者包含比后者更多的信息(前者控制了每一期的时间效应,而后者仅控制处理期前后的时间效应)
    (3)注意:估计方法依然是OLS,但须使用“聚类稳健标准误”(cluster-robust standard errors)。

    1.4 异时DID

    在传统与经典DID的模型设定中,一个隐含假设是,处理组的所有个体开始受到政策冲击的时间均完全相同。但有时也会遇到每位个体的处理期不完全一致的情形(heterogeneous timing);比如,某项试点政策在不同城市分批推出。此时,可使用“异时DID”(heterogeneous timing DID)。
    异时DID的关键在于,既然每位个体的处理期不完全一致,则处理期虚拟变量也因个体而异,故应写为post(i,t),既依赖于个体 i,也依赖于时间 t。模型设定为如下任意一种形式:

    在这里插入图片描述
    在这里插入图片描述
    举一个5期面板数据在stata的应用:
    1)定义变量:定义因个体而异的处理期虚拟变量post(i,t);
    2)识别受影响:post1(i,t) = (0,0,1,1,1)代表第1位个体从第3期开始受到政策处理;post2(i,t) = (0,0,0,1,1)代表第2位个体从第4期开始受到政策处理;post3(i,t) = (0,0,0,0,0)代表从未受到政策冲击(属于控制组)。

    1.5 广义DID

    以上各种DID方法均假设存在处理组与控制组的区别,但有时某项政策在全国统一铺开,此时只有处理组,并没有控制组,是否还能使用DID呢?答案是“能”,可以尝试“广义DID”(generalized DID)。
    使用广义DID的重要前提是,虽然所有个体均同时受到政策冲击,但政策对于每位个体的影响力度并不相同,不妨以 intensity(i) 来表示。
    在这里插入图片描述
    在这里插入图片描述
    其中,交互项系数为我们关注的对象。此外对于广义DID,文献中也有门槛区分组别的方法,即人为地设定一个门槛值 c,根据 变量是否超过此门槛值来定义处理组与控制组。因为将连续变量压缩为二分变量损失了不少信息,故在实践中已不多见。
    在这里插入图片描述

    1.6 异质性DID

    传统的处理效应模型一般假设“同质性处理效应”(homogeneous treatment effects),即所有个体的处理效应都相同。显然,此假定太苛刻,在实践中难以成立。更为合理的假定则为“异质性处理效应”(heterogeneous treatment effects),即允许每位个体的处理效应不尽相同。具体而言:
    1)在DID的框架下,引入异质性处理效应,即在于对交互项(treatpost)的调整,即引入在组别上的交互项(treatpost*group)。
    2)模型建立上,在经典DID的模型中,再引入三重交互项 ,构建异质性DID模型。
    在这里插入图片描述
    由上式可知,对于group=0 那类处理组个体,其处理效应为 s。而对于 group=1那类处理组个体,其处理效应为(s+t) 。因而其处理效应是异质的(只要三重交互项的系数显著)。
    3)推广到多雷,只要将将所有个体分为 M 类,设立 (M -1) 个类别虚拟变量。

    2. DID 平行趋势检验

    注意,DID应用的前提是未受到政策冲击时,treat组和control组的变化趋势是平行的,因而进行平行趋势检验是绝对必要的。
    从文献来看,最为常见的展示是否符合平行趋势假设的检验方法有两个:
    其一,对比不同组别因变量均值的时间趋势;其二,回归中加入各时点虚拟变量与政策变量的交互项,若政策或称为处理发生前的交互项系数不显著,则表明的确有着平行趋势。

    • 第一种的方法(图片来源于stata连享会)为:
      在这里插入图片描述
    • 第二种方式分为:代码操作和图形输出

    安装命令:安装 coefplot
    生成各时点虚拟变量与政策变量的交互项的交互项
    进行回归
    输出图形
    例子学习于:多期DID:平行趋势检验图示
    详见学习链接

    3 实践举例

    3.1 所有个体开始受到政策冲击的时间均完全相同

    例子参考学习自:
    连享会-倍分法DID详解 (一):传统 DID

    /* 模拟数据的生成 */
    ///设定60个观测值,设定随机数种子
    clear all
    set obs 60
    set seed 10101
    gen id = _n
    // 每一个数值的数量扩大11倍,再减去前六十个观测值,即60*11-60 = 600,为60个体10年的面板数据
    expand 11
    drop in 1/60
    count
    ///id分组生成时间标识
    bysort id : gen time = _n + 1999
    xtset id time
    ///生成协变量x1, x2
    gen x1 = rnormal(1,7)
    gen x2 = rnormal(2,5)
    ///生成个体固定效应和时间固定效应
    sort time id
    by time : gen ind = _n
    sort id time
    by id : gen T = _n
    ///生成treat和post变量,以2005年为接受政策干预的时点,id30-60的个体为处理组,其余为控制组
    gen D = 0
    replace D = 1 if id > 29
    gen post = 0
    replace post = 1 if time >= 2005
    ///将基础数据结构保存成dta文件,命名为DID_Basic_Simu.dta,默认保存在当前的 working directory 路径下
    save "DID_Basic_Simu.dta",replace
    

    3.1.1 政策效果不随时间而变DID

    ///调用本文第二部分生成的基础数据结构
    use "DID_Basic_Simu.dta",clear
    ///生成两种潜在结果,并且合成最终的结果变量,令政策的真实效果为10
    bysort id : gen y0 = 10 + 5*x1 + 3*x2 + T +ind + rnormal()
    bysort id : gen y1 = 10 + 5*x1 + 3*x2 + T +ind + rnormal() if time < 2005
    bysort id : replace y1 = 10 + 5*x1 + 3*x2 + 10 + T +ind + rnormal() if time >= 2005
    gen y = y0 + D*(y1-y0)
    ///去除协变量和个体效应对y的影响,画出剩余残差的图像
    xtreg y x1 x2,fe r
    predict e, ue
    binscatter e time, line(connect) by(D)
    ///输出生成的图片,令格式为800*600
    graph export "article1_1.png",as(png) replace width(800) height(600)
    ///多种回归形式
    reg y c.D#c.post x1 x2 i.time i.id,robust
    eststo reg
    xtreg y c.D#c.post x1 x2 i.time,absorb(id) robust
    eststo areg
    reghdfe y y c.D#c.post x1 x2, absorb(id time) vce(robust)
    estout *, title("The Comparison of Actual Paramerer Values") ///
    		 cells(b(star fmt(%9.3f)) se(par)) ///
    		 stats(N N_g, fmt(%9.0f %9.0g) label(N Groups)) ///
    		 legend collabels(none) varlabels(_cons Constant) keep(x1 x2 c.D#c.post)
    ///ESA及图示法
    ///预先生成年度虚拟变量
    tab time,gen(year)
    reg y i.D#i.time x1 x2, vce(robust)
    reghdfe y c.D#(c.year2-year10) x1 x2, absorb(id time) vce(robust)
    coefplot, ///
       keep(c.D#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)  ///
       coeflabels(c.D#c.year2 = "-4"   ///
       c.D#c.year3 = "-3"           ///
       c.D#c.year4 = "-2"           ///
       c.D#c.year5 = "-1"           ///
       c.D#c.year6  = "0"             ///
       c.D#c.year7  = "1"              ///
       c.D#c.year8  = "2"              ///
       c.D#c.year9  = "3"              ///
       c.D#c.year10 = "4")            ///
       vertical                             ///
       yline(0)                             ///
       ytitle("Coef")                 ///
       xtitle("Time passage relative to year of adoption of implied contract exception") ///
       addplot(line @b @at)                 ///
       ciopts(recast(rcap))                 ///
       scheme(s1mono)
    ///输出生成的图片,令格式为800*600
    graph export "article1_3.png", as(png) replace width(800) height(600)
    

    3.1.2 政策效果随时间而变DID

    ///调用本文第二部分生成的基础数据结构
    use "DID_Basic_Simu.dta",clear
    ///生成两种潜在结果,并且合成最终的结果变量,令政策的真实效果随时间发生变化,即(5*T-T),由于从2005年开始接受干预,因此,每年的政策效果应为2428323640.
    bysort id: gen y0 = 10  + 5 * x1 + 3 * x2 + T + ind  + rnormal()
    bysort id: gen y1 = 10  + 5 * x1 + 3 * x2 + T + ind  + rnormal() if time < 2005
    bysort id: replace y1 = 10  + 5 * x1 + 3 * x2 + 10 + T + ind  + rnormal() if time >= 2005
    gen y = y0 + D * (y1 - y0)
    ///去除协变量和个体效应对y的影响,画出剩余残差的图像
    xtreg y x1 x2 , fe r
    predict e,ue
    binscatter e time, line(connect) by(D)
    ///输出生成的图片,令格式为800*600
    graph export "article1_1.png",as(png) replace width(800) height(600)
    ///多种回归形式
    reg y c.D#c.post x1 x2 i.time i.id,	r
    eststo reg
    xtreg y c.D#c.post x1 x2 i.time, r fe
    eststo xtreg_fe
    areg y c.D#c.post x1 x2 i.time, absorb(id) robust
    eststo areg
    reghdfe y c.D#c.post x1 x2, absorb(id time) vce(robust)
    eststo reghdfe
    estout *, title("The Comparison of Actual Paramerer Values") ///
    		 cells(b(star fmt(%9.3f)) se(par)) ///
    		 stats(N N_g, fmt(%9.0f %9.0g) label(N Groups)) ///
    		 legend collabels(none) varlabels(_cons Constant) keep(x1 x2 c.D#c.post)
    ///ESA及图示法
    ///预先生成年度虚拟变量
    tab time, gen(year)
    reghdfe y i.D#i.time x1 x2, vce(robust) absorb(id time)
    reghdfe y c.D#(c.year2-year10) x1 x2, absorb(id time) vce(robust)
    coefplot, ///
       keep(c.D#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)  ///
       coeflabels(c.D#c.year2 = "-4"   ///
       c.D#c.year3 = "-3"           ///
       c.D#c.year4 = "-2"           ///
       c.D#c.year5 = "-1"           ///
       c.D#c.year6  = "0"             ///
       c.D#c.year7  = "1"              ///
       c.D#c.year8  = "2"              ///
       c.D#c.year9  = "3"              ///
       c.D#c.year10 = "4")            ///
       vertical                             ///
       yline(0)                             ///
       ytitle("Coef")                 ///
       xtitle("Time passage relative to year of adoption of implied contract exception") ///
       addplot(line @b @at)                 ///
       ciopts(recast(rcap))                 ///
       scheme(s1mono)
     ///输出生成的图片,令格式为800*600
     graph export "article1_4.png",as(png) replace width(800) height(600)		 
    
    

    3.2 个体受到政策冲击的时间不相同

    倍分法DID详解 (二):多时点 DID (渐进DID)
    所有个体开始受到政策冲击的时间均完全相同:Standard DID
    在这里插入图片描述
    个体开始受到政策冲击的时间不相同:Time-varying DID
    在这里插入图片描述

     /* 模拟数据的生成 */
     ///设定60个观测值,设定随机数种子
    clear all
    set obs 60 
    set seed 10101
    gen id =_n
    /// 每一个数值的数量扩大11倍,再减去前六十个观测值,即60*11-60 = 600,为60个体10年的面板数据
    expand 11
    drop in 1/60
    count
    ///id分组生成时间标识
    bysort id: gen time = _n+1999
    xtset id time
    ///生成协变量以及个体和时间效应
    gen x1 = rnormal(1,7)
    gen x2 = rnormal(2,5)
    sort time id
    by time: gen ind = _n
    sort id time
    by id: gen T = _n
    gen y = 0
    ///生成处理变量,此时D为Dit,设定1-202004年接受冲击,21-402006年,36-602008年
    gen D = 0
    gen birth_date = 0
    forvalues i = 1/20{
    	replace D = 1 if id  == `i' & time >= 2004
    	replace birth_date = 2004 if id == `i'
    }
    forvalues i = 21/40{
    	replace D = 1 if id  == `i' & time >= 2006
    	replace birth_date = 2006 if id == `i'
    }
    forvalues i = 41/60{
    	replace D = 1 if id  == `i' & time >= 2008
    	replace birth_date = 2008 if id == `i'
    }
    ///将基础数据结构保存成dta文件,命名为DID_Basic_Simu.dta,默认保存在当前的 working directory 路径下
    save "DID_Basic_Simu_1.dta", replace
    

    3.2.1 政策效果不随时间而变DID

    /* 政策效果不随时间而变DID */
    ///调用生成的基础数据文件
    use "DID_Basic_Simu_1.dta",clear
    ///Y的生成,使得接受冲击的个体的政策真实效果为10
    bysort id: gen y0 = 10  + 5 * x1 + 3 * x2 + T + ind  + rnormal()
    bysort id: gen y1 = 10  + 5 * x1 + 3 * x2 + T + ind  + 10 + rnormal() if time >= 2004 & id >= 1 & id <= 20
    bysort id: replace y1 = 10  + 5 * x1 + 3 * x2 + T + ind  + 10 + rnormal() if time >= 2006 & id >= 21 & id <= 40
    bysort id: replace y1 = 10  + 5 * x1 + 3 * x2 + T + ind  + 10 + rnormal() if time >= 2008 & id >= 41 & id <= 60
    bysort id: replace y1 = 10  + 5 * x1 + 3 * x2 + T + ind  + rnormal() if y1 == .
    replace y = y0 + D * (y1 - y0)
    ///去除个体效应和协变量对Y的影响,得到残差并画图
    xtreg y x1 x2 , fe r
    predict e, ue
    binscatter e time, line(connect) by(D)
    ///输出生成的图片,令格式为800*600
    graph export "article2_1.png",as(png) replace width(800) height(600)
    ///保存并输出多个命令的结果
    reg y c.D x1 x2 i.time i.id, r
    eststo reg
    xtreg y c.D x1 x2 i.time, r fe
    eststo xtreg_fe
    areg y c.D x1 x2 i.time, absorb(id) robust
    eststo areg
    reghdfe y c.D x1 x2, absorb(id time) vce(robust)
    eststo reghdfe
    estout *, title("The Comparison of Actual Parameter Values") ///
    		 cells(b(star fmt(%9.3f)) se(par)) ///
    		 stats(N N_g, fmt(%9.0f %9.0g) label(N Groups)) ///
    		 legend collabels(none) varlabels(_cons Constant) keep(x1 x2 D)
    ///ESA及图示法   Time-varying DID 和 Event Study Approach 的结合
    ///用当前年份减去个体接受处理的年份,得到相对的时间值event,将 -4 期之前的时间归并到第 -4 期,由于部分个体没有多于 -4 期的时间
    ///然后生成相对时间值的虚拟变量,eventt,并将首期设定为基准对照组
    gen event = time - birth_date
    replace event = -4 if event <= -4
    tab event, gen(eventt)
    drop eventt1
    xtreg y eventt* x1 x2 i.time, r fe
    coefplot, ///
       keep(eventt*)  ///
       coeflabels(eventt2 = "-3"   ///
       eventt3 = "-2"             ///
       eventt4 = "-1"             ///
       eventt5 = "0"              ///
       eventt6  = "1"             ///
       eventt7  = "2"             ///
       eventt8  = "3"             ///
       eventt9  = "4"             ///
       eventt10 = "5")           ///
       vertical                       ///
       yline(0)                       ///
       ytitle("Coef")               ///
       xtitle("Time passage relative to year of adoption of implied contract exception") ///
       addplot(line @b @at)                 ///
       ciopts(recast(rcap))                 ///
       scheme(s1mono)
    ///输出生成的图片,令格式为800*600
    graph export "article2_2.png",as(png) replace width(800) height(600)
    

    3.2.2 政策效果随时间而变DID

    /*政策效果随时间而变DID*/
    ///调用生成的基础数据文件
    use "DID_Basic_Simu_1.dta",clear
    ///Y的生成,设定真实的政策效果为当年为3,并且每年增加3
    bysort id: gen y0 = 10  + 5 * x1 + 3 * x2 + T + ind + rnormal()
    bysort id: gen y1 = 10  + 5 * x1 + 3 * x2 + T + ind  + (time - birth + 1 ) * 3 + rnormal() if time >= 2004 & id >= 1 & id <= 20
    bysort id: replace y1 = 10  + 5 * x1 + 3 * x2 +  T + ind  + (time - birth + 1 ) * 3  + rnormal() if time >= 2006 & id >= 21 & id <= 40
    bysort id: replace y1 = 10  + 5 * x1 + 3 * x2 +  T + ind  + (time - birth + 1 ) * 3  + rnormal() if time >= 2008 & id >= 41 & id <= 60
    bysort id: replace y1 = 10  + 5 * x1 + 3 * x2 +  T + ind  + rnormal() if y1 == .
    replace y = y0 + D * (y1 - y0)
    ///去除个体效应和协变量对Y的影响,得到残差并画图
    xtreg y x1 x2 , fe r
    predict e, ue
    binscatter e time, line(connect) by(D)
    ///输出生成的图片,令格式为800*600
    graph export "article2_3.png",as(png) replace width(800) height(600)
    ///保存并输出多个命令的结果
    reg y c.D x1 x2 i.time i.id, r
    eststo reg
    xtreg y c.D x1 x2 i.time, r fe
    eststo xtreg_fe
    areg y c.D x1 x2 i.time, absorb(id) robust
    eststo areg
    reghdfe y c.D x1 x2, absorb(id time) vce(robust)
    eststo reghdfe
    estout *, title("The Comparison of Actual Parameter Values") ///
    		 cells(b(star fmt(%9.3f)) se(par)) ///
    		 stats(N N_g, fmt(%9.0f %9.0g) label(N Groups)) ///
    		 legend collabels(none) varlabels(_cons Constant) keep(x1 x2 D)
    ///ESA及图示法   Time-varying DID 和 Event Study Approach 的结合
    ///用当前年份减去个体接受处理的年份,得到相对的时间值event,将 -4 期之前的时间归并到第 -4 期,由于部分个体没有多于 -4 期的时间
    ///然后生成相对时间值的虚拟变量,eventt,并将首期设定为基准对照组
    gen event = time - birth_date
    replace event = -4 if event <= -4
    tab event, gen(eventt)
    drop eventt1
    xtreg y eventt* x1 x2 i.time, r fe
    coefplot, ///
       keep(eventt*)  ///
       coeflabels(eventt2 = "-3"   ///
       eventt3 = "-2"           ///
       eventt4 = "-1"           ///
       eventt5 = "0"           ///
       eventt6  = "1"             ///
       eventt7  = "2"              ///
       eventt8  = "3"              ///
       eventt9  = "4"              ///
       eventt10 = "5")            ///
       vertical                             ///
       yline(0)                             ///
       ytitle("Coef")                 ///
       xtitle("Time passage relative to year of adoption of implied contract exception") ///
       addplot(line @b @at)                 ///
       ciopts(recast(rcap))                 ///
       scheme(s1mono)
    ///输出生成的图片,令格式为800*600
    graph export "article2_2.png",as(png) replace width(800) height(600)
    

    本文学习总结的文章分别如下:
    开学礼包:如何使用双重差分法的交叉项(迄今最全攻略)
    多期DID:平行趋势检验图示
    连享会-倍分法DID详解 (一):传统 DID
    倍分法DID详解 (二):多时点 DID (渐进DID)

    展开全文
  • 双重差分小介

    2021-07-25 13:27:45
    双重差分,顾名思义就是差分两次。那么差分和我小叮当又有什么关系呢?更何况是差分两次。别急,听我们慢慢道来。 双重差分模型是计量经济学中的一种常见的模型。它的作用是探究一项实验或一个事件的影响,有一丢丢...

    1 引言

    双重差分,顾名思义就是差分两次。那么差分和我小叮当又有什么关系呢?更何况是差分两次。别急,听我们慢慢道来。
    双重差分模型是计量经济学中的一种常见的模型。它的作用是探究一项实验或一个事件的影响,有一丢丢类似ab test。有别于刻画简单的相关关系的线性回归,双重差分是关于因果推断的小巧、实用的模型。它的由来要从线性回归的假设说起。

    2 线性回归假设

    我们都知道线性回归,我们也可能都不知道线性回归。它就是如下这个“简单”的式子:

    Y=βX+ε Y=\beta X+\varepsilon

    我们在快乐使用线性回归的同时,往往忽略了线性回归模型的4个前提条件:

    • 线性关系

    • 严外生性

      E(εtX)=E(εtX1,X2Xn)=0E(\varepsilon_{t}|X)=E(\varepsilon_{t}|X_{1},X_{2}\cdots X_{n})=0

    • 无完全共线性

    • 球形误差方差

      E(εt2X)=σ2E(\varepsilon_{t}^{2}|X)=\sigma^{2}

      E(εtεsX)=0E(\varepsilon_{t}\varepsilon_{s}|X)=0

    用人话来说,Y和X必须满足线性关系(废话。。)。残差(实际值与估计值的差异)与X不相关并且它自身的分布满足同方差、不存在自相关的性质。不能有一个X是别的几个X的爸爸(被线性表示)。好的,聪明的我们已经准备忽略这些前提条件了。且慢,如果前提条件不满足的话可是会使估计不准的哦。

    其中,严外生性就是一个很傲娇(容易不满足)的条件。在这种情况下,我们常说这个模型具有内生性问题。我们再用小学数学回顾一下什么是严外生性。

    3 严外生性

    E(εtX)=E(εtX1,X2Xn)=0E(\varepsilon_{t}|X)=E(\varepsilon_{t}|X_{1},X_{2}\cdots X_{n})=0

    t=1,2nt=1,2\cdots n

    根据重复期望法则E(YX)=E[E(YX,Z)X]E(Y|X)=E[E(Y|X,Z)|X],有

    E(εtXt)=E[E(εtX)Xt]=0E(\varepsilon_{t}|X_{t})=E[E(\varepsilon_{t}|X)|X_{t}]=0

    E(εt)=E[E(εtX)]=0E(\varepsilon_{t})=E[E(\varepsilon_{t}|X)]=0

    从而有

    E(Xsεt)=E[E(XsεtX)]=0E(X_{s}\varepsilon_{t})=E[E(X_{s}\varepsilon_{t}|X)]=0

    因此cov(Xs,εt)=0cov(X_{s},\varepsilon_{t})=0,假设要求扰动项εt\varepsilon_{t}与解释变量之间没有线性相关性。

    4 内生性问题常见形式

    好的,我们已经成功(没)搞明白了学术中的严外生性。那么,在实际的数据中,内生性问题是怎么表现的呢?

    • 遗漏解释变量(还有别的X可以有效的估计Y)

    • X与Y互为因果(如X为教育水平,Y为收入,教育水平可以影响收入,同时,收入也可以影响教育水平,如读个MBA)

    5 解决方案

    • 工具变量法(Instrumental Variable)
      找到一个变量和内生解释变量相关,但是和随机扰动项不相关的外生变量。同其他已有的外生变量一起回归,得到内生变量的估计值,以此作为IV,放到原来的回归方程中进行回归。
      例子,Y为内战爆发概率,X为经济增长,IV为降雨量。内战爆发概率和经济增长本身互为因果(存在内生性问题),降雨量和经济增长有关(农业国家),同时,降雨量只能通过影响经济增长单向的影响内战爆发概率。

    • 双重差分法(Differences-in-Differences, DID)
      倘若出现了一次外部冲击,这次冲击影响了一部分样本,对另一部分样本则无影响,而我们想看一下这次外部冲击到底有何影响,双重差分法就是用来研究这次冲击的净效应的。由于冲击相对于研究样本而言一般是外生的,因而不存在反向因果问题。

    好的,我们的大明星双重差分模型终于出现了。

    6 双重差分模型

    双重差分模型的形式也比较简单,本质上还是一个线性回归。

    Yit=β0+β1D+β2T+β3(D×T)+εitY_{it}=\beta_{0}+\beta_{1}D+\beta_{2}T+\beta_{3}(D\times T)+\varepsilon_{it}

    D为分组虚拟变量。在研究事件或政策影响时,若受冲击的影响,则个体i属于实验组,D=1D=1,反之个体i属于对照组,D=0D=0。T为时间的虚拟变量(事件或政策有一个发生的时点),冲击之前T=0T=0,冲击之后T=1T=1D×TD\times T为分组虚拟变量与时间虚拟变量的交互项(乘在一起),其系数β3\beta_{3}就反映了冲击的净效应。

    哇塞,是不是看上去很简单。在这个模型中,我们还可以加入一些别的控制变量。同时,双重差分模型也有自己的前提条件,实验组和对照组在冲击前有平行趋势,是不是有点像ab test?

    总而言之,双重差分模型可以帮助你科学地评估某项事件或政策的影响。让你再也不用担心老板振聋发聩地问你,你说说这到底有啥影响?

    7 Takeaways

    • 关注模型假设
    • 基于因果推断的机器学习(瞬间升华)
    展开全文
  • 使用双重差分需要注意的问题——双重差分项与随机误差项无关 即“共同趋势”,也就是共同的时间趋势 分组的随机性 分组时可能存在的内生性 控制可能对政策实施造成影响的因素。 政策预期 加入以前年份虚拟变量和分组...

    使用双重差分需要注意的问题——双重差分项与随机误差项无关

    即“共同趋势”,也就是共同的时间趋势

    分组的随机性

    • 分组时可能存在的内生性

    控制可能对政策实施造成影响的因素。

    • 政策预期

    加入以前年份虚拟变量和分组虚拟变量的交叉项,若该交叉项系数不显著而主要回归系数仍显著,则排除政策预期影响。

    展开全文
  • DID双重差分方法
  • DID-双重差分模型

    千次阅读 2020-04-12 20:19:38
    DID-双重差分模型 DID(difference-in-differences model)也叫双重差分模型。 现在要修一条铁路,铁路是条线,所以必然会有穿过的城市和没有被穿过的城市。记Di=1 如果城市i被穿过,Di=0 如果城市i没有被穿过。 ...
  • 通过分析2005—2019年省级面板数据,利用双重差分模型,分别从单位产值能耗、工业污染排放量和资源税收入三个方面评估煤炭资源税改革的政策效果。结果表明,煤炭资源税改革对于节能减排有积极促进作用,可以有效增加资源...
  • Difference-in-Differences 双重差分
  • 基于双重差分法的城市大型体育赛事经济效应研究,李康萍,陈林,近年来,随着中国经济的高速发展与大型体育赛事的不断兴办,体育产业及重大体育赛事对国民经济产生的重大影响愈发明显。该文结合
  • 论文分享1 & 双重差分方法 DID [关于双重差分方法 DID](https://blog.csdn.net/Claire_chen_jia/article/details/106903842) 关于双重差分方法 DID
  • 通过建立双重差分模型,研究大秦线、侯月线、神黄线3条亿吨级铁路运煤专线开通对地区经济增长的影响,得出以下结论:我国亿吨级铁路运煤专线的开通改变了煤炭资源的空间配置格局和地区能源禀赋,提高了地区间的交通...
  • 简单介绍一下实证论文中双重差分法(DID)的平行趋势检验(Parallel Trend Test)在Stata中如何操作。 (本文首发于个人微信公众号DMETP,欢迎关注!) 一、平行趋势假定 平行趋势假定是实证论文中使用DID的前提,...
  • 基于2008-2018年相关数据,利用双重差分(DID)模型,考察去产能政策对我国产业结构产生的影响。结果表明,煤炭去产能政策对我国产业结构调整产生较为明显的正向促进效应。一方面, 煤炭去产能政策通过提高煤炭企业...
  • 双重差分吗,就是差分两次。 我们先来举个栗子。 现在要修一条铁路,铁路是条线,所以必然会有穿过的城市和没有被穿过的城市。记Di=1 如果城市i被穿过,Di=0 如果城市i没有被穿过。 现在我们比较好奇铁路修好...
  • 双重差分法 在做随机实验或自然实验时,实验的效果往往需要一段时间才能显现出来,而我们关心的恰恰是被解释变量试验前后的变化。为此,考虑两期面板数据: (注:面板数据是一个m*n的数据矩阵,记录的是n个时间节点...
  • 简单介绍一下实证论文中双重差分法(DID)的安慰剂检验(Placebo Test)在Stata中如何操作。 (本文首发于个人微信公众号DMETP,是往期两篇推文的合辑,欢迎关注!) 下面的内容根据实际使用的数据集分为两个部分。 ...
  • DID实现命令以及基于倾向得分PSM的DID实现,含DID实现各项条件检验
  • 贸易便利化与我国跨境电商发展--基于双重差分法的实证分析.pdf
  • 融资融券业务对审计师行为的影响研究--基于双重差分模型的检验,姚靠华,张莎,本文基于双重差分模型,首次从审计师行为角度探索融资融券对实体经济的影响。通过对2004-2015年沪深两市A股上市公司的分析,本文发�
  • 基于双重差分法医疗保险事前道德风险研究--来自CHNS调查的证据,吴蔚,陈雪梅,本文基于1989-2009年中国家庭营养调查(CHNS)微观调查数据,利用2003年开始在我国农村试点新型农村合作医疗保险这一政策变化,作为准...
  • 双重差分stata

    2021-07-30 18:39:57
    法来源于计量经济学的综列数据模型,是政策分析和工程评估中广为使用的一种计量经济方法。主要是应用于在混合截面数据集中,评价某一事件或政策的影响程度。该方法的基本思路是将调查样本分为两组,一组是政策或...
  • 这一章笔记围绕虚拟变量问题展开,主要介绍虚拟变量的引入形式和分析方法,重点介绍双重差分模型的应用方法。
  • DID双重差分模型Day1

    2021-01-20 11:36:12
    1985年普林斯顿大学的Ashenfelter和Card的一篇论文中,第一次引入了DID模型;2001年哈佛大学公共卫生学院学者使用DID模型对中国海南省的医疗报销付费制度改革进行了分析;2001年杜克大学学者对美国保险制度对于妇幼...
  • “ 营改增 ” 对电信业税负和业绩的影响研究—— 基于上市公司双重差分模型,陈倩,谭光荣,电信业是我国国民经济的基础性部门,在国民经济中占有重要地位。从2014年6月至今,电信业
  • 一、双重差分解析 双重差分方法近几年在主流期刊流行起来(这种趋势大概会持续几年),主要原因在于:(1)可以很大程度上避免内生性问题,政策相对于微观经济主体而言一般是外生的,因而不存在逆向因果问题。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,590
精华内容 4,236
关键字:

双重差分