econml.iv.nnet.DeepIV

econml.iv.nnet.DeepIV(*, n_components, m, h, n_samples, use_upper_bound_loss=False, n_gradient_samples=0, optimizer='adam', first_stage_options={'epochs': 100}, second_stage_options={'epochs': 100})[来源]

基类: econml._cate_estimator.BaseCateEstimator

Deep IV 估计器 (参见 http://proceedings.mlr.press/v70/hartford17a/hartford17a.pdf)。

参数
  • n_components (int) – 混合密度网络中的组件数量

  • m ((tensor, tensor) -> Layer) – 用于构建一个将 z 和 x 输入特征化的 Keras 模型的方法

  • h ((tensor, tensor) -> Layer) – 用于构建给定 t 和 x 时预测 y 的模型的方法

  • n_samples (int) – 要使用的样本数量

  • use_upper_bound_loss (bool, optional) – 是否使用真损失的上限(相当于在 h 的方差上添加正则化惩罚项)。默认为 False。

  • n_gradient_samples (int, optional) – 计算梯度时使用的独立附加样本数量。仅当 user_upper_bound 为 False 时才能为非零值,在这种情况下,返回损失的梯度将是真损失梯度的无偏估计。默认为 0。

  • optimizer (str, optional) – 要使用的优化器。默认为 “adam”

  • first_stage_options (dictionary, optional) – 训练第一阶段模型时传递给 Keras 的 fit 方法的关键字参数。默认为 {“epochs”: 100}

  • second_stage_options (dictionary, optional) – 训练第二阶段模型时传递给 Keras 的 fit 方法的关键字参数。默认为 {“epochs”: 100}

__init__(*, n_components, m, h, n_samples, use_upper_bound_loss=False, n_gradient_samples=0, optimizer='adam', first_stage_options={'epochs': 100}, second_stage_options={'epochs': 100})[来源]

方法

__init__(*, n_components, m, h, n_samples[, ...])

ate([X])

计算平均处理效应 \(E_X[\tau(X, T0, T1)]\)

ate_inference([X])

模型产生的量 \(E_X[\tau(X, T0, T1)]\) 的推断结果。

ate_interval([X, alpha])

模型产生的量 \(E_X[\tau(X, T0, T1)]\) 的置信区间。

cate_feature_names([feature_names])

获取特征名称的公共接口。

cate_output_names([output_names])

获取输出名称的公共接口。

cate_treatment_names([treatment_names])

获取处理名称的公共接口。

effect([X, T0, T1])

计算异质处理效应 τ(·,·,·)。

effect_inference([X, T0, T1])

模型产生的量 \(\tau(X, T0, T1)\) 的推断结果。

effect_interval([X, T0, T1, alpha])

模型产生的量 \(\tau(X, T0, T1)\) 的置信区间。

fit(Y, T, *, X, Z[, inference])

从数据估计反事实模型。即,估计函数 τ(·, ·, ·), ∂τ(·, ·)。

marginal_ate(T[, X])

计算平均边际效应 \(E_{T, X}[\partial\tau(T, X)]\)

marginal_ate_inference(T[, X])

模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的推断结果。

marginal_ate_interval(T[, X, alpha])

模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的置信区间。

marginal_effect(T[, X])

计算以特征为条件的围绕基准处理点的边际效应 ∂τ(·, ·)。

marginal_effect_inference(T[, X])

模型产生的量 \(\partial \tau(T, X)\) 的推断结果。

marginal_effect_interval(T[, X, alpha])

模型产生的量 \(\partial \tau(T, X)\) 的置信区间。

predict(T, X)

根据处理分配和特征预测结果。

属性

dowhy

获取 DoWhyWrapper 的实例,以允许使用 dowhy 包的其他功能。(例如,因果图、反驳测试等)

ate(X=None, *, T0, T1)

计算平均处理效应 \(E_X[\tau(X, T0, T1)]\)

效应在两个处理点之间计算,并对 X 变量总体进行平均。

参数
  • T0 ((m, d_t) 矩阵 或 长度为 m 的向量) – 每个样本的基准处理

  • T1 ((m, d_t) 矩阵 或 长度为 m 的向量) – 每个样本的目标处理

  • X ((m, d_x) 矩阵, optional) – 每个样本的特征

返回

τ – 每个结果的平均处理效应 注意:当 Y 是向量而不是二维数组时,对应的单维度将被折叠(因此该方法将返回一个标量)

返回类型

float 或 (d_y,) 数组

ate_inference(X=None, *, T0=0, T1=1)

模型产生的量 \(E_X[\tau(X, T0, T1)]\) 的推断结果。仅当调用 fit 方法时 inference 参数不是 None 时可用。

参数
  • X ((m, d_x) 矩阵, optional) – 每个样本的特征

  • T0 ((m, d_t) 矩阵 或 长度为 m 的向量, default 0) – 每个样本的基准处理

  • T1 ((m, d_t) 矩阵 或 长度为 m 的向量, default 1) – 每个样本的目标处理

返回

PopulationSummaryResults – 推断结果实例包含预测和预测标准误差,可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的 DataFrame 摘要。

返回类型

object

ate_interval(X=None, *, T0, T1, alpha=0.05)

模型产生的量 \(E_X[\tau(X, T0, T1)]\) 的置信区间。仅当调用 fit 方法时 inference 参数不是 None 时可用。

参数
  • X ((m, d_x) 矩阵, optional) – 每个样本的特征

  • T0 ((m, d_t) 矩阵 或 长度为 m 的向量, default 0) – 每个样本的基准处理

  • T1 ((m, d_t) 矩阵 或 长度为 m 的向量, default 1) – 每个样本的目标处理

  • alpha (float in [0, 1], default 0.05) – 所报告区间的总体置信水平。报告 alpha/2, 1-alpha/2 的置信区间。

返回

lower, upper – 每个量的置信区间的下界和上界。

返回类型

tuple(类型 ate(X, T0, T1), 类型 ate(X, T0, T1)) )

cate_feature_names(feature_names=None)

获取特征名称的公共接口。

由对输入特征应用转换的估计器覆盖。

参数

feature_names (list of str of length X.shape[1] or None) – 输入特征的名称。如果为 None 且 X 是一个 DataFrame,则默认为 DataFrame 的列名。

返回

out_feature_names – 返回特征名称。

返回类型

str 列表 或 None

cate_output_names(output_names=None)

获取输出名称的公共接口。

由对输出应用转换的估计器覆盖。

参数

output_names (list of str of length Y.shape[1] or None) – 结果的名称。如果为 None 且传递给 fit 的 Y 是一个 DataFrame,则默认为 DataFrame 的列名。

返回

output_names – 返回输出名称。

返回类型

str 列表

cate_treatment_names(treatment_names=None)

获取处理名称的公共接口。

由对处理应用转换的估计器覆盖。

参数

treatment_names (list of str of length T.shape[1] or None) – 处理的名称。如果为 None 且传递给 fit 的 T 是一个 DataFrame,则默认为 DataFrame 的列名。

返回

treatment_names – 返回处理名称。

返回类型

str 列表

effect(X=None, T0=0, T1=1)[来源]

计算异质处理效应 τ(·,·,·)。

效应是在两个处理点之间计算的,以一组 m 个测试样本 {T0ᵢ, T1ᵢ, Xᵢ} 的特征向量为条件。

参数
  • T0 ((m × dₜ) 矩阵) – 每个样本的基准处理

  • T1 ((m × dₜ) 矩阵) – 每个样本的目标处理

  • X ((m × dₓ) 矩阵, optional) – 每个样本的特征

返回

τ – 每个样本在每个结果上的异质处理效应 注意:当 Y 是向量而不是二维数组时,对应的单维度将被折叠(因此该方法将返回一个向量)

返回类型

(m × d_y) 矩阵

effect_inference(X=None, *, T0=0, T1=1)

模型产生的量 \(\tau(X, T0, T1)\) 的推断结果。仅当调用 fit 方法时 inference 参数不是 None 时可用。

参数
  • X ((m, d_x) 矩阵, optional) – 每个样本的特征

  • T0 ((m, d_t) 矩阵 或 长度为 m 的向量, default 0) – 每个样本的基准处理

  • T1 ((m, d_t) 矩阵 或 长度为 m 的向量, default 1) – 每个样本的目标处理

返回

InferenceResults – 推断结果实例包含预测和预测标准误差,可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的 DataFrame 摘要。

返回类型

object

effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)

模型产生的量 \(\tau(X, T0, T1)\) 的置信区间。仅当调用 fit 方法时 inference 参数不是 None 时可用。

参数
  • X ((m, d_x) 矩阵, optional) – 每个样本的特征

  • T0 ((m, d_t) 矩阵 或 长度为 m 的向量, default 0) – 每个样本的基准处理

  • T1 ((m, d_t) 矩阵 或 长度为 m 的向量, default 1) – 每个样本的目标处理

  • alpha (float in [0, 1], default 0.05) – 所报告区间的总体置信水平。报告 alpha/2, 1-alpha/2 的置信区间。

返回

lower, upper – 每个量的置信区间的下界和上界。

返回类型

tuple(类型 effect(X, T0, T1), 类型 effect(X, T0, T1)) )

fit(Y, T, *, X, Z, inference=None)[来源]

从数据估计反事实模型。即,估计函数 τ(·, ·, ·), ∂τ(·, ·)。

从数据估计反事实模型。即,估计函数 τ(·, ·, ·), ∂τ(·, ·)。

参数
  • Y ((n × d_y) 矩阵 或 长度为 n 的向量) – 每个样本的结果

  • T ((n × dₜ) 矩阵 或 长度为 n 的向量) – 每个样本的处理

  • X ((n × dₓ) 矩阵) – 每个样本的特征

  • Z ((n × d_z) 矩阵) – 每个样本的工具变量

  • inference (str, Inference 实例, 或 None) – 执行推断的方法。此估计器支持 'bootstrap'(或 BootstrapInference 的实例)

返回类型

self

marginal_ate(T, X=None)

计算平均边际效应 \(E_{T, X}[\partial\tau(T, X)]\)

边际效应围绕基准处理点计算,并对 X 总体进行平均。

参数
  • T ((m, d_t) 矩阵) – 每个样本的基准处理

  • X ((m, d_x) 矩阵, optional) – 每个样本的特征

返回

grad_tau – 每个结果的平均边际效应 注意:当 Y 或 T 是向量而不是二维数组时,输出中相应的单维度将被折叠(例如,如果两者都是向量,则此方法的输出也将是标量)

返回类型

(d_y, d_t) 数组

marginal_ate_inference(T, X=None)

模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的推断结果。仅当调用 fit 方法时 inference 参数不是 None 时可用。

参数
  • T ((m, d_t) 矩阵) – 每个样本的基准处理

  • X ((m, d_x) 矩阵, optional) – 每个样本的特征

返回

PopulationSummaryResults – 推断结果实例包含预测和预测标准误差,可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的 DataFrame 摘要。

返回类型

object

marginal_ate_interval(T, X=None, *, alpha=0.05)

模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的置信区间。仅当调用 fit 方法时 inference 参数不是 None 时可用。

参数
  • T ((m, d_t) 矩阵) – 每个样本的基准处理

  • X ((m, d_x) 矩阵, optional) – 每个样本的特征

  • alpha (float in [0, 1], default 0.05) – 所报告区间的总体置信水平。报告 alpha/2, 1-alpha/2 的置信区间。

返回

lower, upper – 每个量的置信区间的下界和上界。

返回类型

tuple(类型 marginal_ate(T, X), 类型 marginal_ate(T, X) )

marginal_effect(T, X=None)[来源]

计算以特征为条件的围绕基准处理点的边际效应 ∂τ(·, ·)。

参数
  • T ((m × dₜ) 矩阵) – 每个样本的基准处理

  • X ((m × dₓ) 矩阵, optional) – 每个样本的特征

返回

grad_tau – 每个样本在每个结果上的异质边际效应 注意:当 Y 或 T 是向量而不是二维数组时,输出中相应的单维度将被折叠(例如,如果两者都是向量,则此方法的输出也将是向量)

返回类型

(m × d_y × dₜ) 数组

marginal_effect_inference(T, X=None)

模型产生的量 \(\partial \tau(T, X)\) 的推断结果。仅当调用 fit 方法时 inference 参数不是 None 时可用。

参数
  • T ((m, d_t) 矩阵) – 每个样本的基准处理

  • X ((m, d_x) 矩阵, optional) – 每个样本的特征

返回

InferenceResults – 推断结果实例包含预测和预测标准误差,可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的 DataFrame 摘要。

返回类型

object

marginal_effect_interval(T, X=None, *, alpha=0.05)

模型产生的量 \(\partial \tau(T, X)\) 的置信区间。仅当调用 fit 方法时 inference 参数不是 None 时可用。

参数
  • T ((m, d_t) 矩阵) – 每个样本的基准处理

  • X ((m, d_x) 矩阵, optional) – 每个样本的特征

  • alpha (float in [0, 1], default 0.05) – 所报告区间的总体置信水平。报告 alpha/2, 1-alpha/2 的置信区间。

返回

lower, upper – 每个量的置信区间的下界和上界。

返回类型

tuple(类型 marginal_effect(T, X), 类型 marginal_effect(T, X) )

predict(T, X)[来源]

根据处理分配和特征预测结果。

参数
  • T ((m × dₜ) 矩阵) – 每个样本的基准处理

  • X ((m × dₓ) 矩阵) – 每个样本的特征

返回

Y – 每个样本的结果 注意:当 Y 是向量而不是二维数组时,对应的单维度将被折叠(因此该方法将返回一个向量)

返回类型

(m × d_y) 矩阵

属性 dowhy

获取 DoWhyWrapper 的实例,以允许使用 dowhy 包的其他功能。(例如,因果图、反驳测试等)

返回

DoWhyWrapperDoWhyWrapper 的实例

返回类型

实例