查看原文
其他

因果推断:双重机器学习-ddml

连享会 连享会 2023-10-24

👇 连享会 · 推文导航 | www.lianxh.cn

连享会课程 · 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 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存