动态双重机器学习

这是什么?

动态双重机器学习是一种用于估计(异质性)处理效应的方法,适用于通过自适应动态策略随时间提供处理的情况。它适用于以下情况:所有潜在的动态混淆因素/控制变量(即在收集的数据中同时对自适应处理决策和观测结果有直接影响的因素)都被观测到,但这些因素的数量过多(高维),使得经典统计方法无法适用,或者它们对处理和结果的影响无法通过参数函数(非参数)得到令人满意的建模。后者的这两个问题都可以通过机器学习技术来解决(例如参见 [Lewis2021])。

相关估计器类有哪些?

本节描述了类 DynamicDML 中实现的方法学。点击这些链接以查看每个类的详细模块文档和输入参数。

何时使用?

假设您拥有观测数据(或来自 A/B 测试的实验数据),其中随时间向每个单元提供了多种处理/干预/行动 \(T\),并且观测到了一些最终结果 \(Y\),数据集中也记录了所有可能影响 \(T\) 的选择并同时可能对结果 \(Y\) 有直接影响的变量 \(W\)(也称为控制变量或混淆因素)。

如果您的目标是理解处理对结果的影响,将其作为处理样本的可观测特征集 \(X\) 的函数,那么可以使用此方法。例如调用

from econml.panel.dml import DynamicDML
est = DynamicDML()
est.fit(y_dyn, T_dyn, X=X_dyn, W=W_dyn, groups=groups)

类层级结构

在此库中,我们实现了上一节中提到的几种方法的变体。所实现的 CATE 估计器的层级结构如下。

Inheritance diagram of econml.panel.dml.DynamicDML

下面我们简要介绍一下这些类

  • DynamicDML.DynamicDML 是双重机器学习方法的一种扩展,用于处理随时间顺序分配的处理。该估计器将调整对未来结果可能产生因果效应的处理。数据对应于一个马尔可夫决策过程 \(\{X_t, W_t, T_t, Y_t\}_{t=1}^m\),其中 \(X_t, W_t\) 对应于时间 \(t\) 的状态,\(T_t\) 是时间 \(t\) 的处理,\(Y_t\) 是时间 \(t\) 的观测结果。

    该模型对数据生成过程做出以下结构方程假设

    \[\begin{split}XW_t =~& A \cdot T_{t-1} + B \cdot XW_{t-1} + \eta_t\\ T_t =~& p(T_{t-1}, XW_t, \zeta_t) \\ Y_t =~& \theta_0(X_0)'T_t + \mu'XW_t + \epsilon_t\end{split}\]

    其中 \(XW\)\(X\)\(W\) 变量的串联。有关此模型和潜在假设的更多详细信息,请参见 [Lewis2021]

    为了学习不同时期处理对最后一期结果的处理效应,可以简单地调用

    from econml.panel.dml import DynamicDML
    est = DynamicDML()
    est.fit(y_dyn, T_dyn, X=X_dyn, W=W_dyn, groups=groups)
    

使用常见问题解答

请参阅 DML 用户指南 中的常见问题解答部分