CIMERS暑期班,因果推断最新进展+量化宏观,全新回归!
👉面板数据模型(DID等)最新进展及其stata应用,点击查看
👉DSGE第一课与Dynare编程,点击查看
成为CIMERS内部学员,你可以获得
⭐ 高质量课程,详细课件,可复用代码及数据
⭐ 许老师详尽答疑服务,知无不言,学无止境
⭐ 高质量的交流社群(主要为硕博以及高校教师)
⭐ 许老师增值讲座,文献解读,模型讲解
⭐ 未来课程内部学员折扣
⭐⭐诚邀您加入CIMERS,许老师正在寻找好的合作者,一起作出高质量研究⭐⭐
报名任意课程即可成为CIMERS内部学员
恳请各位老师同学动动发顶刊的小手,点个赞和在看,让更多人看到我们的研究,您的支持是CIMERS最大的动力!
从今天开始,我们搬运Scott Cunningham的“Pedro’s diff in diff checklist”【有兴趣的人可以点击这里关注他的blog】。
大家也许还记得,Sant' Anna有一个十步DID:
今天的第二步利用Aneja, Donohue and Zhang (2011,AER)的数据。美国FBI从1930年开始实施UCR项目,旨在建立可信的犯罪统计数据。UCR包括来自18000家执法部门的数据,这些机构都是自愿参与,因此,并不会完全合作。例如,有一些机构每个月上报完整的数据,有的机构一年才上报一次,有的数据有缺失,有的甚至一点数据没有。尽管如此,UCR项目仍然是美国犯罪记录最全的数据库,记录了关键的犯罪和政策干预等等信息。
作者用1970-2007年的51个地区数据。
step 0:创建初次处理日期变量
我们要创建初次处理日期变量。主要并不是处理变量。也就是说,政策实施初次实施年份设定为1,否则为0。这个变量在很多交叠DID估计量中被称为cohort变量,例如CSDID。需要注意的是,如果个体从未处理,那么,我们也需要用0来指代缺失处理日期。
clear all
capture log close
use "/Users/xuwenli/Library/CloudStorage/OneDrive-个人/DSGE建模及软件编程/教学大纲与讲稿/应用计量经济学讲稿/应用计量经济学讲稿与code/data/mixtape/concealed_carry_state.dta", clear
* Load packages needed for panelView
* net install grc1leg, from(http://www.stata.com/users/vwiggins) replace
* net install gr0075, from(http://www.stata-journal.com/software/sj18-4) replace
* ssc install labutil, replace
* ssc install sencode, replace
* cap ado uninstall panelview //in-case already installed
* net install panelview, all replace from("https://yiqingxu.org/packages/panelview_stata")
* Generate a treatment date variable
gen treat_date = 2020 // never treated
replace treat_date = 1970 if shalll==1 & aftr==0 // always treated
replace treat_date = 1994 if fipsstat==2 // treatment cohorts
replace treat_date = 1994 if fipsstat==4
replace treat_date = 1995 if fipsstat==5
replace treat_date = 2003 if fipsstat==8
replace treat_date = 1987 if fipsstat==12
replace treat_date = 1989 if fipsstat==13
replace treat_date = 1990 if fipsstat==16
replace treat_date = 1980 if fipsstat==18
replace treat_date = 2006 if fipsstat==20
replace treat_date = 1996 if fipsstat==21
replace treat_date = 1996 if fipsstat==22
replace treat_date = 1985 if fipsstat==23
replace treat_date = 2001 if fipsstat==26
replace treat_date = 2003 if fipsstat==27
replace treat_date = 1990 if fipsstat==28
replace treat_date = 2003 if fipsstat==29
replace treat_date = 1991 if fipsstat==30
replace treat_date = 2006 if fipsstat==31
replace treat_date = 1995 if fipsstat==32
replace treat_date = 2003 if fipsstat==35
replace treat_date = 1995 if fipsstat==37
replace treat_date = 2004 if fipsstat==39
replace treat_date = 1995 if fipsstat==40
replace treat_date = 1990 if fipsstat==41
replace treat_date = 1989 if fipsstat==42
replace treat_date = 1996 if fipsstat==45
replace treat_date = 1994 if fipsstat==47
replace treat_date = 1995 if fipsstat==48
replace treat_date = 1995 if fipsstat==49
replace treat_date = 1988 if fipsstat==51
replace treat_date = 1989 if fipsstat==54
replace treat_date = 1994 if fipsstat==56
// Define the labels for each unique value
label define treat_date_lbl 2020 "never treated" ///
1970 "always treated" ///
1980 "1980 cohort" ///
1985 "1985 cohort" ///
1987 "1987 cohort" ///
1988 "1988 cohort" ///
1989 "1989 cohort" ///
1990 "1990 cohort" ///
1991 "1991 cohort" ///
1994 "1994 cohort" ///
1995 "1995 cohort" ///
1996 "1996 cohort" ///
2001 "2001 cohort" ///
2003 "2003 cohort" ///
2004 "2004 cohort" ///
2006 "2006 cohort"
// Assign the labels to the treat_date variable
label values treat_date treat_date_lbl
drop if state==""
encode state, gen(id)
gen treat = 0
replace treat=1 if year>=treat_date
第一步:画出处理模式图:
* Visualizing rollouts to count the number of units in a cohort.
panelview lmur treat, prepost bytiming i(state) t(year) type(treat) xtitle("Year") ytitle("State") title("Treatment Status by Timing Group") legend(label(1 "Never treated") label(2 "Treated (Pre)") label(3 "Treated (Post)"))
第二步:每类的处理个体数量
这一步就是数数,数出每一类(初次处理类别)中有多少处理个体。我们可以用表格的形式呈现这些结果。
// Tabulate treat_date for the year 1970
tabulate treat_date if year == 1970, matcell(freq) matrow(names)
也许我们也想展示每类处理中包含哪些个体,也就是个体的名字:
* Get state names by treat_date for the year 1970
levelsof treat_date, local(treat_dates)
foreach x in `treat_dates' {
display "Treatment date: `x'"
tabulate state if treat_date == `x'
}
* Copy output and give it to ChatGPT-4o to make a pretty table for us in LaTeX as I'm too lazy to do it here.
上面输出的结果很多,所以Cunningham建议用GPT来直接输出Latex命令。
注:(1)相关讲稿、Slides和stata do文件在许文立老师的github及其主页上公布。
(2)CIMERS学员/付费会员注意后续线上讲座通知。
(3)更多计量和stata内容,请参见经验分析方法及Stata命令汇总
72、【应用计量系列72】断点回归(2):丝滑世界里找“跳跃”
73、【应用计量系列73】交叠DID估计量 :stata包csdid升级版
74、【应用计量系列74】控制组群固定效应还是个体固定效应?
75、【应用计量系列75】合成控制法的新推断框架和stata应用
76、【应用计量系列76】平行趋势的秘密(一):平行趋势假设的类型
77、【应用计量系列77】平行趋势的秘密(二):明知不可为而为之
79、【应用计量系列79】平行趋势的秘密(三):如何给平行趋势假设提供经验证据?
81、【应用计量系列81】平行趋势的秘密(四):如何给平行趋势假设提供经验证据?
82、【应用计量系列82】因果推断中的纠偏机器学习方法(DDML)
85、【应用计量系列85】DID最新文献:共同相关效应DID(CCE-DID)
86、【应用计量系列86】新DID的Stata包升级版csdid2
92、【应用计量系列92】事件研究对平行趋势假设检验的效力及stata操作
94、【应用计量系列94】因果效应推断概述课后作业:随机实验分析
95、【应用计量系列95】匹配估计量(1):小小的匹配从来没有伤害过任何人
97、【应用计量系列97】匹配估计量(2):条件独立性假设、敏感性检验及stata操作
99、【应用计量系统99】匹配估计量(3):精确匹配与共同支持假设
100、【应用计量系列100】最新的交错处理效应估计量:随机交错处理下,更有效率的估计量及其stata操作
101、【应用计量系列101】Stata 18新功能(1):异质性处理效应
102、【应用计量系列102】stata 18新功能(2):培根分解
103、【应用计量系列103】一文读懂线性回归的标准误与stata应用
【应用计量系列100】随机交错处理下,更有效率的估计量及其stata操作(Update)
105、【应用计量系列105】DID Handbook(持续更新)
106、【应用计量系列106】标准误太大,系数不显著?也许弄错了标准误的来源
107、【应用计量系列107】动态合成双重差分及stata操作
108、【应用计量系列108】异质性处理效应稳健估计量:dCDH估计量
118、【应用计量系列118】《双重差分法的最新理论进展与经验研究新趋势》附录B
119、【应用计量系列119】DID的平行趋势,真的理解,并会用了吗?兼论平行趋势敏感性检验及其stata应用
121、【应用计量系列121】工具变量的强弱检验与stata应用
122、【应用计量系列122】最新异质性处理效应估计量:局部投影法DID的stata命令与例子
123、【应用计量系列123】进入退出DID的稳健估计量和stata例子
124、【应用计量系列124】DID:面板数据与重复截面数据
126、【应用计量系列126】新DID的事件研究图,理解对了吗?
127、【应用计量系列 127】新 DID 的事件研究图,理解对了呀?(续)
128、【应用计量系列 128】一图知因果:因果推断方法选择流程图
129、【应用计量系列129】堆叠DID(stacked DID)及其应用
131、【应用计量系列131】不平行的DD,平行的DDD与stata应用
132、【应用计量经济系列 132】stata 中固定效应模型的命令注意事项
133、【应用计量系列 133】不要这么用异质性处理效应稳健估计量
135、【应用计量系列 135】DID 的平行趋势支持证据的安慰剂检验
137、【应用计量系列137】连续DID的异质性处理效应与stata操作(升级版)
138、【应用计量系列138】推荐多看看Jeff老爷子的东西
140、【应用计量系列 140】Sant' Anna: DID Check List
141、【应用计量系列141】DID的稳健性检验:不可观测的混淆因子-SIV(理论篇)
142、【应用计量系列142】Bartik IV/SSIV到底要怎么应用?
145、【应用计量系列145】Sant' Anna的DID规定动作(1):处理模式图
点击蓝色链接,即可查看详细课程大纲
CIMERS在线课程列表
因果推断系列视频课程主要内容包括:
(1)DID、交叠DID及其stata案例;
(2)事件研究及其stata案例;
(3)合成控制法及其stata案例;
(4)平行趋势检验及其stata案例
(5)断点回归及其stata案例
DSGE基准模型与Dynare编程入门
(1)实际经济周期模型(RBC)
(2)新凯恩斯主义模型(NK)
(3)金融中介
(4)环境DSGE模型
(5)劳动市场搜寻与匹配模型
(6)开放经济DSGE模型
异质性代理人模型与应用
(1)投资资产定价模型
(2)数值算法
(3)宏观金融前沿课题
绿色金融DSGE
(1)金融摩擦的DSGE模型:抵押约束、BGG、金融机构
(2)环境DSGE
(3)绿色金融DSGE
成为CIMERS内部学员,你可以获得
⭐高质量视频课程,详细课件资料,可复用代码及数据
⭐许老师详尽的答疑服务,知无不言,学无止境
⭐高质量的交流社群(主要为硕博以及高校教师)
⭐许老师增值讲座,包括但不限于文献解读,模型讲解
⭐⭐诚邀您加入CIMERS,许老师正在寻找好的合作者,一起作出高质量研究⭐⭐
咨询购买请联系
联系人:吴峰宇老师
联系电话:184 7751 1575
联系邮箱:cimers_dsge@econmod.cn
其它事项:可开具培训、技术服务、咨询等类型的增值税普票
更多课程信息,扫描下方二维码咨询:
特别提醒:非诚勿扰!