温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
作者: 曹琳君 (南开大学) ;陈波 (深圳大学)
「Source: Practical Guide to Counterfactual Estimators for Causal Inference with Time-Series Cross-Sectional Data." Working Paper, Stanford University, -Link-」
目录
双向固定效应分析是人们用来识别因果机制的主要策略之一,它基于两个重要的假设条件:(1) “线性假设”,即干预效果在研究的时间范围内以固定的速率变化 (当干预为二分变量时,则简化为干预效果恒定) ;(2) “无时变混杂因素假设”,即不存在同时与干预结果和潜在结果相关的未观察到的、随时间变化的因素。当只有两个时期和两个组时,这一假设意味着平行趋势。
然而严格的假设条件意味着它只能在平行世界中产生可解释的因果估计,任一假设的失败都会导致因果估计结果的偏差。
针对这一问题,Licheng Liu (Tsinghua) 、Ye Wang (NYU) 和 Yiqing Xu (Stanford) 三位学者开发了 fect
命令,通过引入一组估计量来放宽双向固定效应在分析干预措施为二元变量时的假设条件,以获得更精确的因果估计结果。
本文主要介绍 fect
命令的基本原理和相关语法,以帮助大家更好的进行因果推断。
在这一环节,本文主要介绍 fect
命令的适用条件及三种基于 fect
命令生成的反事实估计量。
fect
命令适用于干预措施是二分变量的固定效应模型,它的固定效应既可以相加也可以交互。该命令包括以下功能性假设:
(1) 双向固定效应假设 (Two-way fixed effects) :对任一样本
该假设与传统的固定效应假设的区别在于:该假设允许干预效果在样本之间和不同时间内是异质性的,放宽了传统的固定效应分析的线性假设 (即当干预变量为二分变量时,干预效果是恒定的假设) 。
(2) 交互固定效应假设 (Interactive fixed effects) :对任一样本
同固定效应假设的计算公式相比,交互固定效应假设的计算公式增加了
因子可以理解为对每个单元产生不同的影响的时变趋势,因子载荷可以理解为由每个单元的各种未观察到的特征引起的异质性影响。例如, 2008 年的金融危机打击了美国经济,但它对不同的城市产生了不同的影响,这取决于一个城市的人口统计学特征、房地产市场、产业结构等。
该假设与传统的固定效应假设的区别在于:该假设利用
双向固定效应假设模型和交互固定效应假设模型都假设在进行干预效果分析时的残差项严格外生。
干预组的平均干预效果 ATT 和干预开始以来的整数期内的平均干预效果 ATTs 是进行因果分析的重要指标。
ATT 的计算公式如下:
ATTs 的计算公式如下:
基于 fect
命令,研究者可以生成 3 个关于 ATT 的反事实因果估计指标:(1) 固定效应的反事实因果估计量 (Fixed-effect counterfactual estimator) ,(2) 交互固定效应的反事实估计量 (Interactive fixed-effect counterfactual estimator) 和 (3) 矩阵完备估计量 (Matrix completion estimator)。
(1) 固定效应的反事实因果估计量 (FEct) 的特点:该估计量与传统的双向固定效应模型共享相同的假设,同时放宽当干预效果为二分变量时的恒定干预效果假设。当干预效果是异质性的时候,该估计量依然稳健。
(2) 交互固定效应的反事实估计量 (IFEct) 的特点:当存在未观察到的时变混杂因素时, FEct 将导致有偏估计。如果这些混杂因素可以分解为时间特定因子与单位特定因子载荷相互作用,我们可以使用 IFEct 来获得更精确的估计量。IFEct 估计量是对 FEct 估计量的拓展,放宽了双向固定效应模型中的“无时变混杂因素假设”。
(3) 矩阵完备估计量 (MC) 的特点:类似于 FEct 估计量和 IFEct 估计量,它将因果推理问题视为一个任务,即完善一个
fect
命令依赖 reghdfe
和 ftools
命令, 所以在安装 fect
命令之前,我们需要事先安装最新的 reghdfe
命令和 ftools
命令:
ssc install reghdfe, replace
ssc install ftools, replace
安装这两个命令 之后,作者提供了两种方法安装 fect
。
若电脑中已安装 fect
命令,先通过 uninstall
卸载旧命令。随后使用 net install
从指定网址安装最新的安装包。
cap ado uninstall fect
net install fect, from(https://raw.githubusercontent.com/xuyiqing/fect_stata/master/) replace
但是考虑到国内的上网条件,访问 github 网速很慢,上述方法不一定安装成功。因此作者提供了本地安装方法。
我们先从 fect
命令所在网址: https://github.com/xuyiqing/fect_stata ,手动下载 ZIP 压缩文件。当然,考虑到国内访问 github 较慢,我们可以访问国内码云链接:https://gitee.com/caolinjun/fect_stata.git , 点击【克隆/下载】。将文件解压到特定位置,如 D:\fect ,并将文件存放路径粘贴至 from()
中,运行以下命令即可完成安装。
cap ado uninstall fect
net install fect, all replace from("~/Downloads/fect_stata-master") //macOS
net install fect, all replace from("D:\fect") //Windows
安装好命令后,清除 Stata 内存,并调入测试数据 simdata1
,为接下来的操作做好准备:
clear
set more off
sysuse simdata1
*note: 如果调用不成功,也可以手动从之前的下载位置打开。
我们先简单介绍一下 fect
命令:
fect outcome [if] , treat(varname) unit(varname) time(varname) [options]
outcome
:被解释变量treat
:分组变量,区分处理组与对照组unit
:样本 idtime
:时间变量options
:包括协变量 cov
、估计方法 method
设定和 force
固定效应设定。现有版本的 fect
,共提供了五种方法进行反事实预测,分别是 : fe(fixed effect)
、ife(interactive fixed effects)
、mc(matrix completion)
、bspline(unit-specific bspline)
和 polynomial(unit-specific time treads)
。下面对我们主要对常用的前三种进行详细介绍。
我们先使用 Fixed Effects 进行反事实预测:
*- Fixed Effects
fect Y, treat(D) unit(id) time(time) cov(X1 X2) method("fe") force("two-way")
cox
中是协变量,method(fe)
是将预测方法设定为 fe
,force
设定固定效应,我们使用双固定效应 two-way
。
下图展示了 FE 方法 的ATT 的估计结果。观察图中的折线,我们可以发现,在接受处理之后, ATT 出现了明显的跃升,这表明该政策是有效的。而在接受处理之前 (虚线左侧) ,ATT 保持相对平稳,且一直围绕在 0 值附近。图中的条形图部分,则展示了每一期接受处理样本的个数。
如果需要知道 ATT 的精确数值,输入如下命令即可:
. mat list e(ATT)
e(ATT)[1,2]
ATT N
r1 3.4890777 900
每一期的 ATT 则可以通过如下命令获取 (仅展示五期) :
. mat list e(ATTs)
e(ATTs)[47,3]
s n ATT
r1 -31 20 -.77109587
r2 -30 20 -.60864007
r3 -29 20 -.17312063
r4 -28 40 -.46861675
r5 -27 40 -.46439415
我们还可以获取协变量和常数项的具体估计结果:
. mat list e(coefs)
e(coefs)[1,3]
cons X1 X2
r1 10.043207 .92796433 3.0523357
在使用交互固定效应预测反事实时,需要引入不可观测的共同因子。当因子数为 1 时,交互固定效应等价于上文的固定效应方法。默认是存在一个因子,我们也可以使用 r()
设定多个因子。下面我们将因子数设定为 2 ,进行反事实预测:
*- Interactive Fixed Effects
fect Y, treat(D) unit(id) time(time) cov(X1 X2) method("ife") force("two-way") r(2)
下图展示了使用 IFE 方法的 ATT 的估计结果。同样地,我们可以发现,在处理前后, ATT 有着明显的差异。
使用与上文相同的命令,我们也可以获取 ATT 的具体数值、每一期的 ATT ,以及协变量和常数项的估计值:
. mat list e(ATT) //获取 ATT
e(ATT)[1,2]
ATT N
r1 3.4890777 900
. mat list e(ATTs) //获取每一期的 ATT (仅展示五期)
e(ATTs)[47,3]
s n ATT
r1 -31 20 -.77109587
r2 -30 20 -.60864007
r3 -29 20 -.17312063
r4 -28 40 -.46861675
r5 -27 40 -.46439415
. mat list e(coefs) //获取控制变量与常数项的估计值
e(coefs)[1,3]
cons X1 X2
r1 10.043207 .92796433 3.0523357
MC 方法引入了一个新的参数 lambda ,作为估计时的惩罚项。 lambda 默认的数值为 1 ,在下面的估计中,我们将其修改为 0.004, 进行反事实预测:
*- Matrix Completion
fect Y, treat(D) unit(id) time(time) cov(X1 X2) method("mc") lambda(0.004)
下图展示了 MC 方法的 ATT 估计结果。我们可以发现,MC 方法得出的估计值呈现出与 FE 和 IFE 方法相似的时间趋势。
同样地,我们也可以通过以下命令获取 ATT 、每一期的 ATT ,以及控制变量与常数项的估计值:
. mat list e(ATT) //获取 ATT
e(ATT)[1,2]
ATT N
r1 2.5668276 900
. mat list e(ATTs) //获取每一期的 ATT (仅展示五期)
e(ATTs)[47,3]
s n ATT
r1 -31 20 -.07194448
r2 -30 20 -.11271387
r3 -29 20 .23297906
r4 -28 40 -.17737634
r5 -27 40 -.20824151
. mat list e(coefs) //获取控制变量与常数项的估计值
e(coefs)[1,3]
cons X1 X2
r1 11.201599 .94348337 3.0173834
综合上述三种方法的估计结果,我们可以发现,不同方法得出的总体趋势是相似的,但具体的估计值却存在一定的差异。那么,我们该如何抉择呢?选定模型之后,我们又该如何检验其稳健性呢?详细答案,敬请期待下一期推文。
Note:产生如下推文列表的 Stata 命令为:
lianxh 因果推断
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh