温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh
作者: 周涛 (华中师范大学)
邮箱: tzhou0806@163.com
编者按: 本文主要参考以下文献,特此致谢!
Source: Conley T G, Taber C R. Inference with “difference in differences” with a small number of policy changes[J]. The Review of Economics and Statistics, 2011, 93(1): 113-125. -Link-
目录
在之前「倍分法DID」专题中,我们已经详细介绍过 DID 方法的使用和操作细节。本推文主要目的是,讨论该方法在使用过程中,当受外生冲击的处理组数量较少时,会对估计结果产生什么影响、以及应该如何处理。
我们使用
在此情况下,用于大样本的近似统计推断是不合适的。借鉴 Conley 和 Taber (2011),我们可以使用来自
我们用简单的模型可以说明基本问题,及其解决方法:
其中,
在
换句话说,
通常,我们在进行实证研究时会忽视这个问题。如果经典线性回归模型是适用的,那么传统的方法也可以进行正确的小样本统计推断。但是在大多数情况下,由于
在 Conley 和 Taber (2011) 中,作者认为
当
在之前的文献中,Moulton (1990)、Donald 和 Lang (2007) 分别讨论了
对于
其中,
该方法被很多文献所应用,例如:
Cascio 等 (2013) 在研究奥巴马提出的 “全民学前教育” 项目对学前入学率的影响时,由于数据原因,仅将 Georgia 和 Oklahoma 这两个州作为研究的重点对象,Cascio 等 (2013) 在文中利用该方法计算出 Conley-Taber 置信区间。
Pinotti (2015) 在研究 20 世纪 70 年代意大利南部两个受到黑手党活动影响的地区战后经济发展情况时,将受黑手党影响之前和之后的普利亚和巴西利卡塔的地区经济发展与一个没有受到影响的区域进行了比较。在该分析中,也存在处理组个数较少的情况,Pinotti (2015) 参考了 Conley 和 Taber (2011)、Donald 和 Lang (2007) 进行了相应分析。
此外,Arindrajit 等 (2016)、Rockoff (2008)、coady 等 (2018)、Francesco (2014) 都使用到了该方法。
在本节中,我们将通过美国颁布的优秀学生教育奖学金项目 (HOPE) 这一实例,来展示 Conley 和 Taber (2011) 的应用。为了方便起见,这里仅将哥伦比亚特区作为我们研究的对象,并使用 41 个州 (40 个作为控制组的州 + 哥伦比亚特区) 的数据来研究 HOPE 对大学入学率的影响。结果如下图,在本节中我们主要讨论 Conley-Taber 置信区间的计算。
计算 Conley 和 Taber(2011) 置信区间的步骤如下:
相关 Stata 代码如下:
clear all
set more off
set matsize 800
set mem 200m
*数据下载地址:https://gitee.com/arlionn/data/blob/master/data01/reg.raw
infile coll hope male black asian year state using reg.raw
第一步,生成州-时间虚拟变量,并将
/* Create iteraction terms for years and states*/
gen styr=1000*state+year //state-year dummy variable
sum state
g stmin=r(min)
g stmax=r(max)
sum year
g yrmin=r(min)
g yrmax=r(max)
/* Create dummies for state+year interactions*/
g yr=yrmin
quietly {
foreach st of numlist 11/16 21/23 31/33 35 41/47 51/56 58 62 63 73 74 81/84 86 87 91/95 {
while yr<=yrmax {
local ind=`st'*1000+yr
g byte Dstyr_`ind'=styr==`ind'
replace yr=yr+1
}
replace yr=yrmin
}
}
reg coll male black asian Dstyr*, noc r clust(styr)
predict colhat, xb
gen beta=colhat-male*_b[male]-black*_b[black]-asian*_b[asian]
/* Keep only beta coefficients for state*year terms */
collapse (mean) beta state year yrmin yrmax hope, by(styr)
xi: reg beta hope i.year i.state, robust
xi: reg beta hope i.year i.state, r cluster(state)
第二步,生成州和时间单独的虚拟变量
/* Create state and year dummies*/
g yr=yrmin
quietly {
while yr<=yrmax {
local k=yr
g byte Dyear_`k'=year==`k'
replace yr=yr+1
}
}
quietly {
foreach st of numlist 12/16 21/23 31/33 35 41/47 51/56 58 62 63 73 74 81/84 86 87 91/95 {
g byte Dstate_`st'=state==`st'
}
}
/* Now regress the coefficients (beta) obtained from the previous regression
on state and year dummies and hope variable*/
reg beta hope Dstat* Dyear*, noc
/* Create an indicator for the state where policy changed (Georgia==1)*/
g byte ga=state==58 // ga = 1 表示受到影响的state
/* Predict residuals from regression */
predict eta, res //估计 reg beta hope Dstat* Dyear*, noc 的残差
第三步,得到
replace eta=eta+_b[hope]*hope
drop D*
/* Create d tilde variable*/
bysort year: egen djtga=mean(hope) if ga==1 // 和HOPE没区别
bysort year: egen djt=sum(djtga) // 1993年之后为1,之前为0
bysort state: egen meandjt=mean(djt)
g dtil=djt-meandjt //求出d波浪号
/* Obtain difference in differences coefficient*/
reg eta dtil if ga==1,noc
matrix alpha=e(b)
/* Simulations*/
quietly {
foreach st of numlist 11/16 21/23 31/33 35 41/47 51/56 58 62 63 73 74 81/84 86 87 91/95 {
capture {
reg eta dtil if state==`st'&ga!=1, noc
matrix alpha=alpha\e(b)
}
}
}
matrix asim=alpha[2...,1] //去掉第一个reg eta dtil if ga==1,noc 系数后的dtil系数矩阵
matrix alpha=alpha[1,1] // reg eta dtil if ga==1,noc 的dtil系数
第四步,模拟出
/* Confidence intervals */
svmat alpha
svmat asim
sum alpha
gen alpha=r(mean)
g ci=alpha-asim
/* form confidence intervals */
local numst=42
local i025=floor(0.025*(`numst'-1)) // 95%置信区间
local i975=ceil(0.975*(`numst'-1))
local i05=floor(0.050*(`numst'-1)) //90%置信区间
local i95=ceil(0.950*(`numst'-1))
第五步,根据要求选择
sort asim
sum ci if _n==`i025'|_n==`i975'
display as text "95% Confidence interval=" as result _newline(2) r(min) _col(15) r(max)
由此便得到 Conley-Taber 在 5% 水平下的置信区间:
. sum ci if _n==`i025'|_n==`i975'
Variable | Obs Mean Std. Dev. Min Max
----------+---------------------------------------------------
ci | 2 .0981308 .1535922 -.0104753 .2067369
. display as text "95% Confidence interval=" as result _newline(2) r(min) _col(15) r(max)
95% Confidence interval=
-.01047528 .20673692
Note: 产生如下推文列表的命令为:
lianxh did, m
安装最新版lianxh
命令:
ssc install lianxh, replace
连享会-直播课 上线了!
http://lianxh.duanshu.com
免费公开课:
直击面板数据模型 - 连玉君,时长:1小时40分钟,课程主页 Stata 33 讲 - 连玉君, 每讲 15 分钟. Stata 小白的取经之路 - 龙志能,时长:2 小时,课程主页 部分直播课 课程资料下载 (PPT,dofiles等)
支持回看
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 因果推断, 空间计量,寒暑假班等 | |
⭕ 数据清洗系列 | 游万海 | 直播, 88 元,已上线 |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会学习群-常见问题解答汇总:
✨ https://gitee.com/arlionn/WD
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh