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)根据处理分配和特征预测结果。
属性
获取
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 摘要。
- 返回类型
- 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 摘要。
- 返回类型
- 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 摘要。
- 返回类型
- 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 摘要。
- 返回类型
- 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 包的其他功能。(例如,因果图、反驳测试等)- 返回
DoWhyWrapper –
DoWhyWrapper
的实例- 返回类型
实例