fect:基于面板数据的因果推断(上)
👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:公开课-直播 | 计量专题 | 关于连享会
连享会课程 · 深度因果推断
作者: 曹琳君 (南开大学) ;陈波 (深圳大学)
邮箱: linjuncao@yeah.net ;1900123011@email.szu.edu.cn
Source: Practical Guide to Counterfactual Estimators for Causal Inference with Time-Series Cross-Sectional Data." Working Paper, Stanford University, -Link-
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
目录
1. 背景介绍
2. fect 命令的基本原理
2.1 fect 命令的适用条件
2.2 基于 fect 命令的反事实估计量
3. fect 命令安装
4. fect 命令介绍
4.1 Fixed Effects (FE)
4.2 Interactive Fixed Effects (IFE)
4.3 Matrix Completion (MC)
5.结语
6. 参考资料
7. 相关推文
fect:基于面板数据的因果推断(上) fect:基于面板数据的因果推断(下)
1. 背景介绍
双向固定效应分析是人们用来识别因果机制的主要策略之一,它基于两个重要的假设条件:(1) “线性假设”,即干预效果在研究的时间范围内以固定的速率变化 (当干预为二分变量时,则简化为干预效果恒定) ;(2) “无时变混杂因素假设”,即不存在同时与干预结果和潜在结果相关的未观察到的、随时间变化的因素。当只有两个时期和两个组时,这一假设意味着平行趋势。
然而严格的假设条件意味着它只能在平行世界中产生可解释的因果估计,任一假设的失败都会导致因果估计结果的偏差。
针对这一问题,Licheng Liu (Tsinghua) 、Ye Wang (NYU) 和 Yiqing Xu (Stanford) 三位学者开发了 fect
命令,通过引入一组估计量来放宽双向固定效应在分析干预措施为二元变量时的假设条件,以获得更精确的因果估计结果。
本文主要介绍 fect
命令的基本原理和相关语法,以帮助大家更好的进行因果推断。
2. fect 命令的基本原理
在这一环节,本文主要介绍 fect
命令的适用条件及三种基于 fect
命令生成的反事实估计量。
2.1 fect 命令的适用条件
fect
命令适用于干预措施是二分变量的固定效应模型,它的固定效应既可以相加也可以交互。该命令包括以下功能性假设:
A1. 固定效应假设
(1) 双向固定效应假设 (Two-way fixed effects) :对任一样本 , 它在 时间的干预效果为 ,其计算公式为:
表示样本 是否在时间 被干预 (如果是则取值为 1 ,否则取值为 0) ; 表示样本 在时间 的干预效果; 表示一个 (p× 1) 的外生协变量向量; 表示一个 (p× 1) 的未知参数向量; 和 分别表示各种独立的不随时间改变的个体效应和不随个体改变的时间效应; 表示表示样本 在时间 受到的未被观察到的特殊冲击,且均值为 0 。
该假设与传统的固定效应假设的区别在于:该假设允许干预效果在样本之间和不同时间内是异质性的,放宽了传统的固定效应分析的线性假设 (即当干预变量为二分变量时,干预效果是恒定的假设) 。
(2) 交互固定效应假设 (Interactive fixed effects) :对任一样本 , 它在 时间的干预效果为 ,其计算公式为:
同固定效应假设的计算公式相比,交互固定效应假设的计算公式增加了 项,其中 表示一个未被观察到的公共因子的 向量, 表示一个未知的因子载荷 向量。
因子可以理解为对每个单元产生不同的影响的时变趋势,因子载荷可以理解为由每个单元的各种未观察到的特征引起的异质性影响。例如, 2008 年的金融危机打击了美国经济,但它对不同的城市产生了不同的影响,这取决于一个城市的人口统计学特征、房地产市场、产业结构等。
该假设与传统的固定效应假设的区别在于:该假设利用 捕捉了时变趋势的特征,放宽了传统的固定效应分析的“无时变混杂因素假设”。
A2. 严格外生性假设
双向固定效应假设模型和交互固定效应假设模型都假设在进行干预效果分析时的残差项严格外生。
2.2 基于 fect 命令的反事实估计量
干预组的平均干预效果 ATT 和干预开始以来的整数期内的平均干预效果 ATTs 是进行因果分析的重要指标。
ATT 的计算公式如下:
表示干预组, s.t. 。
ATTs 的计算公式如下:
for any
基于 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 估计量,它将因果推理问题视为一个任务,即完善一个 矩阵的缺失项, 当 时缺少发生。
3. fect 命令安装
fect
命令依赖 reghdfe
和 ftools
命令, 所以在安装 fect
命令之前,我们需要事先安装最新的 reghdfe
命令和 ftools
命令:
ssc install reghdfe, replace
ssc install ftools, replace
安装这两个命令 之后,作者提供了两种方法安装 fect
。
途径 1 :在线安装
若电脑中已安装 fect
命令,先通过 uninstall
卸载旧命令。随后使用 net install
从指定网址安装最新的安装包。
cap ado uninstall fect
net install fect, from(https://raw.githubusercontent.com/xuyiqing/fect_stata/master/) replace
但是考虑到国内的上网条件,访问 github 网速很慢,上述方法不一定安装成功。因此作者提供了本地安装方法。
途径 2 :本地安装
我们先从 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: 如果调用不成功,也可以手动从之前的下载位置打开。
4. fect 命令介绍
我们先简单介绍一下 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)
。下面对我们主要对常用的前三种进行详细介绍。
4.1 Fixed Effects (FE)
我们先使用 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
4.2 Interactive Fixed Effects (IFE)
在使用交互固定效应预测反事实时,需要引入不可观测的共同因子。当因子数为 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
4.3 Matrix Completion (MC)
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
5.结语
综合上述三种方法的估计结果,我们可以发现,不同方法得出的总体趋势是相似的,但具体的估计值却存在一定的差异。那么,我们该如何抉择呢?选定模型之后,我们又该如何检验其稳健性呢?详细答案,敬请期待下一期推文。
6. 参考资料
Licheng Liu, Ye Wang, Yiqing Xu (2019). "Practical Guide to Counterfactual Estimators for Causal Inference with Time-Series Cross-Sectional Data." Working Paper, Stanford University. Available at SSRN: https://papers.ssrn.com/abstract=3555463,详细介绍可见Github主页
7. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh 因果推断
安装最新版lianxh
命令:
ssc install lianxh, replace
专题:内生性-因果推断 fect:基于面板数据的因果推断(上)-T218a fect:基于面板数据的因果推断(下)-T218b 因果推断:混杂因素的敏感性分析-T249 用FE-固定效应模型能做因果推断吗? 经典文献回顾:政策评价-因果推断的计量方法 因果推断好书:Causal-Inference-Measuring-the-Effect-of-X-on-y Stata因果推断新书:The-SAGE-Handbook-of-Regression-Analysis-and-Causal-Inference Stata新命令:konfound - 因果推断的稳健性检验
课程推荐:机制分析与政策优化(2023年8月22-24日)
主讲老师:杨海生
课程地点:西安·西北工业大学
🍓 课程主页:https://www.lianxh.cn/news/72ab78cb6b39f.html
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。