Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New! lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
, ihelp
, rdbalance
, gitee
, installpkg
✌ 课程详情: https://gitee.com/lianxh/Course
⛳ 课程主页: https://gitee.com/lianxh/Course
⛳ Stata 系列推文:
☝ PDF下载 - 推文合集
作者:李金桐 (中山大学)
邮箱:lijt65@mail2.sysu.edu.cn
目录
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 ]
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]