使用did包进行多期DID分析

本例中,样例数据来自 Callaway 和 Sant'Anna (2020),研究问题是各州提高最低工资对县级青少年就业率影响。

样例数据集包含 2003 年至 2007 年 500 个县级青少年就业率的数据,其中一些州在 2004 年首次接受治疗,也有一些在 2006 年或 2007 年接受治疗。

主要变量 lemplemp 是县级青少年就业率的对数值,first.treatfirst.treat 是某个州首次提高最低工资的时间,可能是 2004 年、2006 年或 2007 年;yearyear 是年份; countryrealcountryreal 是每个县的 ID。

首先进行包的安装和样例数据的调入。

writeLines('PATH="${RTOOLS40_HOME}\\usr\\bin;${PATH}"', con = "~/.Renviron")  #创建路径配置文件.Renviron
Sys.which("make")  #测试配置路径是否成功
options(repos=structure(c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))) #设置镜像
install.packages("did") #从CRAN上下载did包
library(did)  #调用did包
data(mpdta)   #调入样例数据

一、平均处理效应

did 包使用 att_ gt 命令估计处理组平均处理效应 (ATT)。

out <- att_gt(yname = "lemp",   
              gname = "first.treat",  
              idname = "countyreal",
              tname = "year",
              xformla = ~1,
              data = mpdta,
              est_method = "reg"
              )
summary(out)

#> Call:
#> att_gt(yname = "lemp", tname = "year", idname = "countyreal", 
#>     gname = "first.treat", xformla = ~1, data = mpdta, est_method = "reg")
#> 
#> Group-Time Average Treatment Effects:
#>  Group Time ATT(g,t) Std. Error [95% Simult.  Conf. Band]  
#>   2004 2004  -0.0105     0.0259       -0.0796      0.0586  
#>   2004 2005  -0.0704     0.0312       -0.1535      0.0127  
#>   2004 2006  -0.1373     0.0375       -0.2373     -0.0372 *
#>   2004 2007  -0.1008     0.0352       -0.1947     -0.0069 *
#>   2006 2004   0.0065     0.0229       -0.0547      0.0677  
#>   2006 2005  -0.0028     0.0203       -0.0568      0.0513  
#>   2006 2006  -0.0046     0.0179       -0.0522      0.0430  
#>   2006 2007  -0.0412     0.0210       -0.0972      0.0148  
#>   2007 2004   0.0305     0.0159       -0.0118      0.0728  
#>   2007 2005  -0.0027     0.0164       -0.0465      0.0410  
#>   2007 2006  -0.0311     0.0183       -0.0797      0.0176  
#>   2007 2007  -0.0261     0.0179       -0.0737      0.0215  
#> ---
#> Signif. codes: `*' confidence band does not cover 0
#> 
#> P-value for pre-test of parallel trends assumption:  0.16812
#> Control Group:  Never Treated,  Anticipation Periods:  0
#> Estimation Method:  Outcome Regression

可视化结果如下:

ggdid(out, ylim = c(-.25,.1))

上图中的红色圆点是政策冲击前的平均治疗效果 (采用了 95% 的置信区间),可以看出红色圆点在 95% 的置信水平下趋近于 0,符合平行趋势假设。蓝色圆点表示接受政策冲击后的平均治疗效果,在本案例中表示提高最低工资水平对县级青少年就业率的影响。

二、时间动态处理效应

did 包使用 aggte 估计动态处理效应。

es <- aggte(out, type = "dynamic")
summary(es)

#> Call:
#> aggte(MP = out, type = "dynamic")
#> 
#> Overall ATT:  
#>      ATT Std. Error     [95%  Conf. Int.]  
#>  -0.0772     0.0205   -0.1175      -0.037 *
#> 
#> Dynamic Effects:
#>  Event time Estimate Std. Error [95% Simult.  Conf. Band]  
#>          -3   0.0305     0.0153       -0.0102      0.0712  
#>          -2  -0.0006     0.0132       -0.0356      0.0345  
#>          -1  -0.0245     0.0145       -0.0630      0.0141  
#>           0  -0.0199     0.0120       -0.0518      0.0120  
#>           1  -0.0510     0.0175       -0.0977     -0.0042 *
#>           2  -0.1373     0.0396       -0.2426     -0.0319 *
#>           3  -0.1008     0.0346       -0.1929     -0.0087 *
#> ---
#> Signif. codes: `*' confidence band does not cover 0
#> 
#> Control Group:  Never Treated,  Anticipation Periods:  0
#> Estimation Method:  Outcome Regression

上面 summary 的输出结果中,event time 表示个体第一次接受政策冲击时的处理效应,比如 event time=0 表示个体刚好处于政策冲击期的处理效应,event time=-1 表示个体在接受政策冲击前一年的处理效应。

上图与多期 DID 平均处理效应的图相似,但这里将政策冲击看作一个事件,横坐标轴表示事件发生时间。通过对每段时期的处理效应进行估计,上图表示个体参与治疗的总体处理效应。可以看到随着提高最低工资的政策实行越久,青少年失业率降低幅度先增大再减少。

三、总体平均处理效应 (ATE)

group_effects <- aggte(out, type = "group")
summary(group_effects)

#> Call:
#> aggte(MP = out, type = "group")
#> 
#> Overall ATT:  
#>     ATT Std. Error     [95%  Conf. Int.]  
#>  -0.031     0.0125   -0.0554     -0.0066 *
#> 
#> Group Effects:
#>  Group Estimate Std. Error [95% Simult.  Conf. Band]  
#>   2004  -0.0797     0.0274       -0.1388     -0.0207 *
#>   2006  -0.0229     0.0165       -0.0585      0.0127  
#>   2007  -0.0261     0.0176       -0.0641      0.0120  
#> ---
#> Signif. codes: `*' confidence band does not cover 0
#> 
#> Control Group:  Never Treated,  Anticipation Periods:  0
#> Estimation Method:  Outcome Regression

从总体平均处理效应 (ATE) 的结果来看,提高最低工资会使青少年就业率下降 3.1%,在 10% 的置信水平下显著。

相关推荐
Tiger Z2 天前
R 语言科研绘图第 4 期 --- 折线图-置信区间
r语言·贴图
weixin_307779132 天前
R语言电商数据销售数据分析
r语言
m0_748230942 天前
差异基因富集分析(R语言——GO&KEGG&GSEA)
开发语言·golang·r语言
关关钧2 天前
【R语言】基础知识
开发语言·r语言
zoujiahui_20182 天前
R语言中的函数30:suppressWarnings(), suppressMessages()
r语言
zoujiahui_20182 天前
R语言中的函数29:vector
开发语言·r语言
zhangfeng11334 天前
python 词向量的代码解读 self.word_embeds = nn.Embedding(vocab_size, embedding_dim) 解释下
开发语言·人工智能·深度学习·r语言·dnn
生信菜鸟1号4 天前
R中利用ggplot2绘制气泡图
开发语言·信息可视化·r语言
生信学习小达人4 天前
利用R包QstFstComp包进行Qst-Fst分析
开发语言·r语言