CIMERS暑期班,因果推断最新进展+量化宏观,全新回归!
👉面板数据模型(DID等)最新进展及其stata应用,点击查看
👉DSGE第一课与Dynare编程,点击查看
成为CIMERS内部学员,你可以获得
⭐ 高质量课程,详细课件,可复用代码及数据
⭐ 许老师详尽答疑服务,知无不言,学无止境
⭐ 高质量的交流社群(主要为硕博以及高校教师)
⭐ 许老师增值讲座,文献解读,模型讲解
⭐ 未来课程内部学员折扣
⭐⭐诚邀您加入CIMERS,许老师正在寻找好的合作者,一起作出高质量研究⭐⭐
报名任意课程即可成为CIMERS内部学员
恳请各位老师同学动动发顶刊的小手,点个赞和在看,让更多人看到我们的研究,您的支持是CIMERS最大的动力!
从今天开始,我们搬运Scott Cunningham的“Pedro’s diff in diff checklist”【有兴趣的人可以点击这里关注他的blog】。
大家也许还记得,Sant' Anna有一个十步DID:
第四步:处理配置机制---阿什费尔特沉降(Ashenfelter's Dip)
在上一篇推文中第四步:处理配置机制---应用篇,提到了阿什费尔特的沉降(Ashenfelter's Dip)。我曾在【应用计量系列49】从DID到事件研究(五):教练可能是背锅侠用足球数据讨论过这个问题。
阿什费尔特的沉降(Ashenfelter's Dip)也是一种处理配置机制(即基于阿什费尔特的沉降(Ashenfelter's Dip)而选择进入处理)。今天想要讨论的问题很有趣:
1、这种处理配置机制仍然满足平行趋势
2、这种处理配置机制也会给处理前趋势带来问题
3、如果你要修正处理前趋势中的问题,那么只能通过打破处理后时期平行趋势来解决。
理解DID的处理配置机制:阿什费尔特的沉降(Ashenfelter's Dip)
约翰尼是一名自由职业者,他一直努力工作以维持生计。尽管他付出了努力,但他经常觉得自己运气不好,很难取得进步。一天,约翰尼在浏览报纸时,看到了一则 Python 编程课程的广告。他很感兴趣,但又不确定,于是和自己做了一个约定:如果明年工资至少没有今年高,他就报名参加这门课程。这种内心的约定反映了一种常见的决策过程,这种决策过程是由工人的工资下滑所驱动的——这种现象在劳动经济学界被称为“阿什费尔特下降”。
奥利·阿什费尔特 (Orley Ashenfelter) 在其 1978 年的论文《评估培训计划对收入的影响》中首次提出了阿什费尔特下降现象。该现象指的是收入暂时下降的个人更有可能参加培训计划,希望改善他们的未来前景。在他的研究中,阿什费尔特从两项劳动力调查中收集了丰富的面板数据——一项调查有职业培训参与者,另一项没有。他观察到,受训者群体的收入在培训当年大幅下降,之后大幅增加(下表 1)。例如,从 1963 年到 1964 年,白人男性受训者的收入从 1810 美元下降到 1551 美元,而他们的对照组没有经历这种下降。
这种选择机制,即决策受到近期收入变化的影响,在理解经济研究中的因果推断方面发挥着至关重要的作用。它不仅仅关乎数字,还关乎这些数字背后的人性故事——像约翰尼的故事一样,个人经历和经济机会交织在一起,形成了可以改变人生轨迹的决策。约翰尼和奥利的选择机制就是吉姆·赫克曼创造的“阿什费尔特下降”的形式。当一年的收入低于前一年时,个人更有可能参加项目,这反映了更广泛的经济行为模式和初始条件下的不平等。
我将 Ashenfelter's Dip 简单定义为工人在接受处理前一年的收入增长为负数时参加职业培训计划的情况。我尽量保持简单,但我会包含几个协变量。
首先,生成数据
我们生成4个地区,每个州1000名工人,他们属于四个不同的种族(标记为1-4)。每个工人的固定效应都来自于(1000-2500)的均匀分布。数据有6年——1987-1992年。
* step 4c.do. Ashenfelter's Dip as a treatment assignment mechanism
clear all
set seed 2
* First create the states
quietly set obs 4
gen state = _n
* Generate 1000 workers in each state
expand 1000
bysort state: gen unit_fe=runiform(1000,2500)
label variable unit_fe "Unique worker fixed effect per state"
egen id = group(state unit_fe)
* Generate race variable for different trends
gen race = mod(_n, 4) + 1
* Generate the years
expand 6
sort state
bysort state unit_fe: gen year = _n
gen n = year
replace year = 1987 if year == 1
replace year = 1988 if year == 2
replace year = 1989 if year == 3
replace year = 1990 if year == 4
replace year = 1991 if year == 5
replace year = 1992 if year == 6
第二,产生潜在结果Y0
* Generate potential outcomes
gen y0 = unit_fe + rnormal(0,10) if year == 1987
* Introduce trend and noise for subsequent years
gen trend = 5
bysort state unit_fe: replace y0 = y0[_n-1] + trend + rnormal(0,10) if year == 1988
bysort state unit_fe: replace y0 = y0[_n-1] + trend + rnormal(0,10) if year == 1989
bysort state unit_fe: replace y0 = y0[_n-1] + trend + rnormal(0,10) if year == 1990
bysort state unit_fe: replace y0 = y0[_n-1] + trend + rnormal(0,10) if year == 1991
bysort state unit_fe: replace y0 = y0[_n-1] + trend + rnormal(0,10) if year == 1992
我将使用潜在结果对所有内容进行建模,因为这有助于我们更好地理解平行趋势,也使 ATT 变得更加容易估计,也容易根据基线 Y(0) 的变化配置处理。在第一年,一个人未经处理的收入等于他们的初始收入(即从 1,000 美元到 2,500 美元不等,作为他们的固定效应)加上一些正态分布的冲击。这让我们得到 1987 年的最低收入为 991 美元,最高收入为 2511 美元。
然后我们开始模拟趋势。1988 年,收入增加 5 美元,再加上另一个正态分布的冲击。然后 1989 年、1990 年、1991 年、1992 年再次呈现这些趋势。由于这个 Y(0) 是决定对照组和处理组在处理后是否处于可比路径上的潜在结果变量。但目前还没有人接受处理。
第三,根据阿什费尔特下降的特征来选择工人是否参加职业培训
下面,我们使用阿什费尔特下降的配置机制来将4000人中的部分工人配置到就业计划中。要实现这一点,请记住,我们将使用他们为处理的潜在收入是否“下降”作为标准,即1989-1990年的收入是否负增长。
* Determine treatment status based on negative change from 1989 to 1990
bysort state unit_fe: gen delta_pre = y0 - y0[_n-1] if year == 1990
bysort state unit_fe: gen treat = 0
replace treat = 1 if delta_pre < 0 & year == 1990
// Define the labels for each unique value
label define treat_date_lbl 0 "never treated" ///
1 "Treated"
// Assign the labels to the treat_date variable
label values treat treat_date_lbl
* Ensure treatment status remains consistent
bysort id: egen max_treat = max(treat)
bysort id: replace treat = max_treat
* Plot the treatment group and control group
kdensity delta_pre, kernel(rectangle) xtitle("Change in earnings from 1989 to 1990") xline(0, lwidth(medthick) lpattern(dash) lcolor(cranberry)) title("Change in Earnings from 1989 to 1990") subtitle("4000 workers") note("Ashenfelter Dip selected group is left of red dashed line.")
graph export "./ashenfelter_dip.png", replace
reg treat i.state i.race, robust
上述代码第一行计算了1989-1990年的收入变化,即“delta_pre”。按照我们的处理配置机制,如果“delta_pre<0”,则工人参加职业培训计划(处理组),否则不参加(控制组)。下面,我们看看工人的收入分布密度:大概有32%的工作1989-1990年收入下降了,因此,他们参加职业培训计划。
下面,我们来看看处理组和对照组在基期时收入差异:差异不大。处理组比控制组仅少36美元(相较于1500+收入)。同样的,处理组和对照组在居住地和种族方面似乎也非常相似。我也可以用处理状态对居住地和种族虚拟变量进行回归。也就是说,在基期处理组和对照组在很多方面不存在系统性差异。
选择进入处理的机制实际上并没有考虑居住地和种族特征,选择处理仅仅基于Y0(level),或者两期Y0的变化(change)。因此,结果的level与协变量特征无关,change也无关。
第四,生成Y和处理效应
我们要估计DID,因此,我们将生成一个处理后的虚拟变量(1991和1992年是处理后时期),并生成结果结果Y1。在处理前,Y1=Y0(注意,也隐含着无预期假设)。也就是说,个体在处理前没有处理效应,直到处理后1991和1992年才有处理效应,1991年职业培训带来100的处理效应,1992年带来300。这意味着ATT=(100+300)/2=200。
* Post-treatment variable
gen post = 0
replace post = 1 if year >= 1991
* Generate y1 by adding treatment effect for treated units
gen y1 = y0
replace y1 = y0 + 100 if year == 1991 & treat == 1
replace y1 = y0 + 300 if year == 1992 & treat == 1
* Treatment effect
gen delta = y1 - y0
label var delta "Treatment effect for unit i (unobservable in the real world)"
sum delta if treat==1 & post==1, meanonly
gen att = `r(mean)'
su att // ATT is $200
* Generate observed outcome based on treatment assignment
gen earnings = y0
qui replace earnings = y1 if post == 1 & treat == 1
第五,可视化Y0和Y
在现实的观测研究中,我们是观测不到Y0的,但是在这个模拟中,我们可以。因此,记住,Y0并不是实际结果,对于处理组我们只关注反事实结果。
* Visualize the evolution of Y(0)
preserve
collapse (mean) y0, by(treat year)
xtset treat year
* Create individual plots with reference lines
twoway (line y0 year if treat == 1, lcolor(blue) lwidth(medium)) ///
(line y0 year if treat == 0, lcolor(red) lwidth(medium)), ///
xline(1990.5, lcolor(black) lpattern(dash)) ///
legend(order(1 "Treated" 2 "Control") pos(6) col(2)) ///
title("Evolution of Y(0) for Treatment and Control Groups") ///
xtitle("Year") ytitle("Mean Y(0)") ///
xlabel(1987(1)1992)
上图展示了处理组和控制组的Y0趋势。在基期时(1990年),它们之间相差36美元,在其余时期,它们相差大约20美元。上图有一个有趣的现象:我们基于阿什费尔特下降来配置处理,这意味着处理组在1989-1990年的收入出现下降,但是我们也看到对照组出现上升。这意味着对照组现在只包括当年收入增加的工人。这可能是由于样本规模不够大,随着样本的增加,对照组处理前的收入增加可能并不会出现。
第二件值得注意的是,当这种选择机制在“delta_pre<0”上进行选择时,它还会产生水平差异,而不仅仅是基期本身的水平差异。我对此没有很好的(或任何)解释。只能说一定是 1989 年至 1990 年的收入变化选择了其他年份也更穷的人。我们知道基期的 Y(0) 是变化的一部分,因为每年收入都是 Y(0) + 5 + e(0,10),所以 Y(0) 符合规则,但它应该在差分中抵消,因为选择进入处理应该只针对误差项本身。所以我需要对此进行更多的思考。但出于某种原因,我们正在切掉两个随机变量的总和,这两个变量纯粹是随机性的,在两个时期内产生了足够的冲击,导致它下降。可能想用更大的样本进行实验,看看这些差距是否会缩小,如果没有,那么我需要对此进行更多的思考。
第三,看看处理后时期。虽然他们的收入在 1990 年有所下降,但请注意处理后工人的收入恢复了。这是因为整个样本具有相同的潜在结果趋势,都是trend=5。
看看每个人的Y0等于基期 Y0 + 5 +均值为零的噪声?那么,唯一可能违反平行趋势的情况是,如果样本被分成在处理后 Y0 中具有不同轨迹的组群。但请注意,无论你如何分配处理,Y0 始终是“某个基期值加 5 加平均值为 0的误差项”。因此,这保证了平行趋势。
为了真正开始更深入地研究这个问题(我可能改天再做),我们需要在 Y0 中产生更多的异质性——例如按种族和州。但目前,我想说的是,由于所有个体都遵循相同的轨迹,阿什费尔特下降可能不会对平行趋势产生实质性影响,尽管你会看到它确实有影响。
第六,可视化结果的变化
在现实研究中,我们唯一可以做的就是画出实际结果的时序变化图:
在这里,你可以看到像前面一样的处理前时期下降,你可以看到像以前一样的基期差异,你可以看到处理后收入的大幅相对增长。现在让我们将处理组和对照组的收入与处理组的反事实收入 (Y(0)) 叠加,这样你就可以看到,尽管出现了下降,但平行趋势仍然保持适度成立。
第七,估计ATT和事件研究
接下来,我使用静态TWFE模型和动态模型估计 ATT。我还将绘制事件研究图。回想一下,ATT 为 200 美元。1991 年的处理效应为 100 美元,1992 年为 300 美元。我们在估计动态处理效应做得比估算静态ATT要好,这值得思考。为什么您可能会认为静态 ATT 在处理后系数比点估计略有偏差。(提示:考虑一下第一次回归与第二次回归的基期是什么……)
* Regressions
estimates clear
reg earnings post##treat, robust
reg earnings treat##ib1990.year, robust
第一个回归中的基期是整个处理前时期,我们知道 Y0 在基线时下降,导致平行趋势假设略有变化。但是当我们仅使用 1990 年的基期值时,如您在上图中看到的那样,它基本上已经恢复了。现在让我们看看第二个回归中的事件研究图。
* Event study
reg earnings treat##ib1990.year, robust
coefplot, keep(1.treat#*) omitted baselevels cirecast(rcap) ///
rename(1.treat#([0-9]+).year = \1, regex) at(_coef) ///
yline(0, lp(solid)) xline(1990.5, lpattern(dash)) ///
title("Event study estimates of job trainings on worker wages") ///
xlab(1987(1)1992)
我们可以看出,1991 年和 1992 年的 ATT 估计值完全准确。它们的真实值是 100 美元和 300 美元,估计值也是 100 美元和 300 美元。1991 年估计值的 95% 置信区间范围为 60 美元至 140 美元。1992 年估计值的 95% 置信区间范围为 259 美元至 339 美元。相当不错吧?
第八,事件研究的偏误
但仔细看看处理前趋势。它们不在0(而且都在0的一边)。虽然它们在统计上不显著,但从技术上讲它们不是零。我将很快重新估计包括工人固定效应在内的处理前点估计量。你们可能会有点惊讶。
areg earnings treat##ib1990.year, robust a(id)
首先,请注意置信区间变得不可见。这是因为系数的估计非常精确。所以这实际上是个好消息。当我们包括工人固定效应时,ATT 估计值要精确得多。1991 年的 95% 置信区间约为 +/- 70 美分。而 1992 年的置信区间约为 +/- 150 美元。因此,我们对真实效应的点估计值进行了非常精确的估计。
但正如蜘蛛侠所说,能力越大,责任越大。请注意,现在的处理前趋势非常糟糕。它们都是正,且显著。这是为什么?由于处理前趋势不为零,平行趋势是否不成立了?好吧,我们可以实际检查一下,因为我们有 Y(0) 变量,而通常你没有。因此运行此命令:
* Event study on y0
areg y0 treat##ib1990.year, robust a(id)
coefplot, keep(1.treat#*) omitted baselevels cirecast(rcap) ///
rename(1.treat#([0-9]+).year = \1, regex) at(_coef) ///
yline(0, lp(solid)) xline(1990.5, lpattern(dash)) ///
title("Event study estimates of parallel trends violations using Y(0)") ///
note("Worker fixed effects included") ///
xlab(1987(1)1992)
哇喔。发生了什么事?好吧,在我告诉你发生了什么之前,让我给你引用一下Kahn-Lang and Lang (2020) 摘要中的一段话。 完整截图如下:
仔细看摘要中的第 (3) 点:“(3) 处理前时期的平行趋势暗示了反事实的平行趋势,但平行的处理前趋势对于平行反事实趋势成立既不是必要的也不是充分的。”
好吧,我们刚刚证明了他们实际上是对的。处理前趋势不为零,但 Y(0) 中的处理后趋势(即平行趋势偏差的度量)为零。为什么?
原因是,选择处理是基于基期的下降。具体来说,是 Y0 的变化。但对于这些事件研究,平行趋势始于t-1 (即 1990 年才是基期)。而实际情况是,处理后,Y(0) 不再有任何突然变化,所有处理后平行趋势假设都是正确的。事实上,从 1990 年到 1991 年或从 1990 年到 1992 年,Y(0) 的变化正是我们的对照组的变化。但从 1987 年到 1990 年或从 1988 年到 1990 年,Y(0) 的变化并不是,因为在1990 年,收入相较于1989年出现了下降。
您可以尝试其他声明(也许用 1989 年代替 1990 年,或者用 1987 年代替 1990 年作为基期),这都无关紧要。因为虽然将基期回溯到较早的时期可能会导致处理前系数随时间逐年变化为零,但您违反了这些较早时期的平行趋势。请记住 - 平行趋势始终来自您选择的基期,并且仅来自您选择的基期。我们的平行趋势始终与 1990 年有关,即使 1990 年正是他们看到下降的那一年(阿什费尔特的沉降(Ashenfelter's Dip))。如果我们回溯到更早期的删除年份,那么处理前趋势的系数确实会变为零,但此时也不能识别出“真实处理效应”。
* Regressions
estimates clear
areg earnings treat##ib1990.year, robust a(id)
cap n estimates store att1
cap n estadd ysumm
areg earnings treat##ib1989.year, robust a(id)
cap n estimates store att2
cap n estadd ysumm
areg earnings treat##ib1988.year, robust a(id)
cap n estimates store att3
cap n estadd ysumm
areg earnings treat##ib1987.year, robust a(id)
cap n estimates store att4
cap n estadd ysumm
我们看看结果:1990 年(我们将 1990 年作为基期)具有正确的 ATT 的事件研究估计量,但具有显著的处理前趋势。但是,当我们删除 1989、1988 或 1987 时,看看会发生什么——事件研究的处理前趋势和处理后估计系数变得稳定但错误。这很有趣,因为通常研究者告诉我们,如果我们尝试不同的事件研究声明,并且我们感兴趣的点估计变得稳定,因此我们就得到了稳健的结果。但事实上情况并非如此。我们的点估计变得稳定,因为其他三年的平行趋势偏差总是错误的,约为 -16 美元。
那么,让我们选择其中之一,并在事件研究中加以说明,这样您就可以看到。请记住——我们知道 1991 年的 ATT 是 100,我们知道 1992 年的 ATT 是 300。所以我们知道第 1 列(去掉 1990 年)是正确的事件研究声明,因为那是平行趋势成立的点估计量,这就是那些估计是正确的原因。但现在让我们试着想象一下当我们使用第 2 列回归声明(去掉 1989 年)时发生了什么。
如您所见,这里的点估计量是错误的。真实效应是红色的 X。如果我们使用这个错误的回归声明进行估计,黑点就是我们的估计值。同样,为什么会发生这种情况?因为在我们使用的 Ashenfelter Dip 选择机制中,平行趋势假设是针对 1990 年,而不是 1989 年。因此,虽然我们可以继续回滚基期,并且事件研究图上的估计 ATT 变得“稳定”,但它们不是真实处理效应,会出现偏误。
第三部分:讨论
我想说点什么呢?首先,我们看到了阿什费尔特下降的一个例子。这很有趣,因为它很经典。你可以回到 Orley 的早期引述,他指出,他的受训人员在接受处理之前收入有所下降,这就是我们在这里产生的。
但是我们的 Ashenfelter's Dip 是一种非常特殊的处理分配机制,这种特殊的机制会给您带来问题,原因如下。由于选择处理是由于收入从t-2下降到t-1 ,所以所有处理前趋势图必然为非零。从机械上讲,它们都是非零的。但所有处理后估计量都是无偏的。我们通过多种方式证明了这一点——我们使用事件研究图证明了这一点,我们在事件研究图中证明了这一点估计 Y(0) 本身。平行趋势假设在处理后趋势中成立,但在处理期趋势不成立。
你需要记住的一件事——当有人告诉你,他们“证明了平行趋势成立”是因为处理前趋势成立时。请记住,他们并不完全正确。处理前趋势是我们选择正确控制组的最佳猜测,但奇怪的是,在这种情况下,即使这个控制组满足平行趋势,你也会抛弃这个控制组并寻找另一个控制组。
这就是悖论 ——如果不了解处理分配机制,你根本无法辨别这种处理选择是否会成为问题。换句话说,有些配置机制将个体分配给处理,这些机制满足平行趋势,但有趣的是,它们违反了处理前趋势!
注:(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):处理模式图
146、【应用计量系列146】Sant' Anna的DID规定动作(2):每类处理中处理个体数
147、【应用计量系列147】Sant' Anna的DID规定动作(3):画出每个处理类别的平均结果时序图
148、【应用计量系列148】Sant' Anna的DID规定动作(4-1):写好制度背景---处理配置机制
149、【应用计量系列149】Sant' Anna的DID规定动作(4-2):处理配置机制~一场星际会议的讨论
点击蓝色链接,即可查看详细课程大纲
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
其它事项:可开具培训、技术服务、咨询等类型的增值税普票
更多课程信息,扫描下方二维码咨询:
特别提醒:非诚勿扰!