因果推断:双重机器学习-ddml
👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:公开课-直播 | 计量专题 | 关于连享会
连享会课程 · 2023 暑期班
作者:李金桐 (中山大学)
邮箱:lijt65@mail2.sysu.edu.cn
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
目录
1. 理论基础
1.1 为什么我们需要 DDML
1.2 DDML 的本质
1.3 如何构造 DDML
2. Stata 实现
2.1 命令介绍
2.2 模型设定
3. 应用实例
3.1 catteneo2 实例
3.2 401(k) 实例
4. 总结讨论
5. 参考文献
6. 相关推文
1. 理论基础
1.1 为什么我们需要 DDML
实证研究往往会面临一个质疑:模型设定是正确的吗?例如,研究在班级中加入助教对教学质量的影响,常见的方法是构造回归方程:
其中, 代表成绩; 是标志是否加入助教的二元变量; 为控制变量,可能包括:每天学习时间、作业完成率、出勤率等。那么这些特征的关系真的是线性的吗?显然不是。例如随着学习时间增加,成绩自然会提高,然而学习时间过长很可能导致疲惫、睡眠不足等,进而造成学习效率下降,反而使得成绩下降。
需要注意的是,我们实际上并不关心学习时间对成绩的影响,我们只希望研究 ,我们只是需要处理控制变量对 造成的影响。
接下来用更严谨的方法描述上述问题。考虑因果模型:
其中 是模型的 Outcome, 是因果模型的 treatment。这里,我们关注 ,即 treatment 的因果效应。一种常见的思路是,通过假设 (例如常见的线性假设),或者利用一定方法 (通常是机器学习) 估计,得到 ,随后就可以利用线性回归得到 :
接下来,很自然的想要研究这个估计量是否无偏。遗憾的是 往往是有偏的:
可以看出误差分为两项。 项来自于 和 的独立性,即 ,若二者不独立则会造成偏误。然而问题来源于 项,我们将其展开为以下形式:
注意到 项。首先, 的估计往往存在误差,例如对于高维数据,往往会采用正则项处理,造成正则化误差,此时 项发散。此外, 是数据本身的性质,因此数据会决定偏误的大小而无法改变,导致估计非常不稳健。
综合以上推论,可以说因果模型 treatment effect 的传统估计方法并不完美。因此,我们引入Double/Debiased Machine Learning (DDML) 的概念,为因果估计提供更为稳健的方法。
1.2 DDML 的本质
根据上述推论,传统因果估计方法不稳健的核心在于 项,其中 部分是 的估计误差,显然是难以避免的。因此更为实际的考虑是消除 。其出现原因在于用于回归的 实际上包含了 的信息。
如图,注意到 实际上可以看作工具变量,此时可以构造估计:
为了求 ,可以采用:
其中 可以通过 对 回归得到,因此我们得到一种新的估计:
在这个估计下,新的 项变为:
此时偏误仅仅取决于回归误差,因此这个估计更为稳健。直观角度上,线性回归是拟合 在特征空间 的最佳投影 (既误差最小化),所以残差垂直于样本空间 ,最大限度消除了 的相关性。
此时我们已经在因果模型中构造了稳健的估计量。接下来,我们希望从中总结出一套普适性更强的方法论,以用于更多场景。我们对上述过程进行总结:
存在目标函数 和其他不太关心的回归函数 和 ; 的传统估计方法中,如果拟合的函数 存在误差,则误差项不收敛; 需要构造估计量使得 和 出现误差时,偏误依然足够小。
这里我们用 Gateaux Dervative 描述 估计误差对偏误的影响:
我们将 (1) 式的传统估计方法重新写成:
其问题在于 Gateaux Dervative 不为零:
换言之, 的微小扰动会导致 发生较大的变化,因此估计不准时存在较大误差。
我们将 (2) 式的估计方法重新写成:
其中 称为 Nuisance Parameter。可以证明这个估计量的 Gateaux Dervative 为零:
直观来说,Gateaux Dervative 事实上刻画了 对 变化的敏感程度。如果 Gateaux Dervative 等于零,意味着这个估计量更为稳健。我们称这个性质为 Neyman Orthogonality。这种构造就是 Double/Debiased Machine Learning 的思想基础。
此外,估计无偏重要的一步是 Cross-fitting,用来降低 overfitting 带来的估计偏差。将总样本分成样本 1,样本 2 两份。先用样本 1 估计残差,样本 2 估计 ,再用样本 2 估计残差,样本 1 估计,取平均得到最终的估计 。当然也可以进一步使用 K-Fold 来增加估计的稳健性。
1.3 如何构造 DDML
接下来,我们希望找到通用的方法构造 满足Neyman Orthogonality。不妨设 ,我们的目标可以通过最大化某个函数得到,通常为对数似然,故在极值处导数为 0:
因此,一个自然的想法是令 。然而,为了满足 Neyman Orthogonality,我们还需要自己构造估计量:
此时只需要找到合适的 使 满足 Neyman Orthogonality:
可以得到解析解:。
2. Stata 实现
2.1 命令介绍
ddml
是用于 Double Debiased Machine Learning 的 Stata 包,支持五种不同的模型,允许二元或连续 treatment 变量,支持内生性、高维控制,并支持工具变量,且支持多种不同的机器学习程序。
. ssc install ddml, replace
利用 ddml
包进行 Double Debiased Machine Learning 分为四步进行:
初始化并选择模型:
ddml init model [if] [in] [ , mname(name) kfolds(integer)
fcluster(varname) foldvar(varlist) reps(integer)
norandom tabfold vars(varlist) ]
添加监督机器学习以估计条件期望:
ddml eq [ , mname(name) vname(varname) learner(varname)
vtype(string) predopt(string) ] : command depvar vars [ , cmdopt ]
Cross-fitting:
ddml crossfit [ , mname(name) shortstack ]
估计因果效应:
ddml estimate [ , mname(name) robust cluster(varname) vce(type) att trim(real) ]
2.2 模型设定
Partial linear model [partial]
其中目标是在控制 的同时估计 。为此,我们使用有监督的机器学习估计条件期望 和E。
Partial linear IV model [iv]
在这个模型中, 和 之间存在结构或因果关系,其关系由 来表示。 可以看作是随机误差,其中 可以被协变量 所解释。由于 和 是共同确定的,所以我们引入一个外部因素,称为工具 ,以解释 的外生变化。
注意, 应该影响 。这里的 再次作为 confounding factors,因此我们可以认为 中的变化是外生的,仅以 为条件。
一个来自生物统计学的例子: 为健康指标, 为吸烟的指标,则 代表着抽烟对健康的影响,健康指标 和吸烟行为 同时被确定。 代表患者特征, 是医生建议不要吸烟 (或其他行为治疗),这一行为由 决定, 只能通过改变行为 去影响结果 。
Interactive model [interactive]
在该模型设定中,treatment effect 完全异质且 为二元变量。由于 与 是不可线性分离的,所以在 为二元变量的情况下,该模型比部分线性模型的应用广泛性更好。
我们在模型中感兴趣的目标参数是平均 treatment effect(ATE):
另一个常见的目标参数是接受 treat 者的平均 treatment effect(ATTE):
Interactive IV model [interactiveiv]
在该模型设定中,我们考虑 是二元变量,, 利用 和 对局部平均 treatment effect(LATE) 进行估计。其中 将 映射到 上, 和 分别将 和 映射到 ,。
其中我们感兴趣的估计为:
是平均处理效果。
High-dimensional IV model [ivhd]
3. 应用实例
3.1 catteneo2 实例
我们以 Stata 的示例数据集 cattaneo2 为例。该数据集包括 1989 年至 1991 年间宾夕法尼亚州单胎婴儿及其父母的信息,如婴儿出生体重、父母年龄、父母教育程度、怀孕期间吸烟频率、怀孕期间是否有饮酒等。原始数据集包括近 50 万名新生儿。Stata 示例数据集包括 4642 例新生儿数据。可通过 webuse cattaneo2
调用该数据集。
研究问题:孕妇吸烟对婴儿出生体重有什么影响?
我们设定模型的 outcome (即模型中的 ) 为变量 bweight,是以克为单位的婴儿出生体重;我们关注的treatment (即模型中的 ) 为变量 mbsmoke,是表示孕妇是否吸烟的二元变量;其余变量 (即模型中的 ) 包括母亲年龄、是否在妊娠一个月内进行首次产检、母亲是否已婚、婴儿是否是首胎、母亲的教育程度。
首先采用Partial linear model进行估计:
. webuse cattaneo2, clear
. global Y bweight
. global D mbsmoke
. global X mage prenatal1 mmarried fbaby mage medu
. gen fid=_n>2321
. ddml init partial, foldvar(fid)
. ddml E[Y|X], gen(regy): reg $Y $X
. ddml E[D|X], gen(regd): reg $D $X
. ddml crossfit
. ddml estimate, vce(hc2)
-------------------------------------------------------------
| Robust HC2
bweight | Coeff std. err. z P>|z| [95% ci]
-------------+-----------------------------------------------
mbsmoke |-222.324 22.562 -9.85 0.000 -266.545 -178.103
_cons | 0.453 8.255 0.05 0.956 -15.726 16.632
-------------------------------------------------------------
接下来采用 Interactive model 进行估计,这里我们对 ATE 和 ATTE 的结果均进行输出:
. ddml init interactive, foldvar(fid)
. ddml E[Y|X,D], gen(regy): reg $Y $X
. ddml E[D|X], gen(regd): logit $D $X
. ddml crossfit
. ddml estimate, trim(0)
---------------------------------------------------------
| Robust
bweight | Coeff se z P>|z| [95% ci]
--------+------------------------------------------------
mbsmoke | -231.810 23.482 -9.87 0.000 -277.834 -185.786
---------------------------------------------------------
. ddml estimate, atet trim(0)
--------------------------------------------------------
| Robust
bweight | Coeff se z P>|z| [95% ci]
--------+-----------------------------------------------
mbsmoke | -222.652 23.537 -9.46 0.000 -268.783 -176.521
--------------------------------------------------------
3.2 401(k) 实例
Chernozhukov 和 Hansen (2004) 曾用工具分位数回归方法,使用 Survey of Income and Program Participation 的数据来检验 401(k) 计划对财富的影响。他们使用 401(k) 资格作为参与的工具变量,估计了参与 401(k) 计划对若干财富指标的分位数 treatment effect。在这里,我们使用相同的数据进行分析。
研究问题:参与 401(k) 计划对家庭财富有什么影响?
首先,在不采用工具变量的情况下,我们用 Partial linear model 和 Interactive model 两种模型分别进行估计。我们设定模型的 outcome (即模型中的 ) 为变量 net_tfa,表示金融资产净额;我们关注的 treatment (即模型中的 ) 为变量 e401,是表示是否有 401(k) 资格的二元变量;其余变量 (即模型中的 ) 包括总资产、户主年龄、家庭收入、家庭规模、户主的教育年限、固定福利养老金状况指标、是否已婚、是否是双职工家庭、是否参与IRA、是否拥有房子。
. lxhuse sipp1991.dta, clear
. global Y net_tfa
. global D e401
. global X tw age inc fsize educ db marr twoearn pira hown
. gen fid = mod(_n,3)+1
. *partial
. ddml init partial, foldvar(fid)
. ddml E[Y|X]: reg $Y $X
. ddml E[D|X]: reg $D $X
. ddml crossfit
. ddml estimate , vce(hc3)
----------------------------------------------------------
| Robust HC3
net_tfa | Coeff std. err. z P>|z| [95% ci]
--------+-------------------------------------------------
e401 |5210.197 1088.063 4.79 0.000 3077.633 7342.761
_cons | 22.090 397.140 0.06 0.956 -756.291 800.470
----------------------------------------------------------
. *interactive
. ddml init interactive, foldvar(fid)
. ddml E[Y|X,D]: reg $Y $X
. ddml E[D|X]: logit $D $X
. ddml crossfit
. ddml estimate, trim(0)
-----------------------------------------------------------
| Robust
net_tfa | Coeff std. err. z P>|z| [95% ci]
--------+--------------------------------------------------
e401 | 2633.680 2771.162 0.95 0.342 -2797.697 8065.058
-----------------------------------------------------------
. ddml estimate , atet trim(0)
------------------------------------------------------------
| Robust
net_tfa | Coeff std. err. z P>|z| [95% ci]
--------+---------------------------------------------------
e401 |563.385 6963.070 0.08 0.936 -1.31e+04 14210.752
------------------------------------------------------------
接下来,我们在模型中引入工具变量,并用 Partial 和 Interactive 两种模型分别进行估计。这里我们将 treatment (即模型中的 ) 设定为变量 p401,表示是否参加401(k),将变量 e401 作为工具变量 (即模型中的 ),其余设定与无工具变量的模型相同。
. *partial IV
. ddml init iv, foldvar(fid)
. ddml E[Y|X]: reg $Y $X
. ddml E[Z|X]: reg $Z $X
. ddml E[D|X]: reg $D $X
. ddml crossfit
. ddml estimate , robust
-------------------------------------------------------------
| Robust
net_tfa | Coeff se z P>|z| [95% ci]
--------+-----------------------------------------------------
p401 | 7515.847 1567.482 4.79 0.000 4443.638 10588.055
_cons | 22.768 396.090 0.06 0.954 -753.554 799.091
--------------------------------------------------------------
. *interactive IV
. ddml init late, foldvar(fid)
. ddml E[Y|X,Z]: reg $Y $X
. ddml E[D|X,Z]: logit $D $X
. ddml E[Z|X]: logit $Z $X
. ddml crossfit
. ddml estimate , trim(0)
--------------------------------------------------------------
| Robust
net_tfa | Coeff se z P>|z| [95% ci]
--------+-----------------------------------------------------
p401 | 3829.545 4028.866 0.95 0.342 -4066.886 11725.977
--------------------------------------------------------------
4. 总结讨论
利用机器学习方法进行因果推断已被广泛地研究和应用。一方面,机器学习因果推断可以减少对函数形式的假设,并且可以对高维数据进行建模。此外,机器学习自带正则化,可以达到变量选择的效果。然而,传统的机器学习因果推断并不完美,这主要体现在其并不理想的稳健性上。传统方法中,除非函数估计绝对精确或者函数形式设定完全正确 (这在实际应用中几乎不可能达到),否则对于 treatment effect 的估计误差并不收敛,与数据本身的性质有关,需要权衡偏差和方差,造成了不稳健。
Double/Debiased Machine Learning 在传统方法的基础上,引入残差建模的思想,消除偏差,提供了更为稳健的因果推断方法。此外,DDML方法还能构建置信区间,且其收敛速度 一般大于传统机器学习方法。
Stata 的程序包 ddml
提供了便捷的 DDML 实现。高效正确地进行 DDML 的关键是合理的模型设定。ddml
包支持五种不同的模型,包括 Partial linear model、Partial linear IV model、Interactive model、Interactive IV model、High-dimensional IV model。模型设定的关键在于 treatment 与其他控制变量是否能够线性分离,以及是否加入工具变量进入模型。
机器学习擅长给出精准的预测,而经济学注重特征对目标影响的无偏估计。Double/Debiased Machine Learning 把经济学的方法和思想与机器学习相结合,在经济学框架下用机器学习方法给出特征对目标影响的无偏估计,提供了更为稳健的机器学习因果推断手段。
5. 参考文献
Chernozhukov V, Chetverikov D, Demirer M, et al. Double/debiased machine learning for treatment and structural parameters[J]. 2018. -PDF- Fisher A, Kennedy E H. Visually communicating and teaching intuition for influence functions[J]. The American Statistician, 2021, 75(2): 162-172. -PDF- Díaz I. Machine learning in the estimation of causal effects: targeted minimum loss-based estimation and double/debiased machine learning[J]. Biostatistics, 2020, 21(2): 353-358. -PDF- Almond D, Chay K Y, Lee D S. The costs of low birth weight[J]. The Quarterly Journal of Economics, 2005, 120(3): 1031-1083. -PDF- Cattaneo M D. Efficient semiparametric estimation of multi-valued treatment effects under ignorability[J]. Journal of Econometrics, 2010, 155(2): 138-154. -PDF- Chernozhukov V, Hansen C. The effects of 401 (k) participation on the wealth distribution: an instrumental quantile regression analysis[J]. Review of Economics and statistics, 2004, 86(3): 735-751. -PDF- Hull I, Grodecka-Messi A. Measuring the Impact of Taxes and Public Services on Property Values: A Double Machine Learning Approach[J]. arXiv preprint arXiv:2203.14751, 2022. -PDF- MIT OpenCourseWare: Victor Chernozhukov and Iván Fernández-Val. 14.382 Econometrics. Spring 2017. L12. TREATMENT EFFECTS -PDF-
6. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh 机器学习, m
安装最新版lianxh
命令:
ssc install lianxh, replace
专题:论文写作 Semantic scholar:一款基于机器学习的学术搜索引擎 专题:Stata教程 Stata-Python交互-7:在Stata中实现机器学习-支持向量机 专题:Stata命令 Stata:双重机器学习-多维聚类标准误的估计方法-crhdreg 专题:Python-R-Matlab MLRtime:如何在 Stata 调用 R 的机器学习包? 专题:其它 知乎热议:机器学习在经济学的应用前景 专题:机器学习 知乎热议:如何学习机器学习 机器学习在经济学领域的应用前景 机器学习如何用?金融+能源经济学文献综述 知乎热议:纠结-计量经济、时间序列和机器学习 机器学习:随机森林算法的Stata实现 Stata:机器学习分类器大全
课程推荐:2023 暑期班
主讲老师:连玉君,王群勇
🍓 课程主页:https://www.lianxh.cn/news/fdc69c3695aec.html
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。